home *** CD-ROM | disk | FTP | other *** search
/ Simtel MSDOS - Coast to Coast / simteldosarchivecoasttocoast.iso / starter / bin2as.mac < prev    next >
Text File  |  1994-03-05  |  2KB  |  105 lines

  1.          TITLE    BIN2AS - Convert 8-bit byte file to HEX ASCII file
  2.          SEARCH   MONSYM
  3. ;
  4. ; BIN2AS PROGRAM
  5. ; DICK GILLMANN, JUNE 1982
  6. ;
  7. P=17
  8. ; MAIN PROGRAM
  9. START:   RESET
  10.          MOVE     P,[IOWD PDLEN,PDLIST]
  11. ; OPEN INPUT FILE (8 BIT)
  12. OOPS1:   HRROI    1,[ASCIZ/Input file: /]
  13.          PSOUT
  14.          MOVSI    1,(GJ%OLD!GJ%SHT!GJ%FNS!GJ%CFM)
  15.          MOVE     2,[.PRIIN,,.PRIOU]
  16.          GTJFN
  17.          ERJMP    OOPS1
  18.          MOVEM    1,IJFN
  19.          HRRZ     1,1
  20.          MOVE     2,[100000,,OF%RD]
  21.          OPENF
  22.          ERJMP    OOPS1
  23. ; OPEN OUTPUT FILE (7 BIT BYTES)
  24. OOPS2:   HRROI    1,[ASCIZ/Output file: /]
  25.          PSOUT
  26.          MOVSI    1,(GJ%FOU!GJ%FNS!GJ%SHT!GJ%CFM)
  27.          MOVE     2,[.PRIIN,,.PRIOU]
  28.          GTJFN
  29.          ERJMP    OOPS2
  30.          MOVEM    1,OJFN
  31.          HRRZ     1,1
  32.          MOVE     2,[070000,,OF%WR]
  33.          OPENF
  34.          ERJMP    OOPS2
  35.          XOR      5,5
  36.          XOR      6,6
  37. ; MAIN LOOP
  38. PRE:     MOVEI    4,^D20
  39. LOOP:    HRRZ     1,IJFN
  40.          BIN
  41.          ERJMP    EOF
  42.          AOS      5
  43.          ADD      6,2
  44.          IDIVI    2,^D16
  45.          ORI      2,"0"
  46.          CAILE    2,"9"
  47.          ADDI     2,"A"-"9"-1
  48.          HRRZ     1,OJFN
  49.          BOUT
  50.          MOVE     2,3
  51.          ORI      2,"0"
  52.          CAILE    2,"9"
  53.          ADDI     2,"A"-"9"-1
  54.          BOUT
  55.          SOJE     4,EOL
  56.          MOVEI    2," "
  57.          BOUT
  58.          JRST     LOOP
  59. EOL:     MOVEI    2,15
  60.          BOUT
  61.          MOVEI    2,12
  62.          BOUT
  63.          JRST     PRE
  64. EOF:     HRRZ     1,OJFN
  65.          MOVEI    2,15
  66.          BOUT
  67.          MOVEI    2,12
  68.          BOUT
  69.          HRRZ     1,IJFN
  70.          CLOSF
  71.          NOP
  72.          HRRZ     1,OJFN
  73.          CLOSF
  74.          NOP
  75.          HRROI    1,[ASCIZ/End of File Reached.
  76. /]
  77.          PSOUT
  78.          HRROI    1,[ASCIZ/Character count = /]
  79.          PSOUT
  80.          MOVEI    1,.PRIOU
  81.          MOVE     2,5
  82.          MOVEI    3,^D10
  83.          NOUT
  84.          NOP
  85.          HRROI    1,CRLF
  86.          PSOUT
  87.          HRROI    1,[ASCIZ/16-bit checksum = /]
  88.          PSOUT
  89.          MOVEI    1,.PRIOU
  90.          MOVE     2,6
  91.          ANDI     2,177777
  92.          NOUT
  93.          HRROI    1,CRLF
  94.          PSOUT
  95.          HALTF
  96.          JRST     START
  97. ; DATA
  98. PDLEN==100
  99. PDLIST:  BLOCK    PDLEN
  100. IJFN:    0
  101. OJFN:    0
  102. CRLF:    ASCIZ    /
  103. /
  104.          END      START
  105.