home *** CD-ROM | disk | FTP | other *** search
- TITLE 'UNLOAD - CREATE HEX FILE FROM COM FILE'
- ORG 100H
- ;
- ;TO USE, TYPE: "UNLOAD <FILENAME> <ADDR>"
- ;WHERE: <FILENAME>.COM IS THE INPUT FILE
- ; <FILENAME>.HEX WILL BE THE OUTPUT FILE
- ; <ADDR> IS THE START ADDRESS IN HEX (DEF=0)
- ;
- MACLIB SEQIO
- ;
- LHLD 6
- DCX H
- SPHL
- ;
- FILE INFILE,IFILE,,1,COM,1024
- FILE OUTFILE,OFILE,,1,HEX,1024
- LXI H,0
- MVI B,0
- LXI D,FCB2+1
- ADRLUP: LDAX D
- INX D
- SUI '0'
- JC ADRDON
- CPI 10
- JC ADDNIB
- SUI 7
- JC ADRDON
- CPI 16
- JNC ADRDON
- ADDNIB: DAD H
- DAD H
- DAD H
- DAD H
- MOV C,A
- DAD B
- JMP ADRLUP
- ADRDON: SHLD LODADR
- UNLOOP: GET IFILE
- JZ GEOF
- PUSH PSW
- MVI A,':'
- PUT OFILE
- XRA A
- STA CHEKS
- MVI A,16
- CALL PUTBYTE
- LDA LODADR+1
- CALL PUTBYTE
- LDA LODADR
- CALL PUTBYTE
- XRA A
- CALL PUTBYTE
- POP PSW
- MVI B,16
- LINLUP: PUSH B
- CALL PUTBYTE
- POP B
- DCR B
- JZ NEXTL
- GET IFILE
- JMP LINLUP
- ;
- PUTBYTE:MOV C,A
- LDA CHEKS
- SUB C
- STA CHEKS
- MOV A,C
- RRC
- RRC
- RRC
- RRC
- CALL PUTNIB
- MOV A,C
- PUTNIB: ANI 0FH
- ADI '0'
- CPI '9'+1
- JC PUTNB1
- ADI 7
- PUTNB1: PUSH B
- PUT OFILE
- POP B
- RET
- ;
- NEXTL: LDA CHEKS
- CALL PUTBYTE
- MVI A,CR
- PUT OFILE
- MVI A,LF
- PUT OFILE
- LHLD LODADR
- LXI D,16
- DAD D
- JMP ADRDON
- ;
- GEOF: MVI A,':'
- PUT OFILE
- MVI B,5
- GEOF1: XRA A
- PUSH B
- CALL PUTBYTE
- POP B
- DCR B
- JNZ GEOF1
- MVI A,CR
- PUT OFILE
- MVI A,LF
- PUT OFILE
- FINIS <IFILE,OFILE>
- JMP 0
- ;
- LODADR: DS 2
- CHEKS: DS 1
- CR EQU 13
- LF EQU 10
- FCB2 EQU 6CH
- ;
- BUFFERS:
- END
-