home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / simtel / cpmug / cpmug029.ark / UNLOAD.ASM < prev    next >
Encoding:
Assembly Source File  |  1984-04-29  |  1.5 KB  |  119 lines

  1.     TITLE    'UNLOAD - CREATE HEX FILE FROM COM FILE'
  2.     ORG    100H
  3. ;
  4. ;TO USE, TYPE: "UNLOAD <FILENAME> <ADDR>"
  5. ;WHERE: <FILENAME>.COM IS THE INPUT FILE
  6. ;    <FILENAME>.HEX WILL BE THE OUTPUT FILE
  7. ;    <ADDR>         IS THE START ADDRESS IN HEX (DEF=0)
  8. ;
  9.     MACLIB    SEQIO
  10. ;
  11.     LHLD    6
  12.     DCX    H
  13.     SPHL
  14. ;
  15.     FILE    INFILE,IFILE,,1,COM,1024
  16.     FILE    OUTFILE,OFILE,,1,HEX,1024
  17.     LXI    H,0
  18.     MVI    B,0
  19.     LXI    D,FCB2+1
  20. ADRLUP:    LDAX    D
  21.     INX    D
  22.     SUI    '0'
  23.     JC    ADRDON
  24.     CPI    10
  25.     JC    ADDNIB
  26.     SUI    7
  27.     JC    ADRDON
  28.     CPI    16
  29.     JNC    ADRDON
  30. ADDNIB:    DAD    H
  31.     DAD    H
  32.     DAD    H
  33.     DAD    H
  34.     MOV    C,A
  35.     DAD    B
  36.     JMP    ADRLUP
  37. ADRDON:    SHLD    LODADR
  38. UNLOOP:    GET    IFILE
  39.     JZ    GEOF
  40.     PUSH    PSW
  41.     MVI    A,':'
  42.     PUT    OFILE
  43.     XRA    A
  44.     STA    CHEKS
  45.     MVI    A,16
  46.     CALL    PUTBYTE
  47.     LDA    LODADR+1
  48.     CALL    PUTBYTE
  49.     LDA    LODADR
  50.     CALL    PUTBYTE
  51.     XRA    A
  52.     CALL    PUTBYTE
  53.     POP    PSW
  54.     MVI    B,16
  55. LINLUP:    PUSH    B
  56.     CALL    PUTBYTE
  57.     POP    B
  58.     DCR    B
  59.     JZ    NEXTL
  60.     GET    IFILE
  61.     JMP    LINLUP
  62. ;
  63. PUTBYTE:MOV    C,A
  64.     LDA    CHEKS
  65.     SUB    C
  66.     STA    CHEKS
  67.     MOV    A,C
  68.     RRC
  69.     RRC
  70.     RRC
  71.     RRC
  72.     CALL    PUTNIB
  73.     MOV    A,C
  74. PUTNIB:    ANI    0FH
  75.     ADI    '0'
  76.     CPI    '9'+1
  77.     JC    PUTNB1
  78.     ADI    7
  79. PUTNB1:    PUSH    B
  80.     PUT    OFILE
  81.     POP    B
  82.     RET
  83. ;
  84. NEXTL:    LDA    CHEKS
  85.     CALL    PUTBYTE
  86.     MVI    A,CR
  87.     PUT    OFILE
  88.     MVI    A,LF
  89.     PUT    OFILE
  90.     LHLD    LODADR
  91.     LXI    D,16
  92.     DAD    D
  93.     JMP    ADRDON
  94. ;
  95. GEOF:    MVI    A,':'
  96.     PUT    OFILE
  97.     MVI    B,5
  98. GEOF1:    XRA    A
  99.     PUSH    B
  100.     CALL    PUTBYTE
  101.     POP    B
  102.     DCR    B
  103.     JNZ    GEOF1
  104.     MVI    A,CR
  105.     PUT    OFILE
  106.     MVI    A,LF
  107.     PUT    OFILE
  108.     FINIS    <IFILE,OFILE>
  109.     JMP    0
  110. ;
  111. LODADR:    DS    2
  112. CHEKS:    DS    1
  113. CR    EQU    13
  114. LF    EQU    10
  115. FCB2    EQU    6CH
  116. ;
  117. BUFFERS:
  118.     END
  119.