home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / SIMTEL / CPMUG / CPMUG015.ARK / DUMP.ASM < prev    next >
Assembly Source File  |  1984-04-29  |  5KB  |  273 lines

  1.  
  2.        TITLE  'DUMP'
  3.  
  4. PRP    EQU    8006H
  5. MBSP   EQU    8010H
  6. NMBP   EQU    8029H
  7. ASTAT  EQU    8042H
  8. MESS   EQU    805BH
  9. EXC    EQU    80ABH
  10. NP     EQU    80F1H
  11. NMR    EQU    800BH
  12. NAM    EQU    808DH
  13. ABP    EQU    80D3H
  14. DSM    EQU    80F6H
  15. STCK   EQU    8114H
  16.  
  17. WRITE  EQU    4
  18. ISIS   EQU    64
  19.  
  20.  
  21. FILE   MACRO  ACT,ADDR
  22.        MVI    C,ACT
  23.        LXI    D,ADDR
  24.        CALL   ISIS
  25.        LDA    STAT
  26.        ORA    A
  27.        JNZ    ERROR
  28.        ENDM
  29.  
  30. NEWL   MACRO
  31.        DB     0AH,0DH
  32.        ENDM
  33.  
  34. NEW4L  MACRO
  35.        NEWL
  36.        NEWL
  37.        NEWL
  38.        NEWL
  39.        ENDM
  40.  
  41. BLK    MACRO  NUM,AD1,AD2
  42.        MVI    A,NUM
  43.        LXI    D,AD1
  44.        IF     AD2
  45.        LXI    H,AD2
  46.        ENDIF
  47.        CALL   BLOK
  48.        ENDM
  49.  
  50. NXBLK  MACRO
  51.        MVI    A,8
  52.        LXI    H,ZZZ
  53.        SHLD   TEMP
  54.        LXI    H,7FFEH
  55.        SHLD   TEMP1
  56. T1:    LHLD   TEMP1
  57.        MOV    B,M
  58.        INX    H
  59.        SHLD   TEMP1
  60.        PUSH   PSW
  61.        LHLD   TEMP
  62.        MOV    E,M
  63.        INX    H
  64.        MOV    D,M
  65.        INX    H
  66.        SHLD   TEMP
  67.        CALL   CONV
  68.        POP    PSW
  69.        DCR    A
  70.        JNZ    T1
  71.        BLK    5,A9,PRP
  72.        BLK    5,A10,NMR
  73.        BLK    25,M0,MBSP
  74.        BLK    25,M1,NMBP
  75.        BLK    25,M2,ASTAT
  76.        BLK    25,M3,MESS
  77.        BLK    25,M4,MESS+25
  78.        BLK    30,A11,NAM
  79.        BLK    40,A12,EXC
  80.        BLK    35,A13,ABP
  81.        BLK    30,A14,DSM
  82.        BLK    30,A15,STCK
  83.        BLK    20,A16,STCK+30
  84.        LXI    H,0
  85.        DAD    SP
  86.        XCHG
  87.        LXI    H,TMP3
  88.        MOV    M,D
  89.        INX    H
  90.        MOV    M,E
  91.        BLK    2,A18,TMP3
  92.        LXI    H,0
  93.        DAD    SP
  94.        BLK    20,A17,0
  95.        ENDM
  96.  
  97.  
  98.        ORG    7200H
  99. DUMP:  SHLD   TMP2
  100.        POP    H
  101.        PUSH   PSW
  102.        MOV    A,H
  103.        STA    7FFEH
  104.        MOV    A,L
  105.        STA    7FFFH
  106.        POP    PSW
  107.        PUSH   H
  108.        LHLD   TMP2
  109.        PUSH   B
  110.        PUSH   D
  111.        PUSH   H
  112.        PUSH   PSW
  113.        NXBLK
  114.        FILE   WRITE,WBLK
  115.        POP    PSW
  116.        POP    H
  117.        POP    D
  118.        POP    B
  119.        RET
  120.  
  121.  
  122.        ORG    7400H
  123. CONV:  MVI    A,0F0H    ; B Register holds byte to be converted
  124.                         ; D&E hold buffer address
  125.        ANA    B
  126.        RRC
  127.        RRC
  128.        RRC
  129.        RRC
  130.        LXI    H,TABL
  131.        MOV    C,A
  132.        MOV    A,B
  133.        MVI    B,0
  134.        DAD    B
  135.        MOV    B,A
  136.        XCHG
  137.        LDAX   D
  138.        MOV    M,A
  139.        INX    H
  140.        XCHG
  141.        MVI    A,0FH
  142.        ANA    B
  143.        LXI    H,TABL
  144.        MOV    C,A
  145.        MVI    B,0
  146.        DAD    B
  147.        XCHG
  148.        LDAX   D
  149.        MOV    M,A
  150.        INX    H
  151.        XCHG
  152.        RET
  153.  
  154. BLOK:  PUSH   PSW
  155.        SHLD   TEMP
  156. T2:    LHLD   TEMP
  157.        MOV    B,M
  158.        INX    H
  159.        SHLD   TEMP
  160.        CALL   CONV
  161.        POP    PSW
  162.        DCR    A
  163.        JZ     T3
  164.        PUSH   PSW
  165.        MVI    A,20H
  166.        STAX   D
  167.        INX    D
  168.        JMP    T2
  169. T3:    RET
  170.  
  171.  
  172. WBLK:  DW     0           ; Parameter block for WRITE
  173. WBUF:  DW     7500H       ; Address of output buffer
  174. WCNT:  DW     TOT         ; Number of bites written
  175.        DW     STAT
  176.  
  177. STAT:  DS     2
  178.  
  179. ERROR: HLT
  180.  
  181. TEMP:  DW     0           ; ZZZ
  182. TEMP1: DW     0           ; 8000H
  183. TEMP2: DW     0
  184. TMP2:  DW     0
  185. TMP3:  DW     0
  186.  
  187. TABL:  DB     30H,31H,32H,33H,34H
  188.        DB     35H,36H,37H,38H,39H
  189.        DB     41H,42H,43H,44H,45H,46H
  190.  
  191.        ORG    7500H
  192.        NEWL
  193.        DB     'AT LOCATION '
  194. A1:    DB     '   '
  195. A2:    DB     '   :'
  196.        NEWL
  197.        DB     'CPP='
  198. A3:    DB     'FF      AP='
  199. A4:    DB     'FF      FP='
  200. A5:    DB     'FF      FMBP='
  201. A6:    DB     'FF'
  202.        NEWL
  203.        DB     'AS='
  204. A7:    DB     '   '
  205. A8:    DB     '  '
  206.        NEWL
  207.        DB     'PRP='
  208. A9:    DB     'FF FF FF FF FF'
  209.        NEWL
  210.        DB     'NMR='
  211. A10:   DB     'FF FF FF FF FF'
  212.        NEWL
  213.        DB     'MBSP ='
  214. M0:    DS     74
  215.        NEWL
  216.        DB     'NMBP ='
  217. M1:    DS     74
  218.        NEWL
  219.        DB     'ASTAT='
  220. M2:    DS     74
  221.        NEWL
  222.        DB     'MESS ='
  223. M3:    DS     74
  224.        NEWL
  225.        DB     '      '
  226. M4:    DS     74
  227.        NEWL
  228.        NEWL
  229.        DB     'NAM              /                 /'
  230.        DB     '                 /                 /'
  231.        NEWL
  232. A11:   DS     89
  233.        NEWL
  234.        DB     'EXC            PR             '
  235.        DB     'MBC            WDMK           '
  236.        DB     'RDMK           FMP            '
  237.        DB     'FQP            FAP            '
  238.        NEWL
  239. A12:   DS     119
  240.        NEWL
  241.        DB     'ABP            NSWP           '
  242.        DB     'SEMP           LAP            '
  243.        DB     'NAP            LP             '
  244.        DB     'NP'
  245.        NEWL
  246. A13:   DS     104
  247.        NEWL
  248.        DB     'DSM                           '
  249.        DB     'STAD                          '
  250.        DB     'STKP                          '
  251.        NEWL
  252. A14:   DS     89
  253.        NEWL
  254.        DB     'STACK                        /'
  255.        DB     '                             /'
  256.        NEWL
  257. A15:   DS     89
  258.        NEWL
  259. A16:   DS     59
  260.        NEWL
  261.        NEWL
  262.        DB     'CURRENT STACK LOCATION = '
  263. A18:   DS     5
  264.        NEWL
  265. A17:   DS     59
  266.        NEW4L
  267. TOT    EQU    $ - 7500H
  268.  
  269. ZZZ:   DW     A1,A2,A3,A4
  270.        DW     A5,A6,A7,A8
  271.  
  272.        END    DUMP
  273.