ͥ$}!+ĄA60ZCP32HEX-A60ZCPR2INS?ZCPRBT ASMZCPRBT COMZ!)h?!9"8!9Ûo!\= \7?? п~#~+:n~n@##v7%:8ėoo$[:'o:8Đeo#~å$ͱ,'*9*9Eo0ͷ0l!6$ͷ*lio!:o$]:0n ı,':8*o$.>  n~n#.:*;cold boot for Apple ][ with CPM56 FALSE EQU 0 TRUE EQU NOT FALSE apcout equ 0FB4Dh apcin equ 0FB1Ah apconst equ 0FB10h ;changer equ 0BBBBh ndir EQU TRUE iobase equ 0f780h ndbase equ 0f680h ;W McGee 15 Feb 1983 ;Version 1W1 maclib zcprhdr ;ZCPR2 is set up with a command line to execute this file on cold boot ;and by patching the ZCPR2 code to point to the command line ;The purpose of this code is to initialize the buffers needed for ZCPR2 ;in the Apple ][ screen area. Thus, this will not work with the ;40-column screen!!! $-macro @GENDD MACRO ?DD IF (?DD GT 7FH) AND (?DD LT 0FF80H) DB 100H ELSE DB ?DD ENDIF ENDM jr MACRO ?N DB 18H @GENDD ?N-$-1 ENDM org 100h ;Initialize Multiple command line if multcmd ; lxi h,clbase ; shld changer lxi d,cmdset lxi h,clbase call mover endif ;Initialize named directory if ndir lxi d,ndvals lxi h,ndbase call mover endif ;Initialize Default Command Search Path lxi d,path lxi h,pathbase mvi b,9 call movlop ;go back ;initialize IOBYTE and redirectable I/O drivers lxi d,iodrivers lxi h,iobase call mover jmp 0000h ;mover arbitrary 119 bytes from de to hl mover: mvi b,119 movlop: ldax d mov m,a inx h inx d dcr b jnz movlop ret ; ;initial external path pathbase equ 40h path: db '$$' db '$',0 db 1,'$' db 1,0 db 0 ;initialize command line if multcmd buflen equ 119 cmdset: dw clbase+4 db buflen db 0 db 0 endif iodrivers: jr ioerror db 0 jr ioerror db 0 jr ioerror db 0 ret db 0,0 jmp APCONST jmp apcin jmp apcout jmp apcout jmp apcin mvi a,0ffh ora a ret ioerror: xra a ret if ndir ndvals: db 50 db 0 db 0 db 0 db 0 endif end :10D30000C370D3C36CD3065A43505242540004F541 :10D3100077434F4D012424242020202020535542C0 :02D3200000000B :10D3350016444952208AD74C49535444D85459501D :10D345004548D8474F202085D9455241201FD853FD :10D35500415645BAD852454E203DD947455420340B :10D36500DA4A554D5080D9AF3207D331B0F5C521D2 :10D3750006D31103F5010800EDB0210ED31100F518 :10D38500010300EDB0C1C5791F1F1F1FE60F3299BC :10D39500D6CD1AD5CDE2D432B3D3C179E60F3294C6 :10D3A500D6C4E7D4CD1FD5CDDBD41114D33E00B7F9 :10D3B500C401D532B3D32A00F57EFE032803B72076 :10D3C5003B31B0F5CD6AD43A94D6C641CD7BD43A3B :10D3D50099D6B72812FE0A3809D60AF53E31CD7B13 :10D3E500D4F1C630CD7BD42104F52200F53600E515 :10D3F500CD3BD5E17EFE3B28C8B728C531B0F57ECB :10D40500FE3B2004232200F522F5D97ECD30D577C9 :10D4150023B720F7CDA6D620231133D4D53E00B7A8 :10D42500C28AD9CD64D7C28AD97E23666FE9CD93E6 :10D43500D6CDA6D63A01F6FE20CABBD3CD6AD421F5 :10D4450000007EFE213806CD7BD42318F5CDC3D44C :10D45500BFCD93D6CD09D5C3C6D3CDC0D44E6F208D :10D4650046696CE5C93E0DCD7BD43E0A18080E0110 :10D47500CD0500C330D5D90E025FCD0500D9C9F55C :10D485003E00B72806F1D90E0518EEF1F5CD7BD48F :10D49500F1FE0AC0E52135D335201236163E00FED1 :10D4A50050280AC5CD09FAC1FE03CA33D4E1C91112 :10D4B50000F60E14C5CD0500C1B7C9CD6AD4E3CDBC :10D4C500C9D4E3C97E23B7C8F5E67FCD7BD4F1F88F :10D4D50018F20E1918091180000E1A18020E0DC344 :10D4E50005005F0E0E18F8AF3220F61100F60E0F8C :10D4F500CD05003CC90E1018F71100F60E1118F0F5 :10D505000E1218EC21B3D37EB7C836001114D30E12 :10D515001318CC3EFF5F0E2018C5CD18D5E60F8732 :10D525008787872194D6B6320400C9E67FFE61D885 :10D53500FE7BD0E65FC93AB3D3B728451114D3D5DE :10D54500CDF3D4D1283B3A23D33D3234D3CDB7D410 :10D55500202F1103F5218000017700EDB02122D3A2 :10D56500360023351114D3CDFAD428153E24CD7BAE :10D57500D42104F5CDC9D4CDA1D5C0CD09D5C3C617 :10D58500D3CD09D53EBECD7BD40E0A1102F5CD050E :10D59500002103F57E23CDE7D53600C9D9CD06FA9E :10D5A500B7C409FAFE13CC09FAD9FE03C91AB7C8DC :10D5B500FE21381BFE3DC8FE5FC8FE2EC8FE3AC8D8 :10D5C500FE2CC8FE3BC8FE3CC8FE3EC8FE3BC9AFAC :10D5D500C9ED5B00F51AB7C8FE3BC8CDB2D5C0137F :10D5E50018F3856FD024C9CDA6D6210BF6060B7E80 :10D5F5002BFE20200410F81804FE4828352101F6DA :10D605000100117EFE202822FE3A281E23D630FE78 :10D615000A3019577907381407381107380E813839 :10D625000B8138088238054F10D979C9C341D4CD4B :10D63500A6D62101F6110000060B7EFE20282DFE40 :10D64500482829D63038E5FE0A3806D607FE1030B8 :10D65500DB234F7A07070707E6F0577B070707071E :10D665005FE60FB2577BE6F0B15F10CEEB7DC921C7 :10D67500800081CDE7D57EC9AF3200F63E00B720E8 :10D68500043A94D63C3DCDE7D43E00C31AD53E00BE :10D69500CDE7D43E00C31AD5CDA6D6F5CD7DD6F1BE :10D6A500C92100F6AF3282D6773223D43A99D632E1 :10D6B5008FD6CDD6D5ED5345D4060B285ED5CDB244 :10D6C500D5FE413804FE513808FE30380AFE3A309E :10D6D5000613CDB2D518F2D1FE3A20293223D41A39 :10D6E500FE413811D640FE05D241D43282D6771399 :10D6F5001AFE3A280FE5EBCD05D6EBE1FE20D24127 :10D70500D4328FD613AF322ED70608CD31D70603C4 :10D715001AFE2E200613CD31D71803CD56D7060491 :10D72500AFCD58D7ED5300F53E00B7C9CDB2D528DA :10D735002023FE2A2007363FCD5DD718077713FE35 :10D745003FCC5DD710E6C34FD720CDB2D5C813184F :10D75500F93E20237710FCC9E5212ED734E1C921F4 :10D7650036D30E0979B7281B1101F606041ABE2017 :10D775000A132310F81AFE202004C92310FD2323C1 :10D785000D20E50CC9CD9DD62101F67EFE20CC17D6 :10D79500D8CDD6D50680280C0601FE412805FE53B6 :10D7A50020020513ED5300F5783215D81E00D5CDAE :10D7B500FED42006CD5FD4AFD1C9CD06D8281ED161 :10D7C5007B1CD5E6032005CD6AD41808CDC3D4202B :10D7D500207C20A0060178CD74D6CDF1D7CDA1D57A :10D7E5002805CD05D520D3D13EFFB7C90608CDFD07 :10D7F500D73E2ECD7BD406037E23CD7BD40520F8E2 :10D80500C93D0F0F0FE6604F3E0ACD74D6E680EE98 :10D8150000C9060B363F2310FBC9CD9DD60601CDA9 :10D82500ADD7C8CDC0D44F4B20746F2045726173FE :10D8350065BFCD73D4FE59C01100F6CD14D5C93ED0 :10D84500FF1801AF3286D4CD9DD6C241D4CDD6D5F1 :10D8550032A3D4280113ED5300F5CDECD4CA41D43D :10D86500CD6AD43E173235D301800079FE80380E5B :10D87500E5C5CDB4D4C1E120370E002180007EE698 :10D885007FFE1AC8FE0D280EFE0A280AFE09280D7D :10D89500CD84D4041812CD84D40600180B3E20CDB7 :10D8A50084D40478E60720F50C23CDA1D5C818BB90 :10D8B5003DC8C341D4CDECD56F2600E5CD0CD90EBE :10D8C50016CDF5D4E1283AAF3220F6CDD6D513FEE4 :10D8D5005328021B29ED5300F51100017CB52818CA :10D8E5002BE521800019E5CDDED41100F60E15CD0E :10D8F500B9D4D1E1200B18E41100F6CDFAD43C20BF :10D9050003CDE5DAC3DBD4CD9DD6C241D4CDFED45B :10D915001100F6C8D5CDC0D44572617365A021014B :10D92500F6CDF1D73E3FCD7BD4CD73D4D1FE59C2D0 :10D9350056D4D5CD14D5D1C9CD0CD93A82D6F52139 :10D9450000F61110F6011000EDB0CDD6D52826ED64 :10D955005300F5CDA6D6201DF1472182D67EB728E6 :10D9650003B8201170AF3200F61100F60E17CDF591 :10D97500D4C0CD5FD4C341D4C336D4CD34D6184733 :10D9850021000118423A01F6FE2020203A23D4B79F :10D99500C83A8FD6FE10D241D43299D6CD7DD63A2B :10D9A50082D6B728043D3294D6C31FD51109F61A7D :10D9B500FE20C241D42111D3010300EDB0210001A5 :10D9C500E53EFFCD40DAE12229DACDA6D62182D681 :10D9D500E57E3200F62110F6CDA9D6E17E3210F6AD :10D9E500AF3220F6115C002100F6012100EDB021D7 :10D9F50004F57EB7280BFE3B2807FE2028032318D5 :10DA0500F106001181007E12B7280BFE3B280504A4 :10DA1500231318F2AF122200F578328000CD6AD4B4 :10DA2500CDDBD4CD0001CDDBD4CD93D6C3BBD3CDD7 :10DA350034D6E5CDA6D6E1C241D4AF325BDA22C6F3 :10DA4500DA3E013215D8CD7DD6CDFED421F2DA20CD :10DA5500657EB720303E00B7CA41D4E5AF325BDA08 :10DA65002AF5D92B362022F5D92200F5217EDA11A7 :10DA750000F6010C00EDB0183700434D4452554EE9 :10DA85002020434F4DFE2420043A94D63C3282D6C2 :10DA95003E013215D8237E23E5E67FFE2420033A96 :10DAA50099D6328FD62FE68020033215D8CD7DD674 :10DAB500CDFED4E1289BE5CD06D8E12894CDECD464 :10DAC5002100013ED2BC3818E5EBCDDED41100F6BD :10DAD500CDB7D4E120061180001918E73DCA93D6C9 :10DAE500CDC0D446756CECCD93D6C3C6D324000106 :04DAF5002401000008 :0000000000  INSTALLATION OF ZCPR2 on APPLE ][ Version 1.0 W.F.McGee (613-828-9130) March 29, 1983 Version 1.1 " modified to avoid inconsistency with unmodified BIOS, corrected bugs. Version 1.2 " modified for new CPM60 Purpose t ai i th installatio o ZCPR o Appl ] persona microcomputer. 1. Customize ZCPRHDR.LIB I made the following equate choices CPRLOC EQU 0D300H BIOS EQU 0FA00H SUBON EQU TRUE DRVPREFIX EQU TRUE DRVPFATT EQU 1 USERON EQU TRUE DIRON EQU TRUE LTON EQU TRUE GOON EQU TRUE ERAON EQU TRUE SAVEON EQU TRUE RENON EQU TRUE GETON EQU TRUE JUMPON EQU TRUE INTPATH EQU TRUE IPATH MACRO db '$',0 db 'A'-'@','$' db 'A'-'@',0 db 0 ENDM ERAOK EQU TRUE ERAV EQU FALSE DUPRMPT EQU TRUE MULTCMD EQU TRUE CLBASE EQU 0F500H BUFLEN EQU 77H WERA EQU FALSE WREN EQU FALSE WLT EQU FALSE WGO EQU FALSE WSAVE EQU FALSE WGET EQU FALSE WJUMP EQU FALSE WDU EQU FALSE WHEEL EQU FALSE INTSTACK EQU FALSE STKBASE EQU 0F580H EXTFCB EQU TRUE FCBADR EQU 0F600H CMDRUN EQU TRUE NOTES Thi se o equate i usin th Appl ] tex pag t store the required ZCPR buffers. The allocation is as follows. F400-F477 lower case driver (APPATCH2.MAC) F500-F577 CLBASE F580-F5F7 STKBASE F600-F677 FCBADR F680-F6F7 NDBASE F780-F7F7 IOBASE 2. Patch the file ZCPR22.ASM as follows: after the line CMDLIN EQU CHRCNT+1 insert the following text: BUFLEN0 EQU 77H CHRCNT0 DB 6 CMDLIN0 DB 'ZCPRBT' DB 0 NXTCHR0 DW CLBASE+4 DB BUFLEN0 and then should be an ELSE. Further patch ZCPR22.ASM after the lines CPR1: IF MULTCMD XRA A STA CMDLIN0 ENDIF and after CPR: LXI SP,STACK insert the lines PUSH B LXI H,CHRCNT0 LXI D,CHRCNT LXI B,8 LDIR LXI H,NXTCHR0 LXI D,NXTCHR LXI B,3 LDIR POP B after which should appear IF NOT MULTCMD Finally, in the subroutine SCANF2 replace DJNZ SCANF with DJNZ SCANF JMP AROUND DB ' ' AROUND: SCANF3: The effect of this change will be to place a jump around location D74E which is modified by BIOS. 3. Assemble using MAC into the file A60ZCPR2.HEX 4. Patch this hex file into CPM60.COM using DDT as follows DDT CPM60.COM NEXT PC 2E00 0100 -H0F00,0D300 E200,3C00 -IA60ZCPR2.HEX -R3C00 -G0 A>SAVE 47 ZCPM60.COM 4 Th progra ZCPM60.COM wil rewrit th syste track o disk when it is run. 5 Assembl th fil ZCPRBT.AS int ZCPRBT.CO an plac i o th syste disk Thi initialize th system an i calle automatically when the disk is booted. 6 Th las stag i t ru th progra GENIN an customiz th utilitie fo you ZCPR system fin tha th followin utilities are useful for the Apple CD COMPARE CRC DIFF DU4 LD LDIRZ LRUNZ MKCHECK MCOPY MENU MKDIR PATH PROTECT PWD RENAME SUB XDIR ZEX These also fill one Apple diskette (126k). =!)c!)4!@ +B!)ww#+$$$$wMM>ɯ2