;	Disassembly of DISPLAY.COM
;
;	Version list - most recent version first
;
;26/Jul/82 Included conditional assembly for Keith Petersens patch that
;	will not accept wild-cards, distribution-tagged files, SYS files,
;	and files with '#' as the last character of the file type.
;	Compatible with CP/M 1.4 or 2.x. Added on line command help
;	display if "?" entered in response to command prompt. Bill Bolton
;
WBOOT	EQU	00000H
BDOS	EQU	00005H
FCB	EQU	05CH		;CP/M file control block
OPEN	EQU	15
;
ALF	EQU	0AH
ACR	EQU	0DH
EOF	EQU	01AH
;
VERS	EQU	11
;
FALSE	EQU	0
TRUE	EQU	NOT FALSE
;
RCPM	EQU	TRUE		;True for RCPM restricted version
;
	ORG	100H
;
	JMP	START
;
	DB	'Display Ver. '
	DB	VERS/10 + '0','.',VERS MOD 10 + '0'
	DB	', 24/Jul/1982$'
;
;Check for ambiguous file names
;
START:

	if	rcpm
	LXI	H,FCB		;POINT TO FCB
	MVI	B,11		;NO. OF CHARS TO CHECK
;
LOOP:
	INX	H		;POINT TO NEXT CHAR
	MOV	A,M		;GET CHAR
	CPI	'?'		;WAS IT A '?'
	JZ	WERROR		;YES, EXIT WITH ERROR MSG
	DCR	B		;ONE LESS TO CHECK
	JNZ	LOOP		;NOT DONE, GO GET MORE
;
;Check for private file type
;
	CPI	'#'		;WAS LAST CHARACTER A '#' ?
	JZ	OPENOT		;YES, PRINT ERROR AND EXIT
;
;Check for .COM file, which can't be printed
;
	CPI	'M'		;WAS LAST CHAR AN 'M'?
	JNZ	OBJCHK		;IF NOT, CHK FOR '.OBJ' TYPE
	DCX	H
	MOV	A,M		;CHK NEXT
	CPI	'O'		;AN 'O'?
	JNZ	OPENFIL		;IF NOT, GO OPEN FILE
	DCX	H
	MOV	A,M		;WAS 'O', CHK NEXT CHAR
	CPI	'C'		; 'C' AS IN '.COM'?
	JNZ	OPENFIL		;IF NOT, GO OPEN FILE
	CALL	ERXIT		;EXIT W/MESSAGE
	DB	'++CAN''T DISPLAY .COM FILES$'
;
;Check for .OBJ file, which can't be printed
;
OBJCHK:
	CPI	'J'		;WAS LAST CHAR AN 'J' THEN?
	JNZ	ALLCHK		;IF NOT, CHECK FOR '.ALL' TYPE
	DCX	H
	MOV	A,M		;MIGHT BE '.OBJ', CHK NEXT CHR
	CPI	'B'		;IS IT A 'B'?
	JNZ	OPENFIL		;IF NOT, GO OPEN FILE
	DCX	H
	MOV	A,M		;WAS, CHK FIRST CHAR
	CPI	'O'		; 'O' AS IN '.OBJ'?
	JNZ	OPENFIL		;IF NOT, GO OPEN FILE
	CALL	ERXIT		;EXIT W/MESSAGE
	DB	'++CAN''T DISPLAY .OBJ FILES$'
;
;Check for .ALL file, which can always be displayed
;
ALLCHK:
	CPI	'L'		;WAS LAST CHAR AN 'L'?
	JNZ	OPENFIL		;IF NOT, TRY AN OPEN
	DCX	H
	MOV	A,M		;CHK NEXT
	CPI	'L'		;AN 'L'?
	JNZ	OPENFIL		;IF NOT, GO OPEN FILE
	DCX	H
	MOV	A,M		;WAS 'L', CHK NEXT CHAR
	CPI	'A'		; 'A' AS IN '.ALL'?
	JNZ	OPENFIL		;IF NOT, GO OPEN FILE
	STA	ALLFLAG
;
;Open the file to get attributes into FCB
;
OPENFIL:
	LXI	D,FCB		;POINT TO FILE
	MVI	C,OPEN		;GET FUNCTION
	CALL	BDOS		;OPEN IT
	INR	A		;OPEN OK?
	JZ	ENTRY		;..NO, LET DISPLAY GIVE ERROR MSG
;
;Check for SYS file
;
	LDA	FCB+10		;GET SYS ATTRIBUTE
	ANI	80H		;ISOLATE ATTR BIT
	JNZ	OPENOT		;IT'S SYS, EXIT
;
;Check for distribution-protected (tagged) file
;
	LDA	FCB+2		;FIRST CHAR OF FILE NAME
	ANI	80H		;CHECK BIT 7
	JZ	ENTRY		;IT WAS OFF, EXIT TO DISPLAY
	LDA	ALLFLAG
	ORA	A		;IS AN '.ALL' FILE
	JNZ	ENTRY		;DISPLAY '.ALL' FILES EVEN IF TAGGED
;
OPENOT:
	CALL	ERXIT	;EXIT W/MESSAGE
	DB	'++FILE IS NOT FOR DISTRIBUTION, SORRY$'
;
WERROR:
	CALL	ERXIT
	DB	'++CAN''T USE WILD CARDS$'
;
;
;Exit with error message
;
ERXIT:
	POP	D	;GET MSG ADRS
	MVI	C,9 
	JMP	BDOS	;PRINT IT THEN RETURN TO CCP
;
	endif	;rcpm
;
ENTRY:
	LXI	SP,BUF$START	;Set up a stack (pointing to top)
	MVI	L,021H
	LXI	D,DFCB
	LXI	B,FCB
FCBLOOP:
	LDAX	B
	STAX	D
	INX	B
	INX	D
	DCR	L
	JNZ	FCBLOOP
A0134:
	CALL	INIT		;Set up data areas
	LXI	B,DFCB
	CALL	OPEN$FILE
	LDA	BDOS$VAL
	CPI	0FFH		;Succesful open?
	JNZ	A014E		;Yes
	LXI	B,NOT$FOUND$MSG	;No
	CALL	DISP$STRING	;Tell the user
	CALL	TO$WBOOT	;*** PERMANENT EXIT ***
;
A014E:
	LHLD	D077A
	MOV	B,H
	MOV	C,L
	CALL	A0387
	CALL	A0567
A0159:
	CALL	A06C3
	LDA	D0774
	CPI	ACR
	JNZ	A016D
	CALL	A0567
	JMP	A0159
;
; >> NO EXECUTION PATH TO HERE <<
	JMP	A0185
;
A016D:
	MVI	C,'B'
	CALL	A06EF
	RAR
	JNC	A0179
	JMP	A0134
;
A0179:
	MVI	C,'E'
	CALL	A06EF
	RAR
	JNC	QUERY
	CALL	TO$WBOOT	;*** PERMANENT EXIT ***
;
QUERY:
	MVI	C,'?'
	CALL	A06EF
	RAR
	JNC	A0185
	LXI	B,HELP$MSG
	CALL	DISP$STRING
	JMP	A0159
;	
A0185:
	LXI	H,D0777
	MVI	M,0
	LXI	H,1
	SHLD	D0784
	LDA	D0774
	CPI	'-'
	JNZ	A01A0
	LXI	H,D0777
	MVI	M,1
	CALL	A069F
A01A0:
	LDA	D0774
	SUI	'0'
	STA	D0778
	MOV	C,A
	MVI	A,9
	CMP	C
	JC	A01E7
	LHLD	D0778
	MVI	H,0
	SHLD	D0784
	CALL	A069F
A01BA:
	LDA	D0774
	SUI	'0'
	STA	D0778
	MOV	C,A
	MVI	A,9
	CMP	C
	JC	A01E7
	LHLD	D0784
	DAD	H
	DAD	H
	DAD	H
	PUSH	H
	LHLD	D0784
	DAD	H
	POP	B
	DAD	B
	PUSH	H
	LHLD	D0778
	MVI	H,0
	POP	B
	DAD	B
	SHLD	D0784
	CALL	A069F
	JMP	A01BA
;
A01E7:
	LDA	D0774
	CPI	'L'
	JNZ	A01FD
	LHLD	D0777
	MOV	C,L
	LHLD	D0784
	XCHG
	CALL	A0450
	JMP	A024D
;
A01FD:
	LDA	D0774
	CPI	'P'
	JNZ	A0237
	MVI	A,0
	LXI	D,D0784
	CALL	A0750
	ORA	L
	JZ	A022B
	LXI	D,017H
	LHLD	D0784
	CALL	A072F
	SHLD	D0784
	LHLD	D0777
	MOV	C,L
	LHLD	D0784
	XCHG
	CALL	A0450
	JMP	A0234
;
A022B:
	LHLD	D077A
	SHLD	D077E
	SHLD	D0786
A0234:
	JMP	A024D
;
A0237:
	LDA	D0774
	CPI	'D'
	JNZ	A024A
	LHLD	D0784
	MOV	B,H
	MOV	C,L
	CALL	A0595
	JMP	A024D
;
A024A:
	JMP	A0253
;
A024D:
	CALL	A0567
	JMP	A0159
;
A0253:
	LXI	B,ILLEGAL$MSG
	CALL	DISP$STRING
	JMP	A0159
;
; >> NO EXECUTION PATH TO HERE <<
	EI
	HLT
	LXI	D,0
	MVI	C,1		;Console input
	CALL	TO$BDOS
	RET
;
PUT$CHAR:
	LXI	H,D075C
	MOV	M,C
	LHLD	D075C
	MVI	H,0
	XCHG			;E <---- C
	MVI	C,2		;Console output
	CALL	TO$BDOS
	RET
;
; >> NO EXECUTION PATH TO HERE <<
	LXI	H,D075D
	MOV	M,C
	LHLD	D075D
	MVI	H,0
	XCHG
	MVI	C,5		;List output
	CALL	TO$BDOS
	RET
;
A0287:
	LXI	H,T075F
	MOV	M,B
	DCX	H
	MOV	M,C
	LHLD	D075E
	XCHG
	MVI	C,10		;Read console buffer
	CALL	TO$BDOS
	RET
;
OPEN$FILE:
	LXI	H,T0761
	MOV	M,B
	DCX	H
	MOV	M,C
	LHLD	D0760
	XCHG			;DE <---- BC
	MVI	C,15		;Open file
	CALL	TO$BDOS
	STA	BDOS$VAL	;Keep the result
	RET
;
; >> NO EXECUTION PATH TO HERE <<
	LXI	H,T0763
	MOV	M,B
	DCX	H
	MOV	M,C
	LHLD	D0762
	XCHG
	MVI	C,16		;Close file
	CALL	TO$BDOS
	STA	BDOS$VAL
	RET
;
; >> NO EXECUTION PATH TO HERE <<
	LXI	H,T0765
	MOV	M,B
	DCX	H
	MOV	M,C
	LHLD	D0764
	XCHG
	MVI	C,17		;Search first
	CALL	TO$BDOS
	SUI	0FFH
	ADI	0FFH
	SBB	A
	RET
;
; >> NO EXECUTION PATH TO HERE <<
	LXI	H,T0767
	MOV	M,B
	DCX	H
	MOV	M,C
	LHLD	D0766
	XCHG
	MVI	C,19		;Delete file
	CALL	TO$BDOS
	RET
;
A02E2:
	LXI	H,T0769
	MOV	M,B
	DCX	H
	MOV	M,C
	LHLD	D0768
	XCHG
	MVI	C,20		;Read sequential
	CALL	TO$BDOS
	STA	BDOS$VAL
	RET
;
; >> NO EXECUTION PATH TO HERE <<
	LXI	H,T076B
	MOV	M,B
	DCX	H
	MOV	M,C
	LHLD	D076A
	XCHG
	MVI	C,21		;Write sequential
	CALL	TO$BDOS
	STA	BDOS$VAL
	RET
;
; >> NO EXECUTION PATH TO HERE <<
	LXI	H,T076D
	MOV	M,B
	DCX	H
	MOV	M,C
	LHLD	D076C
	XCHG
	MVI	C,22		;Make file
	CALL	TO$BDOS
	RET
;
; >> NO EXECUTION PATH TO HERE <<
	LXI	D,0
	MVI	C,23		;Rename file
	CALL	TO$BDOS
	RET
;
; >> NO EXECUTION PATH TO HERE <<
	LXI	H,D076E
	MOV	M,C
	LHLD	D076E
	MVI	H,0
	XCHG
	MVI	C,14		;Select disk
	CALL	TO$BDOS
	RET
;
A0331:
	LXI	H,T0770
	MOV	M,B
	DCX	H
	MOV	M,C
	LHLD	D076F
	XCHG
	MVI	C,26		;Set DMA
	CALL	TO$BDOS
	RET
;
NEW$LINE:
	MVI	C,ALF
	CALL	PUT$CHAR
	MVI	C,ACR
	CALL	PUT$CHAR
	RET
;
DISP$STRING:
	LXI	H,T0772
	MOV	M,B
	DCX	H
	MOV	M,C
	LHLD	D0771
	XCHG			;DE <---- BC
	MVI	C,9		;Print string
	CALL	TO$BDOS
	CALL	NEW$LINE
	RET
;
INIT:
	LXI	H,D0773
	MVI	M,0
	LXI	H,BUF$START
	SHLD	D077A
	SHLD	D077E
	SHLD	D0780
	LHLD	D077A
	SHLD	D0786
	LXI	H,T0794
	MVI	M,0
	LXI	H,T07A8
	MVI	M,0
	LHLD	BDOS+1
	SHLD	D077C
	RET
;
A0387:
	LXI	H,Y082B
	MOV	M,B
	DCX	H
	MOV	M,C
	LDA	D0773
	RAR
	JC	A044F
	LHLD	Y082A
	SHLD	Y082C
	LXI	D,D077C
	CALL	A0753
	XCHG
	LXI	H,00080H
	CALL	A0710
	XCHG
	SHLD	Y082E
	LXI	H,BDOS$VAL
	MVI	M,000H
A03B0:
	MVI	A,0
	LXI	D,Y082E
	CALL	A0750
	ORA	L
	ADI	0FFH
	SBB	A
	PUSH	PSW
	LDA	BDOS$VAL
	SUI	000H
	SUI	001H
	SBB	A
	POP	B
	MOV	C,B
	ANA	C
	RAR
	JNC	A03EE
	LHLD	Y082C
	MOV	B,H
	MOV	C,L
	CALL	A0331
	LXI	B,DFCB
	CALL	A02E2
	LXI	D,00080H
	LHLD	Y082C
	DAD	D
	SHLD	Y082C
	LHLD	Y082E
	DCX	H
	SHLD	Y082E
	JMP	A03B0
;
A03EE:
	LDA	BDOS$VAL
	CPI	0
	JZ	A03FB
	LXI	H,D0773
	MVI	M,0FFH
A03FB:
	LHLD	Y082C
	SHLD	D0780
	LXI	B,00080H
	CALL	A0331
	LDA	D0773
	RAR
	JNC	A042F
	LXI	B,100H
	LXI	D,Y082C
	CALL	A0748
	XCHG
	DCX	H
	MOV	M,E
	INX	H
	MOV	M,D
A041C:
	LHLD	Y082C
	MOV	A,M
	CPI	EOF
	JZ	A042F
	LHLD	Y082C
	INX	H
	SHLD	Y082C
	JMP	A041C
;
A042F:
	LHLD	Y082C
	DCX	H
	SHLD	Y082C
A0436:
	LHLD	Y082C
	MOV	A,M
	CPI	00AH
	JZ	A0449
	LHLD	Y082C
	DCX	H
	SHLD	Y082C
	JMP	A0436
;
A0449:
	LHLD	Y082C
	SHLD	D0782
A044F:
	RET
;
A0450:
	LXI	H,Y0832
	MOV	M,D
	DCX	H
	MOV	M,E
	DCX	H
	MOV	M,C
	LDA	Y0830
	CPI	0
	JNZ	A049B
A0460:
	MVI	A,0
	LXI	D,Y0831
	CALL	A0750
	ORA	L
	ADI	0FFH
	SBB	A
	LXI	B,D0782
	LXI	D,D077E
	PUSH	PSW
	CALL	A0743
	SBB	A
	POP	B
	MOV	C,B
	ANA	C
	RAR
	JNC	A0498
	LHLD	D077E
	MOV	A,M
	CPI	ALF
	JNZ	A048E
	LHLD	Y0831
	DCX	H
	SHLD	Y0831
A048E:
	LHLD	D077E
	INX	H
	SHLD	D077E
	JMP	A0460
;
A0498:
	JMP	A04ED
;
A049B:
	LHLD	Y0831
	INX	H
	SHLD	Y0831
A04A2:
	MVI	A,0
	LXI	D,Y0831
	CALL	A0750
	ORA	L
	ADI	0FFH
	SBB	A
	LXI	D,D077A
	LXI	B,D077E
	PUSH	PSW
	CALL	A0743
	SBB	A
	POP	B
	MOV	C,B
	ANA	C
	RAR
	JNC	A04DA
	LHLD	D077E
	MOV	A,M
	CPI	ALF
	JNZ	A04D0
	LHLD	Y0831
	DCX	H
	SHLD	Y0831
A04D0:
	LHLD	D077E
	DCX	H
	SHLD	D077E
	JMP	A04A2
;
A04DA:
	LXI	D,D077A
	LXI	B,D077E
	CALL	A0743
	JNC	A04ED
	LHLD	D077E
	INX	H
	SHLD	D077E
A04ED:
	LHLD	D077E
	SHLD	D0786
	RET
;
A04F4:
	LXI	H,Y0834
	MVI	M,0
	LXI	B,D0782
	LXI	D,D077E
	CALL	A0743
	JNC	A0566
A0505:
	LHLD	D077E
	MOV	A,M
	STA	Y0833
	CPI	ALF
	JZ	A055A
	LDA	Y0833
	CPI	009H
	JZ	A0527
	LHLD	Y0833
	MOV	C,L
	CALL	PUT$CHAR
	LXI	H,Y0834
	INR	M
	JMP	A0550
;
A0527:
	LDA	Y0834
	ANI	007H
	MOV	C,A
	MVI	A,7
	SUB	C
	STA	Y0836
	LXI	H,Y0835
	MVI	M,0
A0538:
	LDA	Y0836
	LXI	H,Y0835
	CMP	M
	JC	A0550
	MVI	C,' '
	CALL	PUT$CHAR
	LXI	H,Y0834
	INR	M
	INX	H
	INR	M
	JNZ	A0538
A0550:
	LHLD	D077E
	INX	H
	SHLD	D077E
	JMP	A0505
;
A055A:
	LHLD	D077E
	INX	H
	SHLD	D077E
	MVI	C,ALF
	CALL	PUT$CHAR
A0566:
	RET
;
A0567:
	LHLD	D0786
	SHLD	Y0838
	SHLD	D077E
	LXI	H,Y0837
	MVI	M,1
A0575:
	MVI	A,017H
	LXI	H,Y0837
	CMP	M
	JC	A0588
	CALL	A04F4
	LXI	H,Y0837
	INR	M
	JNZ	A0575
A0588:
	LHLD	D077E
	SHLD	D0786
	LHLD	Y0838
	SHLD	D077E
	RET
;
A0595:
	LXI	H,Y083B
	MOV	M,B
	DCX	H
	MOV	M,C
	MVI	A,0
	LXI	D,Y083A
	CALL	A0750
	ORA	L
	JNZ	A05BC
	LXI	B,D077E
	LXI	D,D0780
	CALL	A0743
	SHLD	Y0840
	LHLD	D077E
	SHLD	Y083E
	JMP	A062B
;
A05BC:
	LHLD	D077A
	SHLD	Y083C
A05C2:
	MVI	A,0
	LXI	D,Y083A
	CALL	A0750
	ORA	L
	JZ	A0619
	LXI	H,00017H
	SHLD	Y0842
A05D4:
	MVI	A,0
	LXI	D,Y0842
	CALL	A0750
	ORA	L
	JZ	A060F
	LHLD	Y083C
	MOV	A,M
	CPI	ALF
	JNZ	A05F0
	LHLD	Y0842
	DCX	H
	SHLD	Y0842
A05F0:
	LHLD	Y083C
	INX	H
	SHLD	Y083C
	LXI	D,D0782
	CALL	A0753
	JNC	A060C
	LXI	H,0
	SHLD	Y0842
	LXI	H,1
	SHLD	Y083A
A060C:
	JMP	A05D4
;
A060F:
	LHLD	Y083A
	DCX	H
	SHLD	Y083A
	JMP	A05C2
;
A0619:
	LXI	B,Y083C
	LXI	D,D0780
	CALL	A0743
	SHLD	Y0840
	LHLD	Y083C
	SHLD	Y083E
A062B:
	LHLD	Y0840
	PUSH	H
	LHLD	Y083E
	MOV	B,H
	MOV	C,L
	LHLD	D077A
	XCHG
	POP	H
A0639:
	LDAX	B
	STAX	D
	INX	B
	INX	D
	DCX	H
	MOV	A,H
	ORA	L
	JNZ	A0639
	LXI	B,D077A
	LXI	D,Y083E
	CALL	A0743
	XCHG
	INX	H
	MOV	M,E
	INX	H
	MOV	M,D
	LXI	D,Y083E
	LXI	B,D077E
	CALL	A0743
	JNC	A066E
	LXI	B,Y0840
	LXI	D,D077E
	CALL	A0743
	XCHG
	DCX	H
	MOV	M,E
	INX	H
	MOV	M,D
	JMP	A0674
;
A066E:
	LHLD	D077A
	SHLD	D077E
A0674:
	LHLD	D077E
	SHLD	D0786
	LXI	B,Y0840
	LXI	D,D0780
	CALL	A0743
	XCHG
	DCX	H
	MOV	M,E
	INX	H
	MOV	M,D
	LXI	B,Y0840
	LXI	D,D0782
	CALL	A0743
	XCHG
	DCX	H
	MOV	M,E
	INX	H
	MOV	M,D
	LHLD	D0780
	MOV	B,H
	MOV	C,L
	CALL	A0387
	RET
;
A069F:
	LHLD	D0775
	MVI	H,0
	LXI	B,T07A9
	DAD	B
	MOV	A,M
	STA	D0774
	MOV	C,A
	MVI	A,'Z'
	CMP	C
	JNC	A06BB
	LDA	D0774
	ANI	0DFH
	STA	D0774
A06BB:
	LDA	D0775
	INR	A
	STA	D0775
	RET
;
A06C3:
	MVI	C,'*'
	CALL	PUT$CHAR
	LXI	B,T07A9
	CALL	A0287
	MVI	C,ALF
	CALL	PUT$CHAR
	LDA	D07AA
	STA	D0776
	CPI	0
	JNZ	A06E6
	LXI	H,D0774
	MVI	M,ACR
	JMP	A06EE
;
A06E6:
	LXI	H,D0775
	MVI	M,2
	CALL	A069F
A06EE:
	RET
;
A06EF:
	LXI	H,Y0844
	MOV	M,C
	LXI	H,Y0844
	LDA	D0774
	SUB	M
	SUI	1
	SBB	A
	PUSH	PSW
	LDA	D0776
	SUI	1
	SUI	1
	SBB	A
	POP	B
	MOV	C,B
	ANA	C
	RET
;
TO$BDOS:
	JMP	BDOS
;
TO$WBOOT:
	JMP	WBOOT
;
A0710:
	MOV	B,H
	MOV	C,L
	LXI	H,0
	MVI	A,010H
A0717:
	PUSH	PSW
	DAD	H
	XCHG
	SUB	A
	DAD	H
	XCHG
	ADC	L
	SUB	C
	MOV	L,A
	MOV	A,H
	SBB	B
	MOV	H,A
	INX	D
	JNC	A0729
	DAD	B
	DCX	D
A0729:
	POP	PSW
	DCR	A
	JNZ	A0717
	RET
;
A072F:
	MOV	B,H
	MOV	C,L
	LXI	H,0
	MVI	A,010H
A0736:
	DAD	H
	XCHG
	DAD	H
	XCHG
	JNC	A073E
	DAD	B
A073E:
	DCR	A
	JNZ	A0736
	RET
;
A0743:
	MOV	L,C
	MOV	H,B
	MOV	C,M
	INX	H
	MOV	B,M
A0748:
	LDAX	D
	SUB	C
	MOV	L,A
	INX	D
	LDAX	D
	SBB	B
	MOV	H,A
	RET
;
A0750:
	MOV	L,A
	MVI	H,0
A0753:
	LDAX	D
	SUB	L
	MOV	L,A
	INX	D
	LDAX	D
	SBB	H
	MOV	H,A
	RET
;
;
ALLFLAG	DB	0		;'.ALL' file type flag
BDOS$VAL:
	DB	06EH
D075C:	DB	006H
D075D:	DB	001H
D075E:	DB	040H
T075F:	DB	008H
D0760:	DB	011H
T0761:	DB	07EH
D0762:	DB	007H
T0763:	DB	0CDH
D0764:	DB	043H
T0765:	DB	007H
D0766:	DB	0EBH
T0767:	DB	02BH
D0768:	DB	073H
T0769:	DB	023H
D076A:	DB	072H
T076B:	DB	0C3H
D076C:	DB	074H
T076D:	DB	006H
D076E:	DB	02AH
D076F:	DB	07AH
T0770:	DB	007H
D0771:	DB	022H
T0772:	DB	07EH
D0773:	DB	007H
D0774:	DB	02AH
D0775:	DB	07EH
D0776:	DB	007H
D0777:	DB	022H
D0778:	DW	0
D077A:	DW	0
D077C:	DW	0
D077E:	DW	0
D0780:	DW	0
D0782:	DW	0
D0784:	DW	0
D0786:	DW	0
DFCB:	DB	0,0,0,0,0,0,0,0,0,0	;Internal FCB
	DB	0,0
T0794:	DB	0,0,0,0,0,0,0,0,0,0
	DB	0,0,0,0,0,0,0,0,0,0
T07A8:	DB	07EH
T07A9:	DB	080H
D07AA:	DB	000H
;
	DB	0,0,0,0,0,0,0,0,0,0
	DB	0,0,0,0,0,0,0,0,0,0
	DB	0,0,0,0,0,0,0,0,0,0
	DB	0,0,0,0,0,0,0,0,0,0
	DB	0,0,0,0,0,0,0,0,0,0
	DB	0,0,0,0,0,0,0,0,0,0
	DB	0,0,0,0,0,0,0,0,0,0
	DB	0,0,0,0,0,0,0,0,0,0
	DB	0,0,0,0,0
;
NOT$FOUND$MSG:
	DB	' FILE NOT FOUND$'
;
ILLEGAL$MSG:
	DB	' ILLEGAL COMMAND$'
;
HELP$MSG:
	DB	'DISPLAY Version '
	DB	VERS/10 + '0','.',VERS MOD 10 + '0'
	DB	' HELP SUMMARY',ACR,ALF,ACR,ALF
	DB	'Command:  Operation performed:',ACR,ALF
	DB	'=======   ===================',ACR,ALF
	DB	'B         Move pointer to beginning of file and display page.',ACR,ALF,ACR,ALF
	DB	'-nP       Move pointer minus n pages and display page.',ACR,ALF
	DB	'nP        Move pointer plus n pages and display page.',ACR,ALF
	DB	'0P        Move pointer to beginning of buffer and display page',ACR,ALF,ACR,ALF
	DB	'-nL       Move pointer minus n lines and display page.',ACR,ALF
	DB	'nL        Move pointer plus n lines and display page.',ACR,ALF
	DB	'nD        Discard n pages, refill buffer and display the',ACR,ALF
	DB	'          current page.',ACR,ALF
	DB	'0D        Discard all data up to the current pointer, refill',ACR,ALF
	DB	'          buffer and display the first page.',ACR,ALF,ACR,ALF
	DB	'E         Exit DISPLAY and return to CP/M.',ACR,ALF
	DB	'^C        Control-C, exit DISPLAY and return to CP/M.',ACR,ALF,ACR,ALF
	DB	'<cr>      Move pointer to next page and display',ACR,ALF
	DB	'$'
;
Y082A	DB	0
Y082B	DB	0
Y082C	DW	0
Y082E	DW	0
Y0830	DB	0
Y0831	DB	0
Y0832	DB	0
Y0833	DB	0
Y0834	DB	0
Y0835	DB	0
Y0836	DB	0
Y0837	DB	0
Y0838	DW	0
Y083A	DB	0
Y083B	DB	0
Y083C	DW	0
Y083E	DW	0
Y0840	DW	0
Y0842	DW	0
Y0844	DW	0
;
	DS	32
;
BUF$START EQU	$
;	
	END
