; ; rev. eng. of CDOS's full screen editor ; cpm equ 0 cr equ 0dh lf equ 0ah esc equ 1bh bdos equ 5 msbon equ 128 squote equ 27h org 100h JP start db 0edh,0edh,1,45h signon: db 'Screen Editor ver' db 'sion 01.45',cr db lf+msbon,0 db 'Copyright (c) 1979' db ', 1980, 1981, 1982' db lf,0 start: LD SP,1B0H LD HL,signon CALL h13ef CALL h1b6b SUB A LD (2DAEH),A LD (2C80H),A INC A LD (2DADH),A LD A,'>' LD (h8c5),A JP h4cf db 0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0 db 0,0,0,0,0,0 h1b0: db 1bh,45h h1b2: db 80h,0 h1b4: db 1bh,48h,0 h1b7: db 8,0,0 h1ba: db 1bh,43h,0 h1bd: db 1bh,41h,0,0,0,0 h1c3: db 1bh,4bh,0 h1c6: db 1bh,4ah h1c8: db 80h,0 h1ca: db 1bh,46h,0 h1cd: db 1bh,5ah,0 h1d0: db 1bh,5ah,0 h1d3: db 1bh,6ch,0 h1d6: db 1bh,6dh,0 h1d9: db 50h h1da: db 18h h1db: db 0 h1dc: db 1bh,4ch,0 h1df: db 1bh,4dh,0 h1e2: db 17h,0bh db 0,0ah,1ah,0,1,8 db 0,4,0ch,0 h1ee: db 1bh,0,3,0,19h db 0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0 db 0 h22c: LD HL,h1ca CALL h3a8 JR Z,h245 LD A,E ADD A,20H CALL h3c5 LD A,D ADD A,20H CALL h3c5 LD (h4cd),DE RET h245: CALL h273 h248: LD A,(h4cd) CP E JR Z,h253 CALL h28e JR h248 h253: LD A,(h4ce) CP D RET Z CALL h2a0 JR h253 h25d: LD HL,h1b0 CALL h3a8 JR Z,h26d SUB A LD (h4ce),A LD (h4cd),A RET h26d: CALL h273 CALL h2ff h273: LD HL,h1b4 CALL h3a8 SUB A LD (h4ce),A LD (h4cd),A RET h281: LD A,cr CALL h3c5 SUB A LD (h4ce),A RET h28b: CALL h281 h28e: LD A,8AH CALL h3c5 LD A,(h4cd) INC A LD HL,h1da CP (HL) RET NC LD (h4cd),A RET h2a0: LD HL,h1ba CALL h3a8 h2a6: LD HL,h4ce INC (HL) LD A,(h1d9) CP (HL) RET NZ SUB A LD (HL),A LD A,(h4cd) INC A LD HL,h1da CP (HL) RET Z LD (h4cd),A RET h2be: LD HL,h1b7 CALL h3a8 LD A,(h4ce) AND A JR NZ,h2da LD A,(h4cd) AND A JR NZ,h2d3 LD A,(h1da) h2d3: DEC A LD (h4cd),A LD A,(h1d9) h2da: DEC A LD (h4ce),A RET h2df: LD HL,h1bd CALL h3a8 LD HL,h4cd DEC (HL) RET h2ea: LD A,7 CALL h3c5 JP h3c5 h2f2: LD A,' ' CALL h3da LD A,(h4ce) AND 7 JR NZ,h2f2 RET h2ff: LD HL,h1c6 CALL h3a8 RET NZ LD HL,(h4cd) PUSH HL CALL h323 h30d: LD A,(h4cd) LD HL,h1da INC A CP (HL) JR Z,h31f CALL h28b CALL h323 JR h30d h31f: POP DE JP h22c h323: LD HL,h1c3 CALL h3a8 RET NZ LD HL,(h4cd) PUSH HL LD A,(h1d9) LD HL,h4ce SUB (HL) LD B,A LD A,(h4cd) INC A LD HL,h1da CP (HL) JR C,h341 DEC B h341: LD A,' ' h343: CALL h3da DJNZ h343 POP DE JP h22c h34c: LD HL,h1dc JR h3a8 h351: LD HL,h1df JR h3a8 h356: LD HL,h1cd JR h3a8 h35b: LD HL,h1d0 JR h3a8 h360: LD HL,h1d3 JR h3a8 h365: LD HL,h1d6 JR h3a8 h36a: LD HL,cpstr LD BC,5 CPIR RET cpstr: db 5fh,7fh,1,8,82h h378: CP cr JR Z,h392 CP 9 JR Z,h392 CP ' ' JR NC,h387 CALL h387 h387: CALL h2be LD A,' ' CALL h3da JP h2be h392: LD HL,h4cd LD E,(HL) CP cr JR Z,h3a0 LD A,(h4ce) AND A JR NZ,h3a1 h3a0: DEC E h3a1: LD A,(2DAEH) LD D,A JP h22c h3a8: LD A,(HL) AND A RET Z h3ab: CALL h3c5 CP 80H CALL Z,h3ba INC HL LD A,(HL) AND A JR NZ,h3ab INC A RET h3ba: PUSH BC SUB A LD B,10 h3be: CALL h3c5 DJNZ h3be POP BC RET h3c5: PUSH DE PUSH BC LD E,A LD C,2 ;write cons. CALL bdos POP BC POP DE h3cf: RET PUSH AF h3d1: IN A,(0) RLA JR NC,h3d1 POP AF OUT (1),A RET h3da: PUSH HL PUSH DE PUSH BC PUSH AF LD E,A LD HL,spkeys CALL h14b1 JR NZ,h402 LD A,E CP ' ' JR NC,h3f7 LD A,'^' CALL h3c5 CALL h2a6 LD A,E ADD A,40H h3f7: CALL h3c5 CALL h2a6 h3fd: POP AF POP BC POP DE POP HL RET h402: LD HL,adstbl CALL h14c5 JR h3fd spkeys: db 80h,81h,82h,83h,84h db 85h,86h,cr,8ah,9 db 87h,88h,89h,0 adstbl: dw h25d ;80h dw h273 ;81h dw h2be ;82h dw h2a0 ;83h dw h2df ;84h dw h323 ;85h dw h2ff ;86h dw h281 ;cr dw h28e ;8ah dw h2f2 ;tab dw h2ea ;87h dw h360 ;88h dw h365 ;89h h432: CALL h453 PUSH HL PUSH DE PUSH BC LD HL,h1e2 LD B,7 LD E,A LD C,80H h440: CP (HL) JR Z,h450 LD A,(HL) INC HL AND A LD A,E JR NZ,h440 INC C DJNZ h440 h44c: POP BC POP DE POP HL RET h450: LD A,C JR h44c h453: PUSH BC LD C,80H ;read cons. (no echo) CALL bdos POP BC RET h45b: LD C,0BH ;console ready? CALL bdos INC A RET h462: CALL h45b RET NZ LD C,80H ;read cons. (no echo) CALL bdos LD B,A LD A,(h1ee) CP B RET h471: LD HL,4B0H h474: CALL h45b RET Z DEC L JR NZ,h474 DEC H JR NZ,h474 INC H RET h480: LD DE,4A0H LD C,82H ;set user ^c abort CALL bdos LD HL,h1db LD A,(HL) AND A RET NZ INC (HL) CALL h4a4 RET NZ LD (h1db),A LD (h1c8),A LD (h1b2),A DEC A LD (cpstr),A RET h4a1: CALL h453 h4a4: CALL h45b JR Z,h4a1 LD A,5 CALL h4c1 RET NZ LD B,lf h4b1 LD A,2 CALL h4c1 JR NZ,h4bf DJNZ h4b1 LD A,2 CALL h3c5 h4bf: SUB A RET h4c1: CALL h3c5 CALL h471 RET NZ CALL h453 CP A RET h4cd: db 0 h4ce: db 0 h4cf: CALL h132b h4d2: LD A,(h504) AND A JR NZ,h4e4 LD (h617),A LD HL,cmd1 h4de: CALL h1308 CALL h1313 h4e4: SUB A LD (h504),A LD HL,keys CALL h1474 JR Z,h4ff CP 16H JR C,h4f7 LD (h504),A h4f7: LD HL,adrtbl CALL h14c5 JR h4d2 h4ff: CALL h131a JR h4e4 h504: db 0 cmd1: db 'Edit: At Copy Delete' db ' Exit Find Insert Ju' db 'mp Move Other Page S' db 'ubstitute Xchange',0 cmd2: db 'Edit: Beautify Home' db ' List Names Other Re' db 'ad Tabs Verify Write' db ' Zap',0 keys: db '@ABCDEFHIJLNM' db 'OPRSTVWXZ ',9,cr db '<,->.+' db 80h,81h,82h,83h,84h,85h db 86h,2,0 adrtbl: dw h16b9 ;@ dw h16b9 ;A dw h24ff ;B dw h2485 ;C dw h14ce ;D dw h618 ;E dw hcab ;F dw h7b1 ;H dw h921 ;I dw h1769 ;J dw hf86 ;L dw h297a ;N dw h247e ;M dw h609 ;O dw h8da ;P dw h1000 ;R dw hb25 ;S dw h1cf8 ;T dw h132b ;V dw h10eb ;W dw hd66 ;X dw h177c ;Z dw h77c ;space dw h844 ;tab dw h891 ;cr dw h8c6 ;< dw h8c6 ;, dw h8c6 ;- dw h8c1 ;> dw h8c1 ;. dw h8c1 ;+ atblp2: dw h7d4 ;80h dw h7eb ;81h dw h79f ;82h dw h78d ;83h dw h131a ;84h dw h131a ;85h dw h7b4 ;86h dw h7af ;2 h609: LD HL,h617 INC (HL) LD A,(HL) RRA RET NC POP HL LD HL,cmd2 JP h4de h617: db 0 h618: LD HL,exm CALL h13ef LD HL,cqu CALL h13ef CALL h2038 LD HL,cone CALL h13ef CALL h2038 LD HL,crlf CALL h13ef CALL h2038 LD HL,axit CALL h13ef LD DE,2500H CALL h22c h645: CALL h453 CP esc JP Z,h132b LD HL,cqu1 CALL h14b1 JR NZ,h65a CALL h131a JR h645 h65a: LD HL,exm CALL h13ef LD A,B AND A JR Z,h679 DEC A JR Z,h670 LD HL,updt CALL h13ef JP h22ac h670: LD HL,75AH CALL h13ef JP h22b1 h679: LD HL,contu CALL h13ef CALL h1a09 CALL h2275 CALL h1b71 CALL h1a1b JP h132b cqu1: db 'CQU',0 cqu: db 'Continue Quit Update' db ' ',cr,lf+msbon db 9,' Continue - update ',0 cone: db ' and continue editing' db cr,lf+msbon,9,' Quit -' db ' exit without updating' db ' ',0 crlf: db cr,lf+msbon db ' Update - upda' db 'te ',0 axit: db ' and exit',cr db lf+msbon,9,' -' db ' return to editor',cr db lf+msbon,0 exm: db 80h,'>Exit: ',0 contu: db 'Continue',cr,lf+msbon db lf+msbon,0 db 'Quit',cr,lf+msbon db lf+msbon db 'Screen aborted',cr db lf+msbon,0 updt: db 'Update',cr,lf+msbon db lf+msbon,0 h77c: LD A,(h8c5) CP '>' JR Z,h78d JR h79f h785: CALL h18b6 JR Z,h792 CALL C,h80f h78d: CALL h1e10 JR NZ,h785 h792: CALL h7a9 JR h807 h797: CALL h1911 JR Z,h7a4 CALL C,h82f h79f: CALL h1e10 JR NZ,h797 h7a4: CALL h7a9 JR h7f8 h7a9: LD A,(2DAEH) LD (h7b0),A h7af: RET h7b0: db 0 h7b1: LD (h504),A h7b4: CALL h19b7 LD A,(2DADH) DEC A CALL NZ,h19c0 LD A,1 LD (2DADH),A CALL h7a9 JP h1313 h7c9: CALL h19b7 CALL h1911 JR Z,h7d9 CALL h82f h7d4: CALL h1e10 JR NZ,h7c9 h7d9: LD A,(h7b0) CALL h1ddb JR h7f8 h7e1: LD A,1 CALL h19e0 JR Z,h7f0 CALL h80f h7eb: CALL h1e10 JR NZ,h7e1 h7f0: LD A,(h7b0) CALL h1ddb JR h807 h7f8: LD A,(h504) AND A JP NZ,h1313 LD A,(1DBH) AND A RET Z JP h1323 h807: LD A,(h504) AND A CALL NZ,h1313 RET h80f: LD A,(h1da) LD B,A LD A,(2DADH) INC A CP B JR C,h835 LD A,(1DBH) AND A JR Z,h828 CALL h139f h823: SUB A h824: LD (h504),A RET h828: CALL h1386 h82b: LD A,1 JR h824 h82f: LD A,(2DADH) DEC A JR Z,h839 h835: LD (2DADH),A RET h839: LD A,(1DBH) AND A JR NZ,h823 CALL h13b0 JR h82b h844: CALL h1e10 RET Z LD A,(h8c5) CP '>' JR NZ,h86d h84f: CALL h18b6 JR Z,h868 CALL C,h80f LD A,(2DAEH) CALL h1cd7 CALL NC,h1cec CALL h1ddb CALL h1e10 JR NZ,h84f h868: CALL h7a9 JR h807 h86d: CALL h1911 JR Z,h886 JR C,h88c LD A,(2DAEH) h877: CALL h1cd7 DEC A JR NC,h877 INC A CALL h1ddb h881: CALL h1e10 JR NZ,h86d h886: CALL h7a9 JP h7f8 h88c: CALL h82f JR h881 h891: CALL h1e10 RET Z LD A,(h8c5) CP '>' JR NZ,h8ad h89c: LD A,1 CALL h19e0 JR Z,h8ab CALL h80f CALL h1e10 JR NZ,h89c h8ab: JR h868 h8ad: CALL h1911 PUSH AF CALL h19b7 POP AF JR Z,h8bf CALL C,h82f CALL h1e10 JR NZ,h8ad h8bf: JR h886 h8c1: LD A,'>' JR h8c8 h8c5: db 0 h8c6: LD A,'<' h8c8: LD (h8c5),A CALL h8d1 JP h1313 h8d1: CALL h273 LD A,(h8c5) JP h3da h8da: LD A,(2DAEH) PUSH AF CALL h273 LD HL,paghed CALL h1308 h8e7: CALL h145c CALL h1e10 JR Z,h902 LD A,(h8c5) CP '>' JR Z,h90c CALL h19b7 LD A,(h1da) DEC A CALL h19c0 h900: JR NZ,h8e7 h902: POP AF CALL h1ddb CALL h7a9 JP h132b h90c: LD A,(h1da) DEC A CALL h19e0 JR h900 paghed: db ' Page',0 h921: LD HL,h8c5 LD A,(HL) PUSH AF LD A,'>' LD (HL),A LD A,(h4ce) LD (h2c7c),A LD HL,insmsg CALL h1308 h935: CALL h1b9f CALL h1313 h93b: CALL h9ff h93e: CALL h453 CP esc JR Z,h96b CALL h36a JR Z,h98f CP '\' JR Z,h988 h94e: CP 9 JR Z,h9b3 CALL h1c57 CP cr CALL NZ,h3da CALL Z,h28b h95d: LD HL,(h4cd) LD A,(2DADH) LD (2DADH),HL CP L JR NZ,h93b JR h93e h96b: CALL h1be5 POP AF LD (h8c5),A CALL h7a9 CALL h1e60 RET Z CALL h2ff LD DE,(h4cd) LD A,(h1da) SUB E EX AF,AF' JP ha19 h988: CALL h453 CP 7FH JR NZ,h94e h98f: CALL h1911 JR Z,h9a6 JR C,h99b CALL h378 JR h93e h99b: LD HL,2DADH DEC (HL) JR Z,h9ab CALL h378 JR h93b h9a6: CALL h131a JR h93e h9ab: CALL h1be5 CALL h1323 JR h935 h9b3: CALL h9b8 JR h95d h9b8: LD HL,h4ce LD A,(HL) PUSH HL CALL h1cec POP HL LD C,A h9c2: LD A,(HL) ADD A,8 AND 0F8H CP C LD A,9 JR Z,h9d0 JR C,h9d0 LD A,' ' h9d0: CALL h3da PUSH BC PUSH HL CALL h1c57 POP HL LD A,(HL) PUSH HL CALL h1cd7 POP HL POP BC LD A,C JR NC,h9c2 RET insmsg: db 'Insert: ' db ' ',0 h9ff: CALL h1e60 RET Z CALL h2ff LD A,(h4cd) LD E,A LD A,(h1da) SUB E DEC A RET Z EX AF,AF' INC E LD A,(2C7CH) LD D,A CALL h22c ha19: LD C,D LD HL,(h1cd2) ha1d: LD DE,(2DB1H) CALL h1e0a JR NC,ha3f LD A,(HL) INC HL CALL h18e8 JR NC,ha33 EX AF,AF' DEC A JP Z,h1313 EX AF,AF' ha33: CALL h3da CP cr LD A,lf+msbon CALL Z,h3da JR ha1d ha3f: LD DE,(h1cd2) SBC HL,DE PUSH BC PUSH HL CALL h1a5d POP HL POP BC JP C,h1313 LD DE,(h1cd2) ADD HL,DE JR ha1d ha56: PUSH HL LD DE,2E26H INC DE ha5b: CALL hac7 JR Z,ha95 LD B,0 LD C,A ha63: INC B JR Z,ha82 CALL h453 CP '\' JR Z,ha97 CP esc JR Z,ha95 PUSH BC CALL h36a POP BC JR Z,ha9e ha78: PUSH AF CALL hb0d POP AF LD (DE),A INC DE CP C JR NZ,ha63 ha82: DEC B POP HL JR Z,hab4 LD C,B LD B,0 PUSH HL EX DE,HL LD HL,2E26H LD (HL),C INC BC LDIR EX DE,HL LD (HL),0 ha95: POP HL RET ha97: CALL h453 CP 7FH JR NZ,ha78 ha9e: DEC B JR NZ,haa7 CALL h387 SUB A JR ha5b haa7: DEC DE LD A,(DE) CP ' ' CALL C,h387 CALL h387 DEC B JR ha63 hab4: LD A,(HL) AND A RET Z PUSH HL CALL h387 POP HL PUSH HL CALL hb03 LD A,C CALL h3da AND A POP HL RET hac7: AND A CALL Z,h453 CALL had7 JR C,had4 RET Z JP h3da had4: SUB A JR hac7 had7: AND A CALL Z,h453 CP esc RET Z CP ' ' JR C,hafe CALL h36a JR Z,hafe CALL h1dfa JR C,hafe CP 'A' JR C,hafc CP '[' JR C,hafe CP 'a' JR C,hafc CP '{' JR C,hafe hafc: AND A RET hafe: CALL h131a SCF RET hb03: LD B,(HL) EX DE,HL hb05: INC DE LD A,(DE) CALL hb0d DJNZ hb05 RET hb0d: LD HL,ctli CP 9 JR Z,hb1c CP cr JP NZ,h3da LD HL,ctlm hb1c: JP h13ef ctli: db '^I',0 ctlm: db '^M',0 hb25: LD HL,subs CALL h143e SUB A LD DE,2C7DH LD (DE),A hb30: CALL h453 CP 'Q' JR Z,hb3b CP 'q' JR NZ,hb54 hb3b: LD (DE),A LD DE,(h4cd) PUSH DE LD DE,1300H CALL h22c LD HL,qry CALL h13ef POP DE CALL h22c SUB A JR hb59 hb54: CALL had7 JR C,hb30 hb59: LD HL,2C80H CALL ha56 RET Z LD (2C7FH),A LD A,',' CALL h3da SUB A LD HL,2E26H LD (HL),A CALL ha56 JR NZ,hb75 CP esc RET Z hb75: SUB A hb76: LD (2C7EH),A CALL h1a09 CALL h1e10 JP Z,hcd6 LD A,(02C7FH) CALL he63 JP Z,hcd3 EXX LD A,B AND A JP Z,hcd3 EXX LD A,(2C7DH) AND A JR Z,hbec CALL h1323 LD HL,sbqry CALL h143e JR hbc6 hba3: LD B,10 hba5: CALL h3ba DJNZ hba5 LD DE,0DFDFH CALL h22c CALL h1313 LD B,10 hbb5: CALL h3ba DJNZ hbb5 LD DE,0DFDFH CALL h22c LD DE,2B00H CALL h22c hbc6: CALL h45b JR NZ,hba3 CALL h453 CP esc JP Z,h7a9 LD HL,yorn CALL h14b1 JR NZ,hbe0 CALL h131a JR hba3 hbe0: LD A,(HL) CALL h3da PUSH AF CALL h1313 POP AF RRA JR NC,hb75 hbec: EXX LD HL,2E26H LD A,(HL) AND A JR Z,hc13 LD A,B SUB (HL) JR NC,hbfc NEG JR hbfd hbfc: LD B,(HL) hbfd: PUSH AF hbfe: INC HL LD A,(HL) PUSH HL LD HL,(2DB3H) LD (HL),A PUSH BC CALL h18b6 POP BC POP HL DJNZ hbfe POP AF JR Z,hc26 LD B,A JR C,hc38 hc13: CALL h1a09 hc16: PUSH BC CALL h18b6 POP BC DJNZ hc16 CALL h1bd9 CALL h1a1b CALL h1be5 hc26: LD A,(h8c5) CP '>' JR NZ,hc48 CALL h1911 hc30: CALL h145c LD A,1 JP hb76 hc38: INC HL LD A,(HL) PUSH HL PUSH BC CALL h1c57 POP BC POP HL DJNZ hc38 CALL h196b JR hc26 hc48: LD A,(2E26H) AND A JR Z,hc30 LD B,A hc4f: PUSH BC CALL h1911 POP BC DJNZ hc4f JR hc30 subs: db 'Substitute: [Query]' db ' , ',0 qry: db 88h,' Query ',89h db ':',0 sbqry: db 'Substitute Query' db ': Yes No ',0 yorn: db 'YN',0 hcab: LD HL,fndmsg CALL h143e LD HL,2C80H SUB A CALL ha56 RET Z LD (2C7FH),A SUB A hcbd: LD (2C7EH),A CALL h1e10 JR Z,hcd6 CALL h145c CALL h1a09 LD A,(2C7FH) CALL he63 JR NZ,hcbd hcd3: CALL h1a1b hcd6: LD A,(2C7EH) AND A RET Z CALL h7a9 JP h1323 fndmsg: db 'Find: ' db ' ',0 hcfa: LD A,C CALL h1c57 LD DE,(h4cd) CP cr CALL NZ,h3da CALL Z,h28b LD HL,(h4cd) LD (2DADH),HL CALL h7a9 LD A,D CP H JR C,hd77 INC E LD A,(h1da) CP E JR Z,hd6e JR hd77 hd20: POP AF CALL h1911 LD C,cr JR hd2a hd28: LD C,82H hd2a: LD A,1 LD (h504),A LD (h14af),A LD A,C CP cr JR Z,hd41 AND 7FH LD HL,atblp2 CALL h14c5 JR hd44 hd41: CALL h891 hd44: LD A,(h504) AND A JR Z,hd6e JR hd77 hd4c: CALL h1a09 CALL he16 PUSH DE CALL h1bd9 CALL h1a1b CALL h1be5 CALL h9b8 POP DE LD (2DADH),DE JR hdb5 hd66: LD HL,h8c5 LD A,(HL) PUSH AF LD A,'>' LD (HL),A hd6e: LD HL,xchmsg CALL h1308 hd74: CALL h1313 hd77: CALL h432 CP 84H JR Z,hdd5 LD C,A CP 7FH JR Z,hd28 JR NC,hd2a CP 9 JR Z,hd4c PUSH BC CALL h18b6 POP BC JP Z,hcfa PUSH AF LD A,C CP cr JR Z,hd20 POP AF LD B,A LD DE,(2DADH) JR NC,hda4 INC E LD (2DADH),DE hda4: LD A,C LD HL,(2DB3H) DEC HL LD (HL),A LD HL,(h4cd) CALL h3da LD A,cr CP B JR Z,hdde hdb5: CALL h7a9 LD HL,(h4cd) CALL h1e0a JR Z,hd77 PUSH HL LD A,B CP 9 JR Z,he00 hdc6: CALL h1420 POP HL LD (2DADH),HL CALL h1362 hdd0: CALL h7a9 JR hd74 hdd5: SUB A LD (h504),A POP AF LD (h8c5),A RET hdde: DEC E LD (2DADH),DE PUSH HL CALL h1c57 CALL h1911 CALL h7a9 POP DE LD HL,(h4cd) LD A,D CP H JR C,hd77 INC E LD A,(h1da) CP E JP Z,hd6e PUSH HL JR hdc6 he00: LD A,E CP L JR NZ,he08 LD A,H CP D JR NC,hdc6 he08: LD A,9 CALL h1c57 CALL h1911 POP HL LD (2DADH),HL JR hdd0 he16: LD A,(2DAEH) CALL h1cec LD B,A he1d: PUSH BC CALL h18b6 LD DE,(2DADH) POP BC RET Z JR C,he2e LD A,D CP B JR C,he1d RET he2e: CP cr JR Z,he38 INC E LD (2DADH),DE RET he38: CALL h1911 LD DE,(2DADH) RET xchmsg: db 'Xchange: ' db '',0 he59: CALL hf57 JR Z,he87 CALL hf39 JR he8a he63: CP squote JR Z,he6c CP '"' JR Z,he6c SUB A he6c: LD (2D81H),A he6f: CALL h462 RET Z LD A,(h8c5) CP '>' JR NZ,he59 CALL h18b6 RET Z CALL hf57 JR Z,he8b CALL hf39 RET Z he87: CALL h1911 he8a: RET Z he8b: LD HL,2C81H EXX LD HL,(2DB1H) LD DE,(2DB3H) SBC HL,DE LD A,H AND A CALL Z,h1a5d LD B,0 LD HL,2D82H LD (HL),B LD HL,(2DB3H) LD DE,(2DB1H) EXX heab: LD A,(HL) AND A JR Z,hee5 INC HL CP '*' JR Z,heec CALL hf25 JR Z,hedb CP '?' JR Z,heab CP '\' CALL Z,hf19 CALL hf71 JR Z,heab LD A,(2D82H) AND A JR Z,he6f LD HL,(2D84H) EXX LD HL,2D83H LD B,(HL) LD HL,(2D86H) EXX JR hefe hedb: JR C,he6f LD A,(h8c5) CP '>' JR NZ,he6f RET hee5: INC A RET hee7: CALL hf25 JR Z,hedb heec: LD A,(HL) AND A JR Z,hee5 INC HL CP '*' JR Z,heec CP '?' JR Z,hee7 CP '\' CALL Z,hf19 hefe: CALL hf25 JR Z,hedb CALL hf71 JR NZ,hefe LD (2D82H),A LD (2D84H),HL EXX LD A,B LD (2D83H),A LD (2D86H),HL EXX JR heab hf19: LD A,(HL) INC HL CP '*' RET Z CP '?' RET Z DEC HL LD A,'\' RET hf25: EXX CALL h1e0a JR NC,hf36 INC B JR Z,hf37 CCF EX AF,AF' LD A,(HL) INC HL EXX LD C,A EX AF,AF' RET hf36: CP A hf37: EXX RET hf39: PUSH BC CALL h462 POP BC RET Z PUSH BC CALL hf4c POP BC RET Z CALL hf71 JR NZ,hf39 AND A RET hf4c: LD A,(h8c5) CP '>' JP Z,h18b6 JP h1911 hf57: LD A,(2C81H) LD C,A CP '?' RET Z CP '*' RET Z CP '\' RET NZ LD A,(2C82H) CP '*' JR Z,hf6e CP '?' RET NZ hf6e: LD C,A AND A RET hf71: PUSH AF LD A,(2D81H) AND A JR Z,hf7b POP AF CP C RET hf7b: LD A,C CALL h1e01 LD C,A POP AF CALL h1e01 CP C RET hf86: LD HL,lstmsg CALL h17c0 JR Z,hfb6 PUSH HL PUSH DE CALL h1a09 POP HL CALL h1886 SUB A LD (2D88H),A hf9b: CALL h462 JR Z,hfb2 CALL h18b6 JR Z,hfb2 CALL hfc4 POP DE LD HL,2DB7H CALL h18a5 PUSH DE JR C,hf9b hfb2: POP DE JP h1a1b hfb6: CP 84H RET Z LD A,0CH JR hfd8 lstmsg: db 'List: ',0 hfc4: CP cr JR Z,hfde CP 9 JR Z,hfea CP 0CH JR Z,hfd8 CP ' ' JR C,hff5 LD HL,2D88H INC (HL) hfd8: LD E,A LD C,5 ;write list JP bdos hfde: CALL hfd8 LD HL,2D88H SUB A LD (HL),A LD A,lf JR hfd8 hfea: LD A,' ' CALL hfc4 LD A,(HL) AND 7 JR NZ,hfea RET hff5: PUSH AF LD A,'^' CALL hfc4 POP AF ADD A,'@' JR hfc4 h1000: LD HL,rdmsg CALL h1308 CALL h1183 RET Z CALL h11c5 RET Z CALL h1072 RET Z CALL h108a CALL h196b CALL h7a9 JP h1323 rdmsg: db 'Read: ',0 fnfmsg: db 'File not found ',0 h1049: LD A,(2D89H) AND A JR NZ,h1061 LD HL,(2D8AH) LD DE,2E26H SBC HL,DE RET Z LD E,H LD D,L LD (h2978),DE JP h24cd h1061: SUB A LD (2D98H),A CALL h1072 RET Z CALL h108a RET Z LD C,13H ;delete file JP bdos h1072: LD DE,2E26H LD C,1AH ;set disk buffer CALL bdos LD DE,2D8CH LD C,0FH ;open disk file CALL bdos INC A RET NZ LD HL,fnfmsg JP h12c6 h108a: LD HL,3626H LD DE,80H AND A SBC HL,DE LD (2D8AH),HL LD HL,2E26H h1099: LD DE,2D8CH LD C,14H ;read next rec. CALL bdos LD D,H LD E,L AND A JR NZ,h10d8 LD B,80H h10a8: LD A,(HL) AND 7FH CP lf JR Z,h10bf CP 1AH JR Z,h10d8 LD (DE),A INC DE PUSH HL PUSH BC LD HL,h2976 CALL h19f1 POP BC POP HL h10bf: INC HL DJNZ h10a8 LD HL,(2D8AH) AND A SBC HL,DE JR NC,h10d0 CALL h24cd LD DE,2E26H h10d0: LD C,1AH ;set disk buffer CALL bdos EX DE,HL JR h1099 h10d8: LD HL,2E26H AND A SBC HL,DE CALL NZ,h24cd LD DE,2D8CH LD C,10H ;close disk file CALL bdos INC A RET h10eb: LD HL,wrtmsg CALL h17c0 RET Z PUSH HL PUSH DE CALL h1a09 LD HL,tofn CALL h13ef CALL h1183 POP HL JR Z,h1135 CALL h11c5 JR Z,h1135 CALL h1886 CALL h1217 JR Z,h1135 h1110: CALL h18b6 JR Z,h112f CP cr JR NZ,h1120 CALL h11dc JR Z,h1132 LD A,lf h1120: CALL h11dc JR Z,h1132 POP DE PUSH DE LD HL,2DB7H CALL h18a5 JR C,h1110 h112f: CALL h1289 h1132: CALL h1a1b h1135: POP HL RET wrtmsg: db 'Write: ',0 tofn: db 'to ',0 h114e: PUSH HL PUSH DE SUB A LD (2D89H),A CALL h1886 LD HL,2E26H LD (2D8AH),HL h115d: CALL h18b6 JR Z,h1173 CALL h11dc POP DE POP HL JR Z,h1181 PUSH HL PUSH DE LD HL,2DB7H CALL h18a5 JR C,h115d h1173: POP DE POP HL LD A,(2D89H) AND A RET Z CALL h1289 JR Z,h1181 AND A RET h1181: SCF RET h1183: LD DE,2E26H h1186: CALL h453 CP esc RET Z CP cr JR Z,h11a0 CALL h36a JR Z,h11b2 CP ' ' JR C,h11ba CALL h3da LD (DE),A INC DE JR h1186 h11a0: CALL h3da SUB A LD (DE),A LD DE,2D8CH LD HL,2E26H LD C,86H ;build fcb CALL bdos INC C RET h11b2: LD HL,2E26H AND A SBC HL,DE JR C,h11bf h11ba: CALL h131a JR h1186 h11bf: CALL h387 DEC DE JR h1186 h11c5: PUSH HL LD HL,1 ADD HL,DE LD A,(HL) CP ' ' JR NZ,h11d8 LD HL,9 ADD HL,DE LD A,(HL) CP ' ' JR Z,h11da h11d8: OR 1 h11da: POP HL RET h11dc: LD HL,(2D8AH) LD (HL),A INC HL LD (2D8AH),HL LD DE,3626H AND A SBC HL,DE RET C LD A,(2D89H) AND A CALL Z,h1267 RET Z LD HL,2E26H LD (2D8AH),HL LD B,10H h11fb: LD D,H LD E,L LD C,1AH ;set disk buffer CALL bdos LD DE,2D8CH LD C,15H ;write next CALL bdos AND A JR NZ,h1215 LD DE,80H ADD HL,DE DJNZ h11fb INC C RET h1215: SUB A RET h1217: LD HL,2E26H LD (2D8AH),HL LD DE,80H LD C,1AH ;set disk buffer CALL bdos LD DE,2D8CH LD C,0FH ;open disk buffer CALL bdos INC A JR Z,h1254 LD HL,wrtmsg CALL h1308 LD HL,2D8CH CALL h204a LD HL,alrex CALL h13ef CALL h453 AND 5FH CP 'Y' JR NZ,h1265 CALL h3da h124e: LD DE,2D8CH CALL h1fef h1254: LD C,16H ;create file CALL bdos LD C,0FH ;open disk file CALL bdos INC A JR Z,h12c3 LD (2D89H),A RET h1265: CP A RET h1267: LD DE,80H LD C,1AH ;set disk buffer CALL bdos LD HL,2DE0H LD DE,2D8CH LD BC,9 LDIR LD HL,dol2 LD BC,3 LDIR SUB A LD (DE),A JR h124e dol2: db '$$2' h1289: LD HL,3626H LD DE,(2D8AH) AND A SBC HL,DE PUSH HL LD DE,80H CALL h1e0a JR C,h129d EX DE,HL h129d: LD B,L LD HL,(2D8AH) LD A,1AH h12a3: LD (HL),A INC HL DJNZ h12a3 POP BC DEC BC RL C RL B LD A,10H SUB B LD B,A LD HL,2E26H CALL h11fb JR Z,h12c3 LD DE,2D8CH LD C,10H ;close disk file CALL bdos INC A RET NZ h12c3: LD HL,wrter h12c6: CALL h1308 h12c9: CALL h3ba CALL h462 JR Z,h12d7 LD HL,2D88H INC (HL) JR NZ,h12c9 h12d7: RET wrter: db 'write error',0 alrex: db ' already exists. ' db ' Delete it? (y/n)' db ' ',0 h1308: PUSH HL CALL h8d1 CALL h323 POP HL JP h13ef h1313: LD DE,(2DADH) JP h22c h131a: LD HL,h1320 JP h13ef h1320: db 87h,87h,0 h1323: LD A,(h1da) SRL A LD (2DADH),A h132b: CALL h1a09 CALL h25d CALL h35b CALL h28b LD A,(h1da) LD HL,2DADH SUB (HL) DEC A CALL NZ,h19e0 PUSH AF CALL h19b7 LD A,(h1da) DEC A DEC A CALL h19c0 INC A POP BC SUB B LD (2DADH),A LD A,(h1da) SUB 1 h1359: CALL h13cb h135c: CALL h1a1b JP h356 h1362: CALL h1a09 CALL h35b CALL h13f8 LD HL,h143d JR C,h1383 CP (HL) JR Z,h135c LD (HL),A CALL h28b CALL h2ff LD A,(h1da) LD HL,h4cd SUB (HL) JR h1359 h1383: LD (HL),A JR h135c h1386: CALL h35b LD DE,1 CALL h22c CALL h351 LD HL,2DADH PUSH HL DEC (HL) CALL h139f POP HL INC (HL) JP h356 h139f: CALL h1a09 CALL h1911 CALL h1313 LD A,2 CALL h13cb JP h1a1b h13b0: CALL h1a09 CALL h35b CALL h19b7 CALL h1313 CALL h34c CALL h13e5 CALL NZ,h3da CALL h356 JP h1a1b h13cb: LD B,A PUSH BC h13cd: CALL h13e5 POP BC RET Z DEC B RET Z PUSH BC JR NC,h13db CP cr JR NZ,h13e0 h13db: CALL h28b JR h13cd h13e0: CALL h3da JR h13cd h13e5: CALL h18b6 RET Z RET C CALL h3da JR h13e5 h13ef: LD A,(HL) AND A RET Z CALL h3da INC HL JR h13ef h13f8: LD A,(h1da) LD HL,h4cd SUB (HL) LD B,A h1400: PUSH BC CALL h13e5 POP BC JR Z,h1418 DEC B JR Z,h1418 CP cr JR Z,h1413 CALL h3da JR h1400 h1413: CALL h323 JR h141c h1418: CALL h2ff SCF h141c: LD A,(h4cd) RET h1420: CALL h1a09 LD A,(2DADH) LD C,A h1427: PUSH BC CALL h18b6 POP BC JR Z,h1436 JR NC,h1427 INC C CP cr JR NZ,h1427 DEC C h1436: LD A,C LD (h143d),A JP h1a1b h143d: db 0 h143e: PUSH HL CALL h8d1 CALL h323 CALL h145c LD DE,900H CALL h22c POP HL JR h13ef h1451: LD BC,xes CALL h1e1f LD HL,xes JR h13ef h145c: CALL h35b LD DE,200H CALL h22c LD HL,(h14af) CALL h1451 JP h356 xes: db 'xxxxx',0 h1474: PUSH HL LD HL,1 PUSH HL CALL h432 POP HL CP '#' JR Z,h14a0 CALL h1dfa JR NC,h14a8 SUB '0' LD L,A h1489: PUSH HL CALL h432 POP HL CALL h1dfa JR NC,h14a8 LD D,H LD E,L ADD HL,HL ADD HL,HL ADD HL,DE ADD HL,HL SUB '0' CALL h1df5 JR h1489 h14a0: LD HL,0FFFFH PUSH HL CALL h432 POP HL h14a8: LD (h14af),HL POP HL JP h14b1 h14af: dw 0 h14b1: CALL h1e01 LD B,0 LD C,A h14b7: LD A,(HL) AND A RET Z CP C JR Z,h14c1 INC HL INC B JR h14b7 h14c1: SUB A INC A LD A,B RET h14c5: ADD A,A CALL h1df5 LD A,(HL) INC HL LD H,(HL) LD L,A JP (HL) h14ce: LD HL,delmsg CALL h1308 CALL h1313 LD A,(h4ce) LD (h1558),A LD HL,2DB7H LD BC,4 PUSH BC PUSH HL LD DE,h1550 LDIR POP HL POP BC LD DE,h1554 LDIR h14f1: LD HL,delky CALL h1474 JR Z,h1501 LD HL,h1534 CALL h14c5 JR h14f1 h1501: CALL h131a JR h14f1 h1506: POP AF LD HL,h1554 LD DE,h1550 CALL h18a5 RET Z JP h1783 delmsg: db 'Delete: ',0 delky: db 9,cr,' ',80h,81h db 82h,83h,84h db '<,->.+',0 h1534: dw h155e dw h1579 dw h156a dw h15c9 dw h15eb dw h159d dw h15a9 dw h1506 dw h8c6 dw h8c6 dw h8c6 dw h8c1 dw h8c1 dw h8c1 h1550: dw 0 dw 0 h1554: dw 0 dw 0 h1558: db 0 h1559: CALL h1689 JR Z,h1574 h155e: CALL h1e10 JR NZ,h1559 h1563: LD A,(h4ce) LD (h1558),A RET h156a: CALL h1e10 JR Z,h1563 CALL h15f1 JR NZ,h156a h1574: CALL h131a JR h1563 h1579: LD A,(h8c5) CP '>' CALL NZ,h15f8 h1581: CALL h1e10 JR Z,h158d CALL h1682 JR Z,h1574 JR h1581 h158d: LD HL,h8c5 LD A,'>' CP (HL) CALL NZ,h1632 JR h1563 h1598: CALL h15f8 JR Z,h1574 h159d: CALL h1e10 JR NZ,h1598 JR h1563 h15a4: CALL h1632 JR Z,h1574 h15a9: CALL h1e10 JR NZ,h15a4 JR h1563 h15b0: CALL h15f8 JP Z,h131a JR NC,h15b0 LD A,(h1558) LD HL,h4ce CP (HL) JR NC,h15c9 CALL h15f8 JP Z,h131a JR 15B8H h15c9: CALL h1e10 JR NZ,h15b0 RET h15cf: CALL h1632 JP Z,h131a JR NC,h15cf h15d7: LD A,(h4ce) LD HL,h1558 CP (HL) JR NC,h15eb CALL h1632 JP Z,h131a JR NC,h15d7 CALL h15f8 h15eb: CALL h1e10 JR NZ,h15cf RET h15f1: LD A,(h8c5) CP '>' JR Z,h1632 h15f8: CALL h1911 RET Z JR C,h1626 h15fe: PUSH AF LD DE,h1550 LD HL,2DB7H CALL h18a5 JR NC,h1616 POP AF PUSH AF PUSH DE CALL h378 POP HL h1611: CALL h19fc POP AF RET h1616: CALL h1313 POP AF PUSH AF CALL h3da CALL h1313 LD HL,h1554 JR h1611 h1626: LD HL,2DADH DEC (HL) JR NZ,h15fe INC (HL) CALL h18b6 SUB A RET h1632: CALL h18b6 RET Z PUSH AF JR C,h1668 h1639: LD DE,2DB7H LD HL,h1554 CALL h18a5 JR NC,h165e LD HL,h4ce LD A,(2DAEH) LD C,A JR h1653 h164d: LD A,' ' CALL h3da LD A,C h1653: CP (HL) JR NZ,h164d LD HL,h1554 h1659: CALL h19f1 POP AF RET h165e: POP AF CALL h3da PUSH AF LD HL,h1550 JR h1659 h1668: LD HL,2DADH LD A,(h1da) INC (HL) CP (HL) JR Z,h167b POP AF PUSH AF CP cr CALL Z,h28b JR h1639 h167b: DEC (HL) CALL h1911 POP AF SUB A RET h1682: CALL h15f1 RET Z JR NC,h1682 RET h1689: CALL h15f1 RET Z LD A,(2DAEH) CALL h1cd7 JR NC,h1689 INC A RET h1697: INC A LD B,8 LD C,(HL) h169b: CP B JR Z,h16a5 RLC C h16a0: DJNZ h169b LD (HL),C DEC A RET h16a5: SCF RL C JR h16a0 h16aa: LD B,A INC B LD C,(HL) h16ad: RR C DJNZ h16ad RET h16b2: SUB '1' CCF RET NC CP 7 RET h16b9: LD HL,setmrk CALL h1308 LD A,(h185d) LD C,A LD B,7 LD E,'0' h16c7: RR C LD A,88H CALL C,h3da INC E LD A,E CALL h3da LD A,89H CALL h3da LD A,' ' CALL h3da DJNZ h16c7 LD HL,escmsg CALL h13ef h16e5: CALL h432 CP 84H RET Z CALL h16b2 JR NC,h1703 h16f0: LD HL,h185d CALL h1697 CALL h1760 EX DE,HL LD HL,2DB7H LD BC,4 LDIR RET h1703: CALL h131a JR h16e5 setmrk: db 'set marker At' db ': ',0 h1718: LD A,7 JR h16f0 h171c: LD A,7 CALL h1760 JP h1886 h1724: LD A,(h185d) AND A RET Z LD C,A SUB A h172b: RR C LD B,A PUSH BC CALL C,h173b POP BC LD A,B INC A CP 8 JR C,h172b AND A RET h173b: JP (IY) h173d: LD IY,h174c JR h1747 h1743: LD IY,h1756 h1747: LD DE,2DB7H JR h1724 h174c: CALL h1760 CALL h18a5 CALL NC,h19f1 RET h1756: CALL h1760 CALL h18a5 CALL NC,h19fc RET h1760: ADD A,A ADD A,A LD HL,h185e CALL h1df5 RET h1769: LD HL,jmpmsg CALL h17df RET Z CALL h1886 JR h1791 jmpmsg: db 'Jump: ',0 h177c: LD HL,zapmsg CALL h17c0 RET Z h1783: PUSH DE CALL h1886 CALL h1bd9 POP HL CALL h1886 CALL h1be5 h1791: CALL h7a9 JP h1323 zapmsg: db 'Zap: ',0 h179d: CALL h1308 LD HL,bgnmsg CALL h13ef LD HL,cursmsg CALL h13ef LD HL,ndmsg CALL h13ef LD IY,h1850 CALL h1724 LD HL,escmsg CALL h13ef RET h17c0: CALL h17df RET Z h17c4: PUSH HL LD A,',' CALL h3da CALL h17e2 POP DE RET Z CALL h18a5 RET NC EX DE,HL RET escmsg: db ' ',0 h17df: CALL h179d h17e2: CALL h432 CALL h17eb JR C,h17e2 RET h17eb: CP 84H RET Z PUSH AF LD HL,morkys CALL h14b1 PUSH AF JR Z,h182a CP 7 JR NC,h1811 LD HL,h185d CALL h16aa JR NC,h182a CALL h1850 h1807: CALL h3cf POP AF CALL h1760 POP AF AND A RET h1811: JR NZ,h181b CALL h16f0 LD HL,cursmsg JR h1825 h181b: LD HL,bgnmsg CP 8 JR Z,h1825 LD HL,ndmsg h1825: CALL h13ef JR h1807 h182a: POP AF CALL h131a POP AF SCF RET morkys: db '1234567CBE',0 cursmsg: db 'Cursor ',0 bgnmsg: db 'Begin ',0 ndmsg: db 'End ',0 h1850: CP 7 RET Z ADD A,'1' CALL h3da LD A,' ' JP h3da h185d: db 0 h185e: db 0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0 db 0,0,0,0,0 h1882: db 0ffh,0ffh,0ffh,0ffh h1886: PUSH BC PUSH DE PUSH HL h1889: POP HL PUSH HL LD DE,2DB7H CALL h18a5 JR C,h189c JR Z,h18a1 CALL h18b6 JR Z,h18a1 JR h1889 h189c: CALL h1911 JR NZ,h1889 h18a1: POP HL POP DE POP BC RET h18a5: PUSH HL PUSH DE LD B,4 h18a9: LD A,(DE) LD C,A LD A,(HL) CP C JR NZ,h18b3 INC HL INC DE DJNZ h18a9 h18b3: POP DE POP HL RET h18b6: LD HL,(2DB1H) LD DE,(2DB3H) AND A SBC HL,DE JR Z,h18e1 LD A,(DE) INC DE LD (2DB3H),DE LD HL,2DAEH LD C,(HL) CALL h18e8 LD (HL),C PUSH AF LD A,(h1cd4) AND A CALL NZ,h173d LD HL,2DB7H CALL h19f1 POP AF INC H RET h18e1: CALL h1a5d JR NC,h18b6 SUB A RET h18e8: PUSH HL PUSH DE LD HL,h1d9 LD D,A CP 9 JR Z,h190a CP cr JR Z,h1907 CP ' ' JR NC,h18fb INC C h18fb: INC C LD A,C h18fd: CP (HL) JR C,h1901 SUB (HL) h1901: LD C,A CCF LD A,D POP DE POP HL RET h1907: SUB A JR h1901 h190a: LD A,C ADD A,8 AND 0F8H JR h18fd h1911: LD HL,(2DAFH) LD DE,(2DB3H) AND A SBC HL,DE JR Z,h1956 DEC DE LD A,(DE) PUSH AF LD A,(h1cd4) AND A CALL NZ,h1743 LD HL,2DB7H CALL h19fc POP AF LD HL,2DAEH CP 9 JR Z,h195d CP cr JR Z,h195d CP ' ' JR NC,h193e DEC (HL) h193e: DEC (HL) JP M,h194f AND A INC H h1944: LD DE,(2DB3H) DEC DE LD A,(DE) LD (2DB3H),DE RET h194f: LD A,(h1d9) ADD A,(HL) LD (HL),A JR h1944 h1956: CALL h1aae JR NC,h1911 SUB A RET h195d: LD C,(HL) PUSH BC CALL h1975 POP BC LD A,(2DAEH) CP C CCF INC A JR h1944 h196b: LD DE,(2DB3H) LD IY,h196b JR h197e h1975: LD DE,(2DB3H) DEC DE LD IY,h1975 h197e: LD BC,0 h1981: LD HL,(2DAFH) INC BC AND A SBC HL,DE JR NC,h19aa DEC DE LD A,(DE) CP cr JR NZ,h1981 INC DE h1991: DEC BC LD A,B OR C JR Z,h19a6 EX DE,HL LD D,B LD E,C LD C,0 h199b: LD A,(HL) INC HL CALL h18e8 DEC DE LD A,D OR E JR NZ,h199b LD A,C h19a6: LD (2DAEH),A RET h19aa: PUSH BC CALL h1aae POP BC LD DE,(2DAFH) JR C,h1991 JP (IY) h19b7: CALL h1911 RET Z JR NC,h19b7 JP h18b6 h19c0: LD B,A LD C,0 PUSH BC CALL h1911 JR Z,h19d9 h19c9: CALL h1911 JR Z,h19dc JR NC,h19c9 POP BC INC C DEC B PUSH BC JR NZ,h19c9 CALL h18b6 h19d9: POP BC LD A,C RET h19dc: POP BC INC C LD A,C RET h19e0: LD B,A LD C,0 h19e3: PUSH BC CALL h18b6 POP BC JR Z,h19ef JR NC,h19e3 INC C DJNZ h19e3 h19ef: LD A,C RET h19f1: LD BC,4 ADD HL,BC LD B,C h19f6: DEC HL INC (HL) RET NZ DJNZ h19f6 RET h19fc: LD BC,4 ADD HL,BC LD B,C h1a01: DEC HL DEC (HL) LD C,(HL) INC C RET NZ DJNZ h1a01 RET h1a09: PUSH HL PUSH DE PUSH BC LD HL,2DB7H LD DE,2DBBH LD BC,4 LDIR POP BC POP DE POP HL RET h1a1b: PUSH HL LD HL,2DBBH CALL h1886 POP HL RET h1a24: PUSH HL ADD HL,DE PUSH HL LD A,(h1cd4) AND A CALL NZ,h1bed CALL h1b50 POP HL AND A SBC HL,DE POP DE RET NC SUB A RET h1a39: LD HL,0 LD DE,800H CALL h1a24 PUSH DE JR Z,h1a7a PUSH HL LD DE,(2DAFH) ADD HL,DE EX DE,HL LD HL,(2DB3H) LD BC,80H SBC HL,BC SBC HL,DE EX DE,HL POP DE JR NC,h1a6e EX DE,HL JR h1aba h1a5d: LD HL,800H LD DE,800H CALL h1a24 PUSH DE JR Z,h1a7a LD DE,(2DAFH) ADD HL,DE h1a6e: CALL h2136 LD DE,(2DAFH) CALL h1e0a JR NC,h1a6e h1a7a: LD HL,0 CALL h1af1 POP HL LD A,H OR L JR Z,h1aa3 h1a85: LD DE,(2DB1H) ADD HL,DE LD DE,80H SBC HL,DE EX DE,HL CALL h2079 JR C,h1aa3 h1a95: LD HL,(2DB1H) CALL h1e0a JR NC,h1aa3 CALL h2079 JR NC,h1a95 h1aa2: AND A h1aa3: PUSH AF LD A,(h1cd4) CP 1 CALL Z,h1b9f POP AF RET h1aae: LD HL,800H LD DE,800H CALL h1a24 PUSH DE JR Z,h1acd h1aba: EX DE,HL LD HL,(2DB1H) AND A SBC HL,DE h1ac1: CALL h219b LD DE,(2DB1H) CALL h1e0a JR C,h1ac1 h1acd: POP HL LD A,H OR L JR Z,h1aa3 CALL h1af1 LD HL,(2DB5H) LD DE,7FH ADD HL,DE CALL h20e7 JR C,h1aa3 h1ae1: LD DE,(2DAFH) CALL h1e0a JR NC,h1aa3 CALL h20e7 JR NC,h1ae1 JR h1aa2 h1af1: LD DE,(2DB5H) ADD HL,DE PUSH HL LD HL,(2DB1H) LD DE,(2DAFH) AND A SBC HL,DE JR Z,h1b40 LD B,H LD C,L POP DE LD HL,(2DAFH) PUSH HL AND A SBC HL,DE EX (SP),HL JR Z,h1b4e LD (2DAFH),DE JR C,h1b1e LDIR LD (2DB1H),DE JR h1b2c h1b1e: EX DE,HL ADD HL,BC EX DE,HL LD HL,(2DB1H) LD (2DB1H),DE DEC HL DEC DE LDDR h1b2c: LD HL,(2DB3H) POP BC AND A SBC HL,BC LD (2DB3H),HL LD HL,(h1cd2) AND A SBC HL,BC LD (h1cd2),HL RET h1b40: POP HL LD (2DAFH),HL LD (2DB1H),HL LD (2DB3H),HL LD (h1cd2),HL RET h1b4e: POP HL RET h1b50: LD HL,(2DB1H) LD DE,(2DAFH) AND A SBC HL,DE PUSH HL LD HL,(6) LD DE,(2DB5H) AND A SBC HL,DE POP DE AND A SBC HL,DE EX DE,HL RET h1b6b: CALL h480 CALL h1e8f h1b71: LD HL,0 LD (2DB7H),HL LD (2DB9H),HL LD HL,(h1cd5) LD (2DB5H),HL LD (2DB3H),HL LD (2DAFH),HL LD (2DB1H),HL EX DE,HL LD HL,(6) AND A SBC HL,DE SRL H RR L SRL H RR L LD D,H LD E,L ADD HL,DE ADD HL,DE JP h1a85 h1b9f: PUSH AF LD HL,0 CALL h1af1 LD DE,(2DB1H) LD HL,(6) AND A SBC HL,DE JR Z,h1bce EX DE,HL LD DE,(2DB3H) AND A SBC HL,DE LD B,H LD C,L LD DE,(6) LD HL,(2DB1H) LD (2DB1H),DE JR Z,h1bce DEC HL DEC DE LDDR INC DE h1bce: LD (h1cd2),DE LD A,1 LD (h1cd4),A POP AF RET h1bd9: LD HL,(2DB3H) LD (h1cd2),HL LD A,2 LD (h1cd4),A RET h1be5: CALL h1bed SUB A LD (h1cd4),A RET h1bed: LD HL,(2DB1H) LD DE,(h1cd2) AND A SBC HL,DE LD DE,(2DB3H) JR Z,h1c3d PUSH HL POP BC EX DE,HL LD DE,(2DAFH) AND A SBC HL,DE LD DE,(h1cd2) JR Z,h1c2b PUSH DE PUSH BC POP DE CALL h1e0a LD DE,(2DB3H) JR NC,h1c31 PUSH HL POP BC EX DE,HL POP DE LD (2DB3H),DE DEC DE DEC HL LDDR INC DE h1c26: LD (2DAFH),DE RET h1c2b: LD (2DB3H),DE JR h1c26 h1c31: POP HL LD (h1cd2),DE LDIR h1c38: LD (2DB1H),DE RET h1c3d: LD (h1cd2),DE JR h1c38 h1c43: CALL h1a39 h1c46: LD HL,(2DB3H) LD DE,(h1cd2) CALL h1e0a JR NC,h1c43 PUSH HL POP DE INC HL JR h1ca7 h1c57: PUSH AF LD A,(h1cd4) AND A JR NZ,h1c46 CALL h1b50 CALL Z,h1a39 LD HL,(6) LD DE,(2DB1H) AND A SBC HL,DE JR Z,h1cb9 PUSH DE EX DE,HL LD DE,(2DB3H) SBC HL,DE JR Z,h1c96 PUSH HL PUSH DE LD DE,(2DAFH) LD HL,(2DB5H) SBC HL,DE POP HL JR Z,h1c94 AND A SBC HL,DE POP DE JR Z,h1cb8 CALL h1e0a JR C,h1cb8 PUSH DE h1c94: INC D POP BC h1c96: POP DE LD H,D LD L,E DEC HL INC DE LD (2DB1H),DE DEC DE JR Z,h1ca4 LDDR h1ca4: EX DE,HL INC HL INC DE h1ca7: POP AF PUSH AF LD (DE),A LD (2DB3H),HL CALL h173d LD HL,2DB7H CALL h19f1 POP AF RET h1cb8: POP HL h1cb9: LD HL,(2DB3H) LD DE,(2DAFH) AND A SBC HL,DE LD B,H LD C,L LD H,D LD L,E DEC DE LD (2DAFH),DE JR Z,h1ca7 LDIR JR h1ca7 h1cd2: db 0,0 h1cd4: db 0 h1cd5: dw 3627h h1cd7: LD D,A SRL A SRL A SRL A LD HL,ones CALL h1df5 LD A,D AND 7 CALL h16aa LD A,D RET h1cec: INC A CALL h1cd7 RET C LD HL,h1d9 CP (HL) JR C,h1cec RET h1cf8: LD HL,tabmsg CALL h1308 LD A,(h1d9) LD B,A LD E,'1' LD A,' ' LD C,lf h1d08: DEC C JR NZ,h1d0f LD A,E INC E LD C,lf h1d0f: CALL h3da LD A,' ' DJNZ h1d08 LD A,(h1d9) LD B,A LD A,'1' h1d1c: CP ':' JR C,h1d22 LD A,'0' h1d22: CALL h3da INC A DJNZ h1d1c LD DE,2E26H PUSH DE LD HL,ones LD BC,0AH LDIR LD A,(h1d9) LD B,A POP HL LD C,1 h1d3b: DEC C JR NZ,h1d42 LD C,8 LD E,(HL) INC HL h1d42: RR E LD A,' ' JR NC,h1d4a LD A,'T' h1d4a: CALL h3da DJNZ h1d3b LD DE,(h4cd) INC D DEC E CALL h22c LD A,(h1d9) LD B,A LD HL,2E26H LD E,(HL) RRC E DEC B LD C,7 h1d65: CALL h432 CP 84H JR Z,h1d9c CP cr JR Z,h1d9f CP ' ' JR Z,h1d82 AND 5FH CP 'T' JR Z,h1d81 PUSH HL CALL h131a POP HL JR h1d65 h1d81: SCF h1d82: RR E CALL h3da DEC C JR NZ,h1d8f LD (HL),E INC HL LD C,8 LD E,(HL) h1d8f: DJNZ h1d65 h1d91: LD HL,2E26H LD DE,ones LD BC,0AH LDIR h1d9c: JP h132b h1d9f: LD B,C LD A,E h1da1: RRCA DJNZ h1da1 LD (HL),A JR h1d91 tabmsg: db 80h,'Set Tabs' db ': ',cr,lf+msbon db lf+msbon,lf+msbon db lf+msbon,0 ones: db 1,1,1,1,1,1,1,1,1,1 h1dd3: LD A,(DE) CP (HL) RET NZ INC HL INC DE DJNZ h1dd3 RET h1ddb: PUSH AF CALL h19b7 h1ddf: POP AF PUSH AF LD HL,2DAEH CP (HL) JR Z,h1df3 JR C,h1df3 CALL h18b6 JR Z,h1df3 JR NC,h1ddf CALL h1911 h1df3: POP AF RET h1df5: ADD A,L LD L,A RET NC INC H RET h1dfa: CP '0' CCF RET NC CP ':' RET h1e01: CP 'a' RET C CP '{' RET NC AND 5FH RET h1e0a: PUSH HL AND A SBC HL,DE POP HL RET h1e10: CALL h462 RET Z LD HL,(h14af) LD A,H OR L RET Z DEC HL LD (h14af),HL RET h1e1f: SUB A LD (h1e5f),A LD DE,10000 CALL h1e3e LD DE,1000 CALL h1e3e LD DE,100 CALL h1e3e LD DE,10 CALL h1e3e LD DE,1 h1e3e: LD A,'0' h1e40: INC A SBC HL,DE JR NC,h1e40 ADD HL,DE DEC A LD (BC),A LD A,(h1e5f) AND A JR NZ,h1e5d LD A,(BC) CP '0' JR NZ,h1e58 LD A,' ' LD (BC),A INC BC RET h1e58: LD A,1 LD (h1e5f),A h1e5d: INC BC RET h1e5f: db 0 h1e60: LD HL,(h1cd2) LD DE,(2DB1H) AND A SBC HL,DE RET C LD A,(h244c) BIT 0,A RET NZ BIT 2,A JR NZ,h1e77 INC A RET h1e77: SUB A RET h1e79: RR D JR C,h1ea3 LD HL,h244c SET 4,(HL) CP 3 JR NC,h1e8b LD A,C CP 12H JR C,h1ea3 h1e8b: SET 6,(HL) JR h1ea3 h1e8f: LD C,8DH ;get CDOS vers. CALL bdos LD D,A LD A,B CP 1 JP C,h2367 JR NZ,h1e79 LD A,C CP 7 JP C,h2367 h1ea3: LD DE,5CH CALL h1fa9 JP Z,h236c LD HL,5CH LD DE,2DBFH CALL h1fe7 LD C,0FH ;open disk file CALL bdos CP 0FFH CALL Z,h1f18 LD HL,6DH LD A,(HL) CP ' ' JR Z,h1ed1 LD DE,5DH LD B,0BH CALL h1dd3 JR NZ,h1f27 h1ed1: LD HL,5CH LD DE,2DE0H CALL h1fe7 LD HL,doldol1 LD DE,2DE9H LD BC,3 LDIR LD A,(6CH) AND A JR Z,h1ef3 LD (2DE0H),A LD HL,h244c SET 7,(HL) h1ef3: LD C,19H ;get current disk CALL bdos LD (h2449),A LD HL,2DE0H LD DE,2E01H PUSH DE CALL h1fe7 LD HL,doldolz LD DE,2E0AH LD BC,3 LDIR SUB A LD (2E22H),A POP DE JP h1ffe h1f18: LD HL,hex82 CALL h13ef CALL h3ba LD HL,h244c SET 2,(HL) RET h1f27: LD HL,6CH LD DE,2DE0H CALL h1fe7 LD HL,h244c SET 3,(HL) JR h1ef3 doldol1: db '$$1' doldolz: db '$$0' hex82: db 82h,82h,82h,82h,82h db 82h,82h,82h db 'new file',0 h1f4e: CALL h1f6e RET Z LD A,(h244c) BIT 4,A JR Z,h1f64 LD C,98H ;read current record CALL bdos h1f5e: AND A JP NZ,h2371 INC A RET h1f64: LD C,14H ;read next rec. CALL bdos DEC (IX+20H) JR h1f5e h1f6e: PUSH DE POP IX LD A,(IX+20H) DEC (IX+20H) AND A RET NZ LD (IX+20H),A LD A,(IX+0CH) AND A RET Z LD C,10H ;close disk file CALL bdos LD A,(h244c) BIT 6,A JR Z,h1f92 LD C,9EH ;delete extents CALL bdos h1f92: DEC (IX+0CH) LD C,0FH ;open disk file CALL bdos CP 0FFH JP Z,h2371 LD A,(IX+0FH) DEC A LD (IX+20H),A SUB A INC A RET h1fa9: PUSH HL PUSH DE PUSH BC LD HL,1 ADD HL,DE LD A,(HL) CP ' ' JR Z,h1fd8 LD HL,4 ADD HL,DE LD A,(HL) CP ':' JR Z,h1fd8 LD C,0FFH LD HL,9 ADD HL,DE LD DE,cmnfts LD A,(HL) CP '$' JR Z,h1fd8 h1fcc: PUSH HL LD B,3 h1fcf: LD A,(DE) INC DE CPI JR NZ,h1fdd DJNZ h1fcf POP HL h1fd8: POP BC POP DE POP HL RET h1fdc: INC DE h1fdd: DJNZ h1fdc POP HL LD A,(DE) AND A JR NZ,h1fcc INC A JR h1fd8 h1fe7: PUSH DE LD BC,0FH LDIR POP DE RET h1fef: PUSH DE LD DE,80H LD C,1AH ;set disk buffer CALL bdos POP DE LD C,13H ;delete file JP bdos h1ffe: CALL h1fef LD C,16H ;create file CALL bdos LD C,0FH ;open disk file CALL bdos CP 0FFH RET h200e: LD HL,h1882 CALL h1886 LD HL,(2DB1H) LD B,80H LD A,1AH h201b: LD (HL),A INC HL DJNZ h201b LD HL,(2DB1H) h2022: CALL h2136 LD DE,(2DAFH) CALL h1e0a JR NC,h2022 LD A,(2E22H) AND A RET Z LD HL,2DECH LD (HL),A RET h2038: LD HL,2DE0H LD A,(h244c) BIT 3,A JR NZ,h204a BIT 7,A LD A,(HL) LD HL,2DBFH JR NZ,h204b h204a: LD A,(HL) h204b: AND 7 JR Z,h2059 ADD A,40H CALL h3da LD A,':' CALL h3da h2059: LD BC,820H h205c: INC HL LD A,(HL) CP C CALL NZ,h3da DJNZ h205c INC HL LD A,(HL) CP C RET Z LD A,'.' CALL h3da LD B,3 h206f: LD A,(HL) INC HL CP C RET Z CALL h3da DJNZ h206f RET h2079: PUSH DE LD HL,h244c BIT 0,(HL) JR Z,h20a4 LD DE,(2DB1H) LD C,1AH ;set disk buffer CALL bdos LD DE,2E01H CALL h1f4e JR Z,h209c LD HL,(2DB1H) LD DE,80H ADD HL,DE EX DE,HL JR h20d3 h209c: CALL h1ffe LD HL,h244c RES 0,(HL) h20a4: BIT 2,(HL) JR NZ,h20e4 LD DE,(2DB1H) LD C,1AH ;set disk buffer CALL bdos LD DE,2DBFH LD C,14H ;read next rec. CALL bdos AND A JR NZ,h20e2 LD HL,(2DB1H) LD D,H LD E,L LD B,80H h20c3: LD A,(HL) CP 1AH JR Z,h20d9 INC HL CP lf JR Z,h20d1 AND 7FH LD (DE),A INC DE h20d1: DJNZ h20c3 h20d3: LD (2DB1H),DE POP DE RET h20d9: LD HL,h244c SET 2,(HL) RL B JR h20d3 h20e2: SET 2,(HL) h20e4: SCF POP DE RET h20e7: LD A,(h244c) BIT 1,A JR Z,h2134 PUSH HL LD HL,(2DAFH) LD BC,80H AND A SBC HL,BC EX DE,HL LD C,1AH ;set disk buffer CALL bdos LD DE,2DE0H CALL h1f4e JR Z,h212b LD HL,(2DAFH) LD D,H LD E,L LD B,80H h210d: DEC HL LD A,(HL) CP lf JR Z,h2115 DEC DE LD (DE),A h2115: DJNZ h210d LD (2DAFH),DE LD HL,h244c CP lf JR Z,h2127 RES 5,(HL) h2124: AND A POP HL RET h2127: SET 5,(HL) JR h2124 h212b: CALL h1fef LD HL,h244c RES 1,(HL) POP HL h2134: SCF RET h2136: PUSH HL LD HL,h244c BIT 1,(HL) JR NZ,h2152 SET 1,(HL) LD DE,2DE0H LD HL,2DECH LD A,(HL) LD (2E22H),A LD (HL),0 CALL h1ffe JP Z,h21e6 h2152: LD HL,(2DAFH) PUSH HL LD DE,80H LD C,1AH ;set disk buffer CALL bdos LD B,80H LD A,(h244c) BIT 5,A JR NZ,h2186 h2167: LD A,(HL) INC HL h2169: LD (DE),A INC DE CP cr JR Z,h218f DJNZ h2167 h2171: LD (2DAFH),HL LD DE,2DE0H LD C,15H ;create file CALL bdos POP DE POP HL AND A RET Z LD (2DAFH),DE JR h21e6 h2186: RES 5,A LD (h244c),A h218b: LD A,lf JR h2169 h218f: DEC B JR NZ,h218b PUSH HL LD HL,h244c SET 5,(HL) POP HL JR h2171 h219b: PUSH HL LD HL,h244c SET 0,(HL) LD HL,(2DB1H) PUSH HL LD DE,80H AND A SBC HL,DE LD (2DB1H),HL EX DE,HL LD C,1AH ;set disk buffer CALL bdos LD DE,2E01H LD C,15H ;write next rec. CALL bdos POP DE POP HL AND A RET Z LD (2DB1H),DE LD DE,80H LD C,1AH ;set disk buffer CALL bdos LD A,(h244c) BIT 1,A JR Z,h21e6 PUSH DE POP HL LD A,1AH LD (HL),A INC DE LD BC,7FH LDIR LD DE,2DE0H LD C,15H ;write next rec. CALL bdos h21e6: LD HL,dskful CALL h13ef LD DE,2DE0H LD C,10H ;close disk file CALL bdos LD A,(DE) LD HL,h244c BIT 0,(HL) JR NZ,h21ff LD A,(2DBFH) h21ff: AND A JR NZ,h2206 LD A,(h2449) INC A h2206: DEC A PUSH AF ADD A,'A' CALL h3da LD HL,clprn CALL h13ef h2213: CALL h453 LD HL,alphb CALL h14b1 JR Z,h2223 POP DE CP D JR NZ,h2228 PUSH DE h2223: CALL h131a JR h2213 h2228: LD E,A ADD A,'A' CALL h3da LD A,E INC A LD HL,2DE0H LD (HL),A LD C,0EH ;select current disk dr. CALL bdos PUSH DE LD C,8DH ;get CDOS vers. number CALL bdos LD A,B CP 2 JR NZ,h2247 LD A,C CP 'I' h2247: LD C,0CH JR C,h224d LD C,0A2H h224d: POP DE CALL bdos ;???? PUSH HL POP IX SUB A LD (IX+0CH),A LD A,(h2449) LD E,A LD C,0EH ;select current disk dr. CALL bdos INC E LD A,(2DBFH) AND A JR NZ,h2269 LD A,E h2269: CP (HL) LD HL,h244c JR NZ,h2271 SET 2,(HL) h2271: RES 1,(HL) JR h22ac h2275: CALL h22cb LD HL,2DF0H LD DE,2DBFH PUSH DE LD BC,10H LDIR POP DE LD C,0FH ;open disk file CALL bdos INC A JR Z,h22c0 LD (h244b),A EX DE,HL LD DE,2DE0H LD BC,9 LDIR LD HL,doldol1 LD C,3 LDIR SUB A LD (2DAEH),A LD HL,h244c LD A,(HL) AND 0D0H LD (HL),A RET h22ac: CALL h22cb JR h22c0 h22b1: LD A,(h244c) BIT 1,A JR Z,h22c0 LD DE,2DE0H LD C,13H ;delete file CALL bdos h22c0: LD DE,2E01H LD C,13H ;delete file CALL bdos JP 0 h22cb: CALL h200e LD DE,2DE0H LD C,10H ;close file CALL bdos LD HL,(2DECH) LD H,0 ADD HL,HL ADD HL,HL ADD HL,HL ADD HL,HL LD A,(2E00H) ADD A,7 SRL A SRL A SRL A ADD A,L LD L,A CALL h1451 LD HL,kwrit CALL h13ef CALL h2038 CALL h28b LD A,(h244c) BIT 3,A RET NZ LD HL,2DE0H LD DE,2DF0H PUSH DE LD BC,9 LDIR LD HL,2DC8H LD C,3 LDIR SUB A LD (DE),A POP DE LD C,11H ;search for file CALL bdos INC A JR Z,h2358 LD A,(DE) CP 0E5H LD A,(2DE0H) LD (DE),A JR Z,h2358 LD DE,2DBFH LD (DE),A LD A,(h244b) AND A JR Z,h2337 CALL h1fef JR h2358 h2337: EX DE,HL LD DE,2DCFH PUSH HL PUSH DE LD BC,9 LDIR LD HL,cmnfts LD C,3 LDIR POP DE LD C,13H ;delete file CALL bdos POP DE LD C,17H ;rename file CALL bdos AND A JR Z,h2362 h2358: LD DE,2DE0H LD C,17H ;rename file CALL bdos AND A RET NZ h2362: LD HL,caret JR h2374 h2367: LD HL,incmpt JR h2374 h236c: LD HL,ilegf JR h2374 h2371: LD HL,frder h2374: CALL h13ef JP cpm kwrit: db 'K written to ',0 caret: db cr,85h,lf+msbon db 'rename error',85h db cr,lf+msbon,0 incmpt: db lf+msbon,'incompat' db 'ible version of ' db 'CDOS',cr,lf+msbon,0 ilegf: db lf+msbon,'illegal' db ' file name',cr db lf+msbon,0 frder: db cr,85h,lf+msbon db 'file read error',85h db cr,lf+msbon,0 dskful: db 80h,'disk overflow' db cr,lf+msbon,lf+msbon db 'insert blank disket' db 'te (not in unit ',0 clprn: db ')',cr,lf+msbon,lf+msbon db 'unit ? ',0 alphb: db 'ABCDEFGH',0 cmnfts db 'BAKCOMOVROVLRELSAV$$' db '0$$1' h2448: db 0 h2449: db 0 h244a: db 0 h244b: db 0 h244c: db 0 h244d: LD BC,4 ADD HL,BC EX DE,HL ADD HL,BC EX DE,HL LD B,C RET h2456: CALL h244d h2459: DEC DE DEC HL LD A,(DE) ADC A,(HL) LD (HL),A DJNZ h2459 RET h2461: CALL h244d EX DE,HL h2465: DEC DE DEC HL LD A,(DE) SBC A,(HL) LD (DE),A DJNZ h2465 EX DE,HL RET h246e: CALL h1760 LD DE,2DB7H CALL h18a5 LD DE,h2976 CALL NC,h2456 RET h247e: LD A,1 LD HL,mvmsg JR h2489 h2485: SUB A LD HL,cpmsg h2489: LD (2E23H),A CALL h17c0 RET Z PUSH HL PUSH DE CALL h1718 POP HL POP DE CALL h114e PUSH AF JR C,h24af LD A,(2E23H) BIT 0,A JR Z,h24af PUSH HL CALL h1bd9 POP HL CALL h1886 CALL h1be5 h24af: CALL h171c POP AF CALL NC,h1049 h24b6: CALL h196b CALL h7a9 JP h1323 cpmsg: db 'Copy: ',0 mvmsg: db 'Move: ',0 h24cd: CALL h1a39 CALL h1b9f LD HL,(h2978) LD B,L LD C,H LD HL,2E26H LD DE,(2DB3H) LDIR LD (2DB3H),DE CALL h1be5 LD IY,h246e CALL h1724 LD HL,2DB7H LD DE,h2976 CALL h2456 LD HL,0 LD (h2978),HL RET h24ff: SUB A LD (2E23H),A LD (2E24H),A h2506: LD HL,beaut CALL h179d LD A,(2E24H) AND A JR Z,h2527 h2512: LD DE,(h4cd) PUSH DE LD DE,900H CALL h22c LD HL,jstfy CALL h13ef POP DE CALL h22c h2527: CALL h432 LD HL,mjmsg LD D,A CALL h14b1 JR Z,h2541 AND A JR Z,h253b LD (2E24H),A JR h2512 h253b: CALL h26c0 RET Z JR h2506 h2541: LD A,D CALL h17eb JR C,h2527 RET Z CALL h17c4 RET Z PUSH DE EX DE,HL LD HL,2DB7H EXX POP HL CALL h1886 LD HL,h1d9 LD A,(HL) PUSH AF LD A,(h26bf) INC A LD (HL),A h2560: LD A,(h26bd) JR h2568 h2565: LD A,(h26be) h2568: DEC A LD (h2975),A SUB A LD (2E23H),A LD (2E25H),A CALL h2805 JR Z,h25f7 LD A,(2E24H) AND A JP NZ,h2645 h257f: CALL h294d JR Z,h25f7 JR C,h2593 CALL h2957 JR NZ,h257f LD (2E23H),A CALL h1a09 JR h257f h2593: CALL h2957 JR Z,h25a5 CP cr JR Z,h25c2 LD A,(2E23H) AND A JR Z,h25aa CALL h1a1b h25a5: CALL h291e JR h2565 h25aa: CALL h294d JR Z,h25f7 CALL h2957 JR Z,h25a5 CP cr JR NZ,h25aa CALL h25fe JR Z,h25c7 CALL h1911 JR h2565 h25c2: CALL h25fe JR NZ,h25d1 h25c7: CALL h25fe JR Z,h25c7 CALL h1911 JR h2560 h25d1: CALL h1911 CALL h2913 JR C,h25a5 LD (2E23H),A CALL h1a09 h25df: CALL h294d JR Z,h25ec CALL h2957 JR Z,h25df CALL h1911 h25ec: CALL h1bd9 CALL h1a1b CALL h1be5 JR h257f h25f7: POP AF LD (h1d9),A JP h24b6 h25fe: CALL h294d POP HL JR Z,h25f7 CP cr JP (HL) h2607: LD A,(HL) DEC A JR Z,h265c JR h25a5 h260d: LD HL,2E23H CP ' ' JR Z,h2607 LD A,(HL) AND A JR Z,h25aa DEC A JR Z,h266d CALL h1a1b CALL h291e CALL h285b JP h2565 h2627: CP 9 JR Z,h2637 CP cr JR NZ,h260d CALL h25fe JR Z,h25c7 CALL h1911 h2637: CALL h2913 LD HL,2E23H JR C,h2607 LD B,(HL) DEC B JR Z,h265c JR h2651 h2645: CALL h294d JR Z,h25f7 JR C,h2627 CALL h2957 JR NZ,h2645 h2651: CALL h1a09 LD HL,2E23H LD (HL),1 CALL h28d0 h265c: CP 9 CALL Z,h2913 CALL h294d JR Z,h25f7 JR C,h2627 CALL h2957 JR Z,h265c h266d: CALL h1911 CALL h1bd9 CALL h1a1b LD A,(2E25H) AND A CALL NZ,h18b6 CALL C,h1911 CALL h1be5 SUB A LD (2E25H),A LD HL,2E23H LD (HL),2 JR h2645 beaut: db 'Beautify: [Just' db 'ify] [Margin] ',0 jstfy: db 88h,' Justify ' db 89h,':',0 mjmsg: db 'MJ',0 h26bd: db 0fh h26be: db 0ah h26bf: db 'F' h26c0: LD A,(h26bd) LD HL,h275a CALL h27ec LD A,(h26be) LD HL,h2764 CALL h27ec LD A,(h26bf) LD HL,h276f CALL h27ec LD HL,bparmsg CALL h1308 h26e1: CALL h432 CP 84H RET Z CP cr JR Z,h2744 AND 5FH LD HL,h26bd LD DE,1500H CP 50H JR Z,h2710 LD HL,h26be LD DE,1F00H CP 'L' JR Z,h2710 LD HL,h26bf LD DE,2A00H CP 'R' JR Z,h2710 CALL h131a JR h26e1 h2710: PUSH HL CALL h22c LD HL,bpsubs CALL h13ef CALL h278e POP HL JR C,h273e RET Z LD B,(HL) LD (HL),A LD A,(h26bf) CP 85H JR NC,h273d LD C,A LD A,(h26bd) CP C JR NC,h273d AND A JR Z,h273d LD A,(h26be) CP C JR NC,h273d AND A JR NZ,h26c0 h273d: LD (HL),B h273e: CALL h131a JP h26c0 h2744: AND A RET bparmsg: db 'Beautify: Paragraph(' h275a: db 'xxx) Left(' h2764: db 'xxx) Right(' h276f: db 'xxx) ',0 bpsubs: db ' ',82h,82h,82h,0 h278e: LD BC,0 CALL h27b0 RET C CP 84H RET Z AND A JR Z,h27ac CALL h27b0 RET C CP 84H RET Z AND A JR Z,h27ac CALL h27b0 RET C CP 84H RET Z h27ac: SUB A INC A LD A,C RET h27b0: CALL h432 CP 84H RET Z CP ' ' JR NZ,h27c4 CALL h3da SUB A BIT 0,B JR Z,h27e3 SUB A RET h27c4: CALL h1dfa JR NC,h27e6 LD B,0FFH LD (h27eb),A CALL h3da LD A,C ADD A,A RET C ADD A,A RET C ADD A,C RET C ADD A,A RET C LD C,A LD A,(h27eb) SUB '0' ADD A,C RET C LD C,A h27e3: LD A,1 RET h27e6: CALL h131a JR h27b0 h27eb: db 0 h27ec: PUSH HL LD L,A LD H,0 LD BC,h2800 CALL h1e1f POP DE LD HL,h2802 LD BC,3 LDIR RET h2800: db ' ' h2802: db ' ' h2805: LD A,(h2975) AND A JR Z,h2814 LD HL,2DAEH CP (HL) LD A,cr CALL C,h292c h2814: CALL h1a09 h2817: CALL h294d RET Z CP cr JR Z,h2845 h281f: CALL h2957 JR Z,h2817 CALL h1911 CALL h1b9f CALL h1a1b LD HL,2DAEH JR h2838 h2832: CALL h2903 CALL h292c h2838: LD A,(h2975) CP (HL) JR C,h2840 JR NZ,h2832 h2840: CALL h1be5 INC A RET h2845: CALL h294d RET Z CP cr JR NZ,h281f CALL h1911 CALL h1911 CALL h1bd9 CALL h1a1b JR h2840 h285b: CALL h1911 LD A,(h26bf) LD HL,2DAEH SUB (HL) JR Z,h28c8 EX AF,AF' h2868: CALL h2938 JR Z,h28c8 CALL h2957 JR NZ,h2868 LD HL,h28cf LD A,(HL) CPL LD (HL),A AND A JR NZ,h289d h287b: CALL h28c8 CALL h1911 h2881: CALL h2938 JR Z,h287b CALL h2957 JR NZ,h2881 CALL h292a EX AF,AF' DEC A JR Z,h28c8 EX AF,AF' h2893: CALL h1911 CALL h2957 JR Z,h2893 JR h2881 h289d: CALL h2938 JR NZ,h289d h28a2: CALL h294d JR Z,h289d JR C,h28c3 CALL h2957 JR NZ,h28a2 h28ae: CALL h18b6 CALL h2957 JR Z,h28ae CALL h1911 CALL h292a EX AF,AF' DEC A JR Z,h28c8 EX AF,AF' JR h28a2 h28c3: CALL h1911 JR h289d h28c8: CALL h18b6 RET Z JR NC,h28c8 RET h28cf: db 0 h28d0: CP 9 CALL Z,h2913 CALL h1911 h28d8: CALL h1911 JR Z,h2900 CALL h295d JR Z,h28d8 CALL h296c JR NZ,h2900 LD (2E25H),A CALL h1a1b CALL h18b6 RET Z CP 9 CALL Z,h2913 CP ' ' JR Z,h2900 CALL h1911 CALL h292a h2900: JP h1a1b h2903: LD A,(HL) ADD A,8 AND 0F8H LD B,A LD A,(h2975) CP B LD A,9 RET NC LD A,' ' RET h2913: CALL h1911 LD HL,(2DB3H) LD (HL),' ' JP h18b6 h291e: LD HL,(2DB3H) DEC HL LD (HL),cr LD HL,2DAEH LD (HL),0 RET h292a: LD A,' ' h292c: CALL h1c57 LD HL,2DAEH LD C,(HL) CALL h18e8 LD (HL),C RET h2938: CALL h1911 RET Z JR C,h2948 LD B,A LD A,(h2975) LD HL,2DAEH CP (HL) LD A,B RET C h2948: CALL NZ,h18b6 SUB A RET h294d: EXX CALL h18a5 EXX JP C,h18b6 SUB A RET h2957: CP 9 RET Z CP ' ' RET h295d: CP '"' RET Z CP squote RET Z CP '}' RET Z CP ']' RET Z CP ')' RET h296c: CP '.' RET Z CP '?' RET Z CP '!' RET h2975 db lf h2976: db 0,0 h2978: db 0,0 h297a: LD DE,80H LD C,1AH ;set disk buffer CALL bdos SUB A LD (3626H),A CALL h25d LD HL,h2bc7 LD (h2c79+1),HL LD HL,nammsg CALL h1308 CALL h1183 JP Z,h2a18 CALL h11c5 JR NZ,h29ab LD HL,1 ADD HL,DE LD B,0BH h29a6: LD (HL),'?' INC HL DJNZ h29a6 h29ab: LD C,11H ;search for file CALL bdos CP 0FFH JR Z,h2a1b LD (nonams),DE h29b8: LD DE,(nonams) CALL h2acb JR Z,h2a06 LD (h2a23),A LD DE,2E26H LD BC,0BH CALL h2bda LD A,(h2a23) CALL h2b11 LD DE,(nonams) LD A,(3626H) AND A JR NZ,h2a06 LD C,12H ;find next CALL bdos CP 0FFH JR Z,h2a06 PUSH HL LD HL,nm2msg CALL h1308 h29ed: CALL h453 POP HL CP esc JR Z,h2a18 CP cr JR Z,h29ff CALL h131a PUSH HL JR h29ed h29ff: PUSH HL CALL h25d POP HL JR h29b8 h2a06: LD HL,nm1msg CALL h1308 h2a0c: CALL h453 CP esc JR Z,h2a18 CALL h131a JR h2a0c h2a18: JP h132b h2a1b: LD HL,nonfnd CALL h13ef JR h2a06 h2a23: db 0 nonams: db 0,0 nonfnd: db 8ah,8ah db ' No names' db ' found ',0 nammsg: db 'Names: ',0 nm1msg: db 'Names: Press ES' db 'CAPE to continue' db ' editing ',0 nm2msg: db 'Names: Press ESC' db 'APE to continue' db ' editing, RETURN' db ' for more names ',0 h2acb: LD BC,2E26H LD (h2b0f),BC LD B,'P' JR h2add h2ad6: CALL bdos CP 0FFH JR Z,h2b08 h2add: EX DE,HL CALL h1fa9 EX DE,HL JR Z,h2af7 PUSH DE PUSH BC LD DE,(h2b0f) LD BC,0BH INC HL LDIR LD (h2b0f),DE POP BC POP DE DEC B h2af7: LD C,12H LD A,B AND A JR NZ,h2ad6 h2afd: LD HL,(h2b0f) LD DE,0FFF5H ADD HL,DE LD A,'P' SUB B RET h2b08: LD A,0FFH LD (3626H),A JR h2afd h2b0f: dw 0 h2b11: LD (h2bab),A RRA RRA AND 3FH LD E,A LD D,0 LD HL,0BH LD C,89H ;int. multiply CALL bdos LD A,(h2bab) AND 3 LD HL,2E26H LD BC,0BH LD (h2ba3),HL ADD HL,DE AND A JR Z,h2b37 DEC A ADD HL,BC h2b37: LD (h2ba5),HL ADD HL,DE AND A JR Z,h2b40 DEC A ADD HL,BC h2b40: LD (h2ba7),HL ADD HL,DE AND A JR Z,h2b49 DEC A ADD HL,BC h2b49: LD (h2ba9),HL CALL h2bbd CALL h2bbd CALL h2bbd h2b55: LD HL,h2ba3 CALL h2b7d JR Z,h2b73 LD HL,h2ba5 CALL h2b7d JR Z,h2b73 LD HL,h2ba7 CALL h2b7d JR Z,h2b73 LD HL,h2ba9 CALL h2b7d h2b73: CALL h2bbd LD A,(h2bab) AND A JR NZ,h2b55 RET h2b7d: CALL h2bac LD B,8 LD E,(HL) INC HL LD D,(HL) CALL h2b9b CALL h2bb5 LD B,3 CALL h2b9b LD (HL),D DEC HL LD (HL),E LD A,(h2bab) DEC A LD (h2bab),A RET h2b9b: LD A,(DE) CALL h3da INC DE DJNZ h2b9b RET h2ba3: db 0,0 h2ba5: db 0,0 h2ba7: db 0,0 h2ba9: db 0,0 h2bab: db 0 h2bac: CALL h2bb8 CALL h2bb8 CALL h2bb8 h2bb5: CALL h2bb8 h2bb8: LD A,' ' JP h3da h2bbd: LD A,cr CALL h3da LD A,lf+msbon JP h3da h2bc7: PUSH HL PUSH DE PUSH BC EX DE,HL h2bcb: LD A,(DE) CP (HL) JR NZ,h2bd6 INC DE INC HL DEC BC LD A,B OR C JR NZ,h2bcb h2bd6: POP BC POP DE POP HL RET h2bda: LD (h2c5b),HL LD (h2c5d),DE CALL h2c73 RET Z RET C ADD HL,BC LD (h2c61),HL LD H,D LD L,E h2bec: ADD HL,BC CALL h2c79 JR C,h2bec LD (h2c5f),HL LD HL,(h2c61) h2bf8: AND A SBC HL,BC CALL h2c79 JR Z,h2c02 JR NC,h2bf8 h2c02: LD (h2c61),HL PUSH DE LD DE,(h2c5f) CALL h2c73 JR C,h2c16 CALL h2c63 EX DE,HL POP DE JR h2bec h2c16: POP DE CALL h2c63 AND A SBC HL,DE PUSH HL LD DE,(h2c61) LD HL,(h2c5b) AND A SBC HL,DE POP DE AND A SBC HL,DE JR NC,h2c41 LD HL,(h2c5d) PUSH HL LD HL,(h2c61) AND A SBC HL,BC PUSH HL ADD HL,BC ADD HL,BC EX DE,HL LD HL,(h2c5b) JR h2c53 h2c41: LD HL,(h2c61) ADD HL,BC PUSH HL LD HL,(h2c5b) PUSH HL LD DE,(h2c5d) LD HL,(h2c61) SBC HL,BC h2c53: CALL h2bda POP HL POP DE JP h2bda h2c5b: db 0,0 h2c5d: db 0,0 h2c5f: db 0,0 h2c61: db 0,0 h2c63: PUSH BC PUSH DE PUSH HL h2c66: LD A,(DE) LDI DEC HL LD (HL),A INC HL JP PE,h2c66 POP HL POP DE POP BC RET h2c73: PUSH HL AND A SBC HL,DE POP HL RET h2c79: JP 0 h2c7c: db 1ah,1ah,1ah,1ah db 0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0 db 0,0,0,0,0,0,0,0 end