home *** CD-ROM | disk | FTP | other *** search
- ;EPRINT EX CP/MUGUK VOL 8
- ;
- ORG 00100H
- X0000 EQU 00000H
- Y0001 EQU 00001H
- X0005 EQU 00005H
- Y0006 EQU 00006H
- Y005C EQU 0005CH
- Y005D EQU 0005DH
- Y06D0 EQU 006D0H
- Y06D2 EQU 006D2H
- Y06D4 EQU 006D4H
- Y06D6 EQU 006D6H
- CALL A0140
- DEFB 'Epsom MX-80 '
- DEFB 'File Print Utility '
- DEFB 'V1.0',0DH,0AH
- DEFB '$ (C) '
- DEFB 'Phil Wheeler '
- DEFB '1981 '
- A0140: POP DE
- LD C,9
- CALL X0005
- LD SP,006F5H
- LD A,(Y005D)
- CP ' '
- JP NZ,A02C2 ;NO FILENAME
- CALL A0570
- DEFB 007H ;BELL
- DEFB 'Syntax '
- DEFB 'error.'
- DEFB ' Use:',0DH,0AH
- DEFB 'EPRINT '
- DEFB 'file1/sw1/sw2 '
- DEFB 'file2/etc '
- DEFB '...',0DH,0AH
- DEFB 'Where '
- DEFB 'filenames '
- DEFB 'may be '
- DEFB 'ambiguous',0DH,0AH
- DEFB '/P - Print '
- DEFB 'filename '
- DEFB 'on each page',0DH,0AH
- DEFB '/I - Ignore '
- DEFB 'embedded '
- DEFB 'form feeds',0DH,0AH
- DEFB '/A - inhibit '
- DEFB 'Auto page '
- DEFB 'feeds',0DH,0AH
- DEFB '/E - Emphasized '
- DEFB 'print mode',0DH,0AH
- DEFB '/D - Double '
- DEFB 'print mode',0DH,0AH
- DEFB '/C - Condensed '
- DEFB 'print mode',0DH,0AH
- DEFB '/R - Reset '
- DEFB 'print mode',0DH,0AH
- DEFB '/F - inhibit '
- DEFB 'FF at end of file',0DH,0AH
- DEFB 'Each switch '
- DEFB 'stays in effect '
- DEFB 'until change'
- DEFB 'd'+080H
- JP X0000
- ;
- A02C2: LD HL,(Y0006)
- LD DE,00085H
- AND A
- SBC HL,DE
- LD (Y06D0),HL ;SET RAMTOP
- CALL A05C5
- DEFB 018H ;CANCELS CONDENSED MODE
- DEFB 00DH
- DEFB 01BH
- DEFB 044H ;DEFINE TAB
- DEFB 008H ;8 SPACES
- DEFB 010H ;16 SPACES ETC
- DEFB 018H
- DEFB 020H
- DEFB 028H
- DEFB 030H
- DEFB 038H
- DEFB 040H
- DEFB 048H
- DEFB 080H
- A02DF: LD IX,D0649
- LD HL,(D0647)
- LD A,(HL)
- AND A
- JP Z,X0000
- CP 020H
- JR NZ,A02F5
- INC HL
- LD (D0647),HL
- JR A02DF
- ;
- A02F5: CALL A0461
- CALL A0405
- A02FB: LD HL,(D064C)
- LD DE,(D064E)
- CALL A05D1
- JR Z,A02DF
- LD DE,0005CH
- LD BC,0000CH
- LDIR
- LD (D064C),HL
- LD B,015H
- XOR A
- A0315: LD (DE),A
- INC DE
- DJNZ A0315
- CALL A05DB
- JR C,A035F
- CALL A05F1
- CP 01AH
- JR Z,A034E
- PUSH AF
- CALL A0570
- DEFB 'Printing'
- DEFB ' '+080H
- CALL A0538
- XOR A
- LD (D064A),A
- CALL A038D
- POP AF
- CP 00CH
- CALL NZ,A0364
- A0342: CALL A05F1
- CP 01AH
- JR Z,A034E
- CALL A0364
- JR A0342
- ;
- A034E: BIT 3,(IX+000H)
- JR NZ,A0358
- CALL A05C5
- ADC A,H
- A0358: CALL A0570
- DEC C
- ADC A,D
- JR A02FB
- ;
- A035F: CALL A044B
- JR A02FB
- ;
- A0364: CP 00CH
- JR Z,A0383
- CP 00AH ;LF
- JP NZ,A057C
- LD A,(D064B)
- INC A
- LD (D064B),A ;INCREMENT LINE COUNT
- CP 03FH ;IS IT>63
- JR C,A037E
- BIT 2,(IX+000H)
- JR Z,A0388
- A037E: LD A,00AH ;LF
- JP A057C
- ;
- A0383: BIT 1,(IX+000H)
- RET NZ
- A0388: LD A,00CH
- CALL A057C
- A038D: LD A,(D064A)
- INC A
- LD (D064A),A ;INCREMENT PAGE NUMBER
- XOR A
- LD (D064B),A
- BIT 0,(IX+000H)
- RET Z ;NO HEADERS
- CALL A05C5 ;PRINT HEADER
- DEFB 'File'
- DEFB ':'+080H
- LD HL,0005DH
- LD B,008H
- CALL A03FB
- CALL A05C5
- XOR (HL)
- LD B,003H
- CALL A03FB
- CALL A05C5
- DEFB ' Page'
- DEFB ' '+080H
- LD A,(D064A)
- LD E,A
- LD C,000H
- LD D,064H
- CALL A03E3
- LD D,00AH
- CALL A03E3
- LD A,E
- ADD A,030H
- CALL A057C
- CALL A05C5
- DEC C
- LD A,(BC)
- DEC C
- ADC A,D
- LD A,002H
- LD (D064B),A
- RET
- ;
- A03E3: LD B,030H
- LD A,E
- JR A03E9
- ;
- A03E8: INC B
- A03E9: SUB D
- JR NC,A03E8
- ADD A,D
- LD E,A
- LD A,B
- CP 030H
- JR NZ,A03F6
- LD A,C
- AND A
- RET Z
- A03F6: INC C
- LD A,B
- JP A057C
- ;
- A03FB: LD A,(HL)
- INC HL
- CP 021H
- CALL NC,A057C
- DJNZ A03FB
- RET
- ;
- A0405: LD DE,T0650
- LD C,01AH
- CALL X0005 ;SET DMA
- LD HL,006F5H
- LD (D064C),HL
- LD (D064E),HL
- LD C,011H ;SEARCH FIRST
- LD DE,0005CH
- CALL X0005
- CP 0FFH
- JR Z,A044B
- A0422: ADD A,A
- ADD A,A
- ADD A,A
- ADD A,A
- ADD A,A
- LD HL,T0650
- CALL A05D6
- LD A,(Y005C)
- LD (HL),A
- LD DE,(D064E)
- LD BC,0000CH
- LDIR ;MOVE FILENAME
- LD (D064E),DE
- LD C,012H ;SEARCH NEXT
- LD DE,0005CH
- CALL X0005
- CP 0FFH
- JR NZ,A0422
- RET
- ;
- A044B: CALL A0570
- DEFB 'No file -'
- DEFB ' '+080H
- CALL A0538
- CALL A0570
- DEFB 00DH
- DEFB 08AH
- RET
- ;
- A0461: LD DE,0005CH
- XOR A
- LD B,00CH
- A0467: LD (DE),A
- INC DE
- LD A,020H
- DJNZ A0467
- A046D: LD DE,0005DH
- LD B,008H
- A0472: CALL A04BD
- RET Z
- CP 03AH
- JR NZ,A0485
- DEC DE
- LD A,(DE)
- DEC A
- AND 00FH
- INC A
- LD (Y005C),A
- JR A046D
- ;
- A0485: CP 02EH
- JR Z,A0496
- CP 02AH
- JR Z,A0493
- LD (DE),A
- INC DE
- DJNZ A0472
- JR A0496
- ;
- A0493: CALL A04B6
- A0496: LD B,003H
- LD DE,00065H
- A049B: CALL A04BD
- RET Z
- CP 02EH
- JR Z,A049B
- CP 02AH
- JR Z,A04B1
- LD (DE),A
- INC DE
- DJNZ A049B
- A04AB: CALL A04BD
- JR NZ,A04AB
- RET
- ;
- A04B1: CALL A04B6
- JR A04AB
- ;
- A04B6: LD A,03FH
- LD (DE),A
- INC DE
- DJNZ A04B6
- RET
- ;
- A04BD: LD HL,(D0647)
- LD A,(HL)
- AND A
- RET Z
- CP ' '
- RET Z
- INC HL
- LD (D0647),HL
- CP '/'
- RET NZ
- LD A,(HL)
- INC HL
- LD (D0647),HL
- CP 'P' ;PRINT FILENAME ON EACH PAGE
- JR NZ,A04E0
- LD A,(D0649)
- XOR 001H
- LD (D0649),A
- JR A04BD
- ;
- A04E0: CP 'I' ;IGNORE FF?
- JR NZ,A04EE
- LD A,(D0649)
- XOR 002H
- LD (D0649),A
- JR A04BD
- ;
- A04EE: CP 'A' ;INHIBIT AUTO PAGE?
- JR NZ,A04FC
- LD A,(D0649)
- XOR 004H
- LD (D0649),A
- JR A04BD
- ;
- A04FC: CP 'C' ;CONDENSED
- JR NZ,A0506
- CALL A05C5
- DEFB 08FH ;CONDENSED MODE
- JR A04BD
- ;
- A0506: CP 'D' ;DOUBLE
- JR NZ,A0511
- CALL A05C5
- DEFB 01BH
- DEFB 0C7H ;"G" DOUBLE STRIKE MODE
- JR A04BD
- ;
- A0511: CP 'E' ;EMPHASIZED
- JR NZ,A051C
- CALL A05C5
- DEFB 01BH
- DEFB 0C5H ;EMPASIZED MODE
- JR A04BD
- ;
- A051C: CP 'R' ;RESET
- JR NZ,A052A
- CALL A05C5
- DEFB 012H ;CANCEL CONDENSED MODE
- DEFB 01BH
- DEFB 046H ;CANCEL EMPHASIZED MODE
- DEFB 01BH
- DEFB 0C8H ;CANCEL DOUBLE STRIKE MODE
- JR A04BD
- ;
- A052A: CP 'F' ;NO FORM FEED
- JR NZ,A04BD
- LD A,(D0649)
- XOR 008H
- LD (D0649),A
- JR A04BD
- ;
- A0538: LD A,(Y005C)
- AND A
- JR Z,A0547
- ADD A,040H
- CALL A055F
- CALL A0570
- CP D
- A0547: LD HL,0005DH
- LD B,008H
- CALL A0555
- CALL A0570
- XOR (HL)
- LD B,003H
- A0555: LD A,(HL)
- INC HL
- CP 021H
- CALL NC,A055F
- DJNZ A0555
- RET
- ;
- A055F: PUSH AF
- PUSH BC
- PUSH DE
- PUSH HL
- AND 07FH
- LD E,A
- LD C,002H
- CALL X0005
- POP HL
- POP DE
- POP BC
- POP AF
- RET
- ;
- A0570: EX (SP),HL
- A0571: LD A,(HL)
- INC HL
- CALL A055F
- BIT 7,A
- JR Z,A0571
- EX (SP),HL
- RET
- ;
- A057C: PUSH AF
- PUSH BC
- PUSH DE
- PUSH HL
- PUSH AF
- A0581: LD C,00BH ;KYBD STATUS
- CALL X0005
- AND A
- JR Z,A05A9
- LD C,001H ;INPUT KYBD
- CALL X0005
- AND 07FH
- CP 003H ;CTL C
- JR NZ,A05A9
- CALL A0570
- DEFB 00DH
- DEFB 00AH
- DEFB '** Aborted *'
- DEFB '*'+080H
- JP X0000
- ;
- A05A9: LD HL,(Y0001)
- LD DE,0002AH
- ADD HL,DE
- CALL A05C4
- AND A
- JR Z,A0581
- POP AF
- AND 07FH
- LD E,A
- LD C,005H
- CALL X0005
- POP HL
- POP DE
- POP BC
- POP AF
- RET
- ;
- A05C4: JP (HL)
- ;
- A05C5: EX (SP),HL
- A05C6: LD A,(HL)
- CALL A057C
- INC HL
- BIT 7,A
- JR Z,A05C6
- EX (SP),HL
- RET
- ;
- A05D1: AND A
- SBC HL,DE
- ADD HL,DE
- RET
- ;
- A05D6: ADD A,L
- LD L,A
- RET NC
- INC H
- RET
- ;
- A05DB: LD DE,0005CH
- LD C,00FH
- CALL X0005 ;OPEN FILE
- INC A
- SCF
- RET Z
- LD HL,0
- LD (Y06D4),HL
- XOR A
- LD (Y06D6),A
- RET
- ;
- A05F1: PUSH BC
- PUSH HL
- LD HL,(Y06D2)
- LD BC,(Y06D4)
- LD A,B
- OR C
- CALL Z,A060D
- LD A,(HL)
- CPI
- AND A
- LD (Y06D2),HL
- LD (Y06D4),BC
- A060A: POP HL
- POP BC
- RET
- ;
- A060D: LD A,(Y06D6)
- AND A
- SCF
- LD A,01AH
- JR NZ,A060A
- LD DE,(D064E)
- A061A: PUSH BC
- PUSH DE
- LD C,01AH
- CALL X0005 ;SET DMA
- LD DE,0005CH
- LD C,014H
- CALL X0005 ;READ SEQ
- POP DE
- POP BC
- LD (Y06D6),A
- AND A
- JR NZ,A0643
- LD HL,00080H
- PUSH HL
- ADD HL,DE
- EX DE,HL
- POP HL
- ADD HL,BC
- LD B,H
- LD C,L
- LD HL,(Y06D0)
- AND A
- SBC HL,DE
- JR NC,A061A
- A0643: LD HL,(D064E)
- RET
- ;
- D0647: DEFB 081H
- DEFB 000H
- D0649: DEFB 000H
- D064A: DEFB 000H
- D064B: DEFB 000H
- D064C: DEFB 000H
- DEFB 000H
- D064E: DEFB 000H
- DEFB 000H
- T0650: DEFB 000H
- END
-