extrn .begin,.chl,.swt extrn csave,cret,.move global pDPHMAP_,2 global pDPHVEC_,24 global pINFOLIS_,2 global pDPH_,2 global pDPB_,2 DSEG public pSYSCFG_ pSYSCFG_: DW -16384 CSEG global filespec_,32 global pBUFFER_,2 global szDrive_,32 global szTemp_,128 PUBLIC rdimage_ rdimage_: lxi d,.2 call csave LXI H,.1+0 PUSH H LXI H,10-.2 DAD SP MOV E,M INX H MOV D,M PUSH D CALL fopen_ POP D POP D XCHG LXI H,0-.2 DAD SP MOV M,E INX H MOV M,D LXI H,0-.2 DAD SP mov a,m inx h ora m JNZ .3 LXI H,0 RET .3: LXI H,0-.2 DAD SP MOV E,M INX H MOV D,M PUSH D LXI H,14-.2 DAD SP MOV E,M INX H MOV D,M PUSH D LXI H,1 PUSH H LXI H,16-.2 DAD SP MOV E,M INX H MOV D,M PUSH D CALL fread_ XCHG LXI H,8 DAD SP SPHL LXI H,2-.2 DAD SP MOV M,E INX H MOV M,D LXI H,0-.2 DAD SP MOV E,M INX H MOV D,M PUSH D CALL fclose_ POP D LXI H,2-.2 DAD SP MOV E,M INX H MOV D,M XCHG RET .2 EQU -4 .1: DB 114,0 PUBLIC strupr_ strupr_: lxi d,.5 call csave LXI H,0 XCHG LXI H,2-.5 DAD SP MOV M,E INX H MOV M,D JMP .7 .6: LXI H,2-.5 DAD SP PUSH H MOV A,M INX H MOV H,M MOV L,A INX H XCHG POP H MOV M,E INX H MOV M,D .7: LXI H,8-.5 DAD SP MOV E,M INX H MOV D,M PUSH D CALL strlen_ POP D PUSH H LXI H,4-.5 DAD SP MOV E,M INX H MOV D,M POP H CALL .lt JZ .8 LXI H,8-.5 DAD SP MOV E,M INX H MOV D,M LXI H,2-.5 DAD SP MOV A,M INX H MOV H,M MOV L,A DAD D MOV E,M MVI D,0 LXI H,97 CALL .ge JZ .9 LXI H,8-.5 DAD SP MOV E,M INX H MOV D,M LXI H,2-.5 DAD SP MOV A,M INX H MOV H,M MOV L,A DAD D MOV E,M MVI D,0 LXI H,122 CALL .le JZ .10 LXI H,8-.5 DAD SP MOV E,M INX H MOV D,M LXI H,2-.5 DAD SP MOV A,M INX H MOV H,M MOV L,A DAD D MOV E,M MVI D,0 LXI H,223 CALL .an PUSH H LXI H,10-.5 DAD SP MOV E,M INX H MOV D,M LXI H,4-.5 DAD SP MOV A,M INX H MOV H,M MOV L,A DAD D POP D MOV M,E .10: .9: JMP .6 .8: RET .5 EQU -2 PUBLIC sysgen_ sysgen_: lxi d,.11 call csave .12: LXI H,0 XCHG LXI H,18-.11 DAD SP MOV A,M INX H MOV H,M MOV L,A CALL .lt JZ .13 LXI H,14-.11 DAD SP MOV E,M INX H MOV D,M PUSH D LXI H,14-.11 DAD SP MOV E,M INX H MOV D,M PUSH D LXI H,14-.11 DAD SP MOV E,M INX H MOV D,M PUSH D LXI H,14-.11 DAD SP MOV E,M INX H MOV D,M PUSH D CALL wrsector_ XCHG LXI H,8 DAD SP SPHL LXI H,14-.11 DAD SP MOV E,M INX H MOV D,M PUSH D LXI H,14-.11 DAD SP MOV E,M INX H MOV D,M PUSH D LXI H,14-.11 DAD SP MOV E,M INX H MOV D,M PUSH D LXI H,14-.11 DAD SP MOV E,M INX H MOV D,M LXI H,65 DAD D PUSH H LXI H,.4+0 PUSH H CALL printf_ XCHG LXI H,10 DAD SP SPHL LXI H,13 PUSH H LXI H,.4+43 PUSH H CALL printf_ POP D POP D LXI H,128 XCHG LXI H,14-.11 DAD SP PUSH H MOV A,M INX H MOV H,M MOV L,A DAD D XCHG POP H MOV M,E INX H MOV M,D LXI H,12-.11 DAD SP PUSH H MOV A,M INX H MOV H,M MOV L,A INX H XCHG POP H MOV M,E INX H MOV M,D LXI H,12-.11 DAD SP MOV E,M INX H MOV D,M LXI H,16-.11 DAD SP MOV A,M INX H MOV H,M MOV L,A CALL .eq JZ .14 LXI H,10-.11 DAD SP PUSH H MOV A,M INX H MOV H,M MOV L,A INX H XCHG POP H MOV M,E INX H MOV M,D LXI H,0 XCHG LXI H,12-.11 DAD SP MOV M,E INX H MOV M,D .14: LXI H,18-.11 DAD SP PUSH H MOV A,M INX H MOV H,M MOV L,A DCX H XCHG POP H MOV M,E INX H MOV M,D JMP .12 .13: LXI H,.4+46 PUSH H CALL printf_ POP D LXI H,13 PUSH H LXI H,.4+87 PUSH H CALL printf_ POP D POP D RET .11 EQU 0 .4: DB 100,114,105,118,101,61,37,99,58,44,32,116,114,107,61 DB 37,100,44,32,115,101,99,61,37,51,100,44,32,32,112 DB 116,114,61,48,120,48,37,52,120,32,32,32,0,37,99 DB 0,32,32,32,32,32,32,32,32,32,32,32,32,32,32 DB 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32 DB 32,32,32,32,32,32,32,32,32,32,32,0,37,99,0 PUBLIC main_ main_: lxi d,.16 call csave LXI H,-4096 SHLD hregbc_ LXI H,-16384 SHLD hregde_ CALL diagnose_ LHLD pSYSCFG_ LXI D,68 DAD D MOV E,M MVI D,0 PUSH D CALL crtinit_ POP D CALL crtclr_ LXI H,0 PUSH H LXI H,0 PUSH H CALL crtlc_ POP D POP D LXI H,1 PUSH H LXI H,0 PUSH H LXI H,5 PUSH H LXI H,2 PUSH H LXI H,2013 PUSH H LXI H,31 PUSH H LXI H,3 PUSH H LXI H,.15+0 PUSH H CALL printf_ XCHG LXI H,16 DAD SP SPHL LXI H,.15+33 PUSH H CALL printf_ POP D LXI H,25 SHLD dregbc_ CALL bdoscall_ LDA drega_ MOV L,A MVI H,0 XCHG LXI H,-14-.16 DAD SP MOV M,E INX H MOV M,D LXI H,-32768 SHLD pBUFFER_ LXI H,1 XCHG LXI H,8-.16 DAD SP MOV A,M INX H MOV H,M MOV L,A CALL .eq JZ .17 LXI H,0 XCHG LXI H,-12-.16 DAD SP MOV M,E INX H MOV M,D JMP .19 .18: LXI H,-12-.16 DAD SP PUSH H MOV A,M INX H MOV H,M MOV L,A INX H XCHG POP H MOV M,E INX H MOV M,D .19: LXI H,-12-.16 DAD SP MOV E,M INX H MOV D,M LXI H,12 CALL .lt JZ .20 LXI H,-6602 SHLD ireghl_ LXI H,-12-.16 DAD SP MOV E,M INX H MOV D,M XCHG SHLD iregbc_ CALL bioscall_ LHLD iregbc_ LXI D,8 XCHG CALL .ur JNZ .21 JMP .20 .21: JMP .18 .20: LXI H,-12-.16 DAD SP MOV E,M INX H MOV D,M LXI H,65 DAD D PUSH H LXI H,.15+77 PUSH H LXI H,filespec_ PUSH H CALL sprintf_ POP D POP D POP D LXI H,16383 PUSH H LHLD pBUFFER_ PUSH H LXI H,filespec_ PUSH H CALL rdimage_ POP D POP D POP D XCHG LXI H,0-.16 DAD SP MOV M,E INX H MOV M,D LXI H,0-.16 DAD SP mov a,m inx h ora m JNZ .22 LXI H,-12-.16 DAD SP MOV E,M INX H MOV D,M LXI H,65 DAD D PUSH H LXI H,.15+88 PUSH H LXI H,filespec_ PUSH H CALL sprintf_ POP D POP D POP D LXI H,16383 PUSH H LHLD pBUFFER_ PUSH H LXI H,filespec_ PUSH H CALL rdimage_ POP D POP D POP D XCHG LXI H,0-.16 DAD SP MOV M,E INX H MOV M,D LXI H,0-.16 DAD SP mov a,m inx h ora m JNZ .23 LXI H,.15+100 PUSH H CALL printf_ POP D LXI H,1 PUSH H CALL exit_ POP D .23: .22: .17: LXI H,2 XCHG LXI H,8-.16 DAD SP MOV A,M INX H MOV H,M MOV L,A CALL .eq JZ .24 LXI H,10-.16 DAD SP MOV E,M INX H MOV D,M XCHG INX H INX H MOV E,M INX H MOV D,M PUSH D LXI H,filespec_ PUSH H CALL strcpy_ POP D POP D LXI H,16383 PUSH H LHLD pBUFFER_ PUSH H LXI H,filespec_ PUSH H CALL rdimage_ POP D POP D POP D XCHG LXI H,0-.16 DAD SP MOV M,E INX H MOV M,D .24: LXI H,3 XCHG LXI H,8-.16 DAD SP MOV A,M INX H MOV H,M MOV L,A CALL .eq JZ .25 LXI H,10-.16 DAD SP MOV E,M INX H MOV D,M XCHG INX H INX H MOV E,M INX H MOV D,M PUSH D LXI H,filespec_ PUSH H CALL strcpy_ POP D POP D LXI H,10-.16 DAD SP MOV E,M INX H MOV D,M LXI H,4 DAD D MOV E,M INX H MOV D,M PUSH D LXI H,szDrive_ PUSH H CALL strcpy_ POP D POP D LXI H,szDrive_ PUSH H CALL strupr_ POP D LDA szDrive_ MOV L,A MVI H,0 LXI D,-65 DAD D XCHG LXI H,-14-.16 DAD SP MOV M,E INX H MOV M,D LXI H,16383 PUSH H LHLD pBUFFER_ PUSH H LXI H,filespec_ PUSH H CALL rdimage_ POP D POP D POP D XCHG LXI H,0-.16 DAD SP MOV M,E INX H MOV M,D .25: LXI H,-6629 SHLD ireghl_ LXI H,-14-.16 DAD SP MOV E,M INX H MOV D,M XCHG SHLD iregbc_ LXI H,0 SHLD iregde_ CALL bioscall_ LHLD ireghl_ SHLD pDPH_ LHLD pDPH_ LXI D,10 DAD D MOV E,M INX H MOV D,M XCHG SHLD pDPB_ LHLD pDPB_ MOV E,M INX H MOV D,M LXI H,-4-.16 DAD SP MOV M,E INX H MOV M,D LHLD pDPB_ LXI D,13 DAD D MOV E,M INX H MOV D,M LXI H,-16-.16 DAD SP MOV M,E INX H MOV M,D LXI H,0 XCHG LXI H,-6-.16 DAD SP MOV M,E INX H MOV M,D LXI H,0 XCHG LXI H,-8-.16 DAD SP MOV M,E INX H MOV M,D LHLD pBUFFER_ XCHG LXI H,-146-.16 DAD SP MOV M,E INX H MOV M,D LXI H,0-.16 DAD SP MOV E,M INX H MOV D,M LXI H,128 CALL .dv XCHG LXI H,-10-.16 DAD SP MOV M,E INX H MOV M,D LXI H,-16-.16 DAD SP mov a,m inx h ora m JNZ .26 LXI H,-14-.16 DAD SP MOV E,M INX H MOV D,M LXI H,65 DAD D PUSH H LXI H,.15+142 PUSH H CALL printf_ POP D POP D LXI H,1 PUSH H CALL exit_ POP D .26: LXI H,.15+190 PUSH H CALL printf_ POP D LXI H,0-.16 DAD SP MOV E,M INX H MOV D,M PUSH D LXI H,filespec_ PUSH H LXI H,-10-.16 DAD SP MOV E,M INX H MOV D,M LXI H,65 DAD D PUSH H LXI H,.15+242 PUSH H CALL printf_ XCHG LXI H,8 DAD SP SPHL LXI H,.15+277 PUSH H CALL printf_ POP D LXI H,.15+302 PUSH H CALL printf_ POP D LXI H,1 SHLD dregbc_ CALL bdoscall_ LDA drega_ MOV L,A MVI H,0 PUSH H LXI H,89 POP D CALL .ne JZ .27 LXI H,.15+304 PUSH H CALL printf_ POP D LXI H,1 PUSH H CALL exit_ POP D .27: LXI H,-10-.16 DAD SP MOV E,M INX H MOV D,M PUSH D LXI H,-2-.16 DAD SP MOV E,M INX H MOV D,M PUSH D LHLD pBUFFER_ PUSH H LXI H,-2-.16 DAD SP MOV E,M INX H MOV D,M PUSH D LXI H,2-.16 DAD SP MOV E,M INX H MOV D,M PUSH D LXI H,-4-.16 DAD SP MOV E,M INX H MOV D,M PUSH D CALL sysgen_ XCHG LXI H,12 DAD SP SPHL LXI H,-14-.16 DAD SP MOV E,M INX H MOV D,M LXI H,65 DAD D PUSH H LXI H,.15+350 PUSH H CALL printf_ POP D POP D RET .16 EQU -152 .15: DB 83,89,83,71,69,78,46,67,79,77,32,37,100,47,37 DB 100,47,37,100,32,118,37,100,46,37,100,46,37,100,46 DB 37,100,0,32,100,119,103,32,45,32,87,114,105,116,101 DB 32,83,121,115,116,101,109,32,73,109,97,103,101,32,116 DB 111,32,83,116,111,114,97,103,101,32,77,101,100,105,97 DB 10,0,37,99,58,67,80,77,46,83,89,83,0,37,99 DB 58,90,83,89,83,46,83,89,83,0,83,111,114,114,121 DB 44,32,99,111,117,108,100,32,110,111,116,32,114,101,97 DB 100,32,100,101,102,97,117,108,116,32,115,121,115,116,101 DB 109,32,102,105,108,101,0,83,111,114,114,121,44,32,37 DB 99,58,32,68,114,105,118,101,32,100,111,101,115,32,110 DB 111,116,32,104,97,118,101,32,114,101,115,101,114,118,101 DB 100,32,116,114,97,99,107,115,10,0,80,114,101,112,97 DB 114,105,110,103,32,116,111,32,116,114,97,110,115,102,101 DB 114,32,116,104,101,32,67,80,47,77,32,115,121,115,116 DB 101,109,32,105,109,97,103,101,32,116,111,32,116,104,101 DB 32,0,37,99,58,32,100,114,105,118,101,32,102,114,111 DB 109,32,37,115,10,102,105,108,101,32,119,104,105,99,104 DB 32,105,115,32,37,100,0,32,98,121,116,101,115,32,108 DB 111,110,103,44,32,79,75,63,32,40,89,47,110,41,58 DB 32,0,10,0,83,121,115,103,101,110,32,111,112,101,114 DB 97,116,105,111,110,32,99,97,110,99,101,108,108,101,100 DB 32,112,101,114,32,121,111,117,114,32,114,101,113,117,101 DB 115,116,46,10,0,37,99,58,32,100,114,105,118,101,32 DB 115,104,111,117,108,100,32,98,101,32,98,111,111,116,97 DB 98,108,101,32,110,111,119,32,58,45,41,0 extrn strcpy_ extrn exit_ extrn sprintf_ extrn printf_ extrn strlen_ extrn fclose_ extrn fread_ extrn wrsector_ extrn crtlc_ extrn crtclr_ extrn crtinit_ extrn diagnose_ extrn hregde_ extrn hregbc_ extrn bdoscall_ extrn dregbc_ extrn drega_ extrn bioscall_ extrn ireghl_ extrn iregde_ extrn iregbc_ extrn fopen_ extrn .an extrn .eq extrn .ne extrn .lt extrn .le extrn .ge extrn .ur extrn .dv END