home *** CD-ROM | disk | FTP | other *** search
- ; 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
-