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 / CPMUG001.ARK / DISASSM2.ASM < prev    next >
Assembly Source File  |  1984-04-29  |  4KB  |  322 lines

  1.  
  2. ;REF. NO. AB22
  3. ;PROGRAM NAME DISASM (8080 DISASSEMBLER)
  4. ;
  5. ;(FROM INTEL LIBRARY??)
  6. ;
  7. ;
  8. ;
  9. ;
  10.     ORG    1B00H
  11. CO    EQU    3809H
  12.  
  13. RDBYTE:    LHLD    PC
  14.     MOV    A,M
  15.     INX    H
  16.     SHLD    PC
  17.     RET    
  18.  
  19. RGPRNT:    INR    A
  20.     ANI    07
  21.     CPI    06
  22.     JC    RGP1
  23.     ADI    03
  24. RGP1:    CPI    05
  25.     JC    RGP2
  26.     ADI    02
  27. RGP2:    ADI    41H
  28.     MOV    C,A
  29.     JMP    CO
  30.  
  31. DECODE:    MOV    B,A
  32.     ANI    0F0H
  33.     RRC
  34.     RRC
  35.     RRC
  36.     RRC
  37.     ADI    90H
  38.     DAA    
  39.     ACI    40H
  40.     DAA    
  41.     MOV    C,A
  42.     CALL    CO
  43.     MOV    A,B
  44.     ANI    0F0H
  45.     ADI    90H
  46.     DAA    
  47.     ACI    40H
  48.     DAA
  49.     MOV    C,A
  50.     JMP    CO
  51.  
  52. PRINT:    MVI    B,4
  53. P1:    MOV    C,M
  54.     CALL    CO
  55.     INX    H
  56.     DCR    B
  57.     JNZ    P1
  58.     MVI    C,20H
  59.     JMP    CO
  60. XTRACT:    MOV    A,D
  61.     ANI    38H
  62.     RRC
  63.     RRC
  64.     RRC
  65.     RET
  66.  
  67. CCPRNT:    CALL    XTRACT
  68.     ADD    A
  69.     MOV    C,A
  70.     LXI    H,CCODE
  71.     DAD    B
  72.     MOV    C,M
  73.     CALL    CO
  74.     INX    H
  75.     MOV    C,M
  76.     CALL    CO
  77.     MVI    C,20H
  78.     CALL    CO
  79.     JMP    CO
  80.  
  81. RPPRNT:    CALL    XTRACT
  82.     ANI    06
  83.     CPI    06
  84.     JNZ    RGPRNT
  85.     MVI    C,53H
  86.     CALL    CO
  87.     MVI    C,50H
  88.     JMP    CO
  89.  
  90. DISASM:    MVI    C,0DH
  91.     CALL    CO
  92.     MVI    C,0AH
  93.     CALL    CO
  94.     LHLD    PC
  95.     MOV    A,H
  96.     CALL    DECODE
  97.     MOV    A,L
  98.     CALL    DECODE
  99.     MVI    C,20H
  100.     CALL    CO
  101.     CALL    CO
  102.     CALL    RDBYTE
  103.     MOV    D,A
  104.     LXI    H,TABLE
  105.     LXI    B,11H
  106. D1:    CMP    M
  107.     JZ    TG1
  108.     INX    H
  109.     DCR    C
  110.     JNZ    D1
  111.     MVI    C,0AH
  112.     CMP    M
  113. D2:    CMP    M
  114.     JZ    TG2
  115.     INX    H
  116.     DCR    C
  117.     JNZ    D2
  118.     MVI    C,6
  119. D3:    CMP    M
  120.     JZ    TG3
  121.     INX    H
  122.     DCR    C
  123.     JNZ    D3
  124.     ANI    0C0H
  125.     CPI    40H
  126.     JZ    MG0
  127.     CPI    80H
  128.     JZ    MG1
  129.     MOV    A,D
  130.     ANI    0C7H
  131.     SUI    04
  132.     JZ    MG2
  133.     DCR    A
  134.     JZ    MG3
  135.     DCR    A
  136.     JZ    MG4
  137.     MOV    A,D
  138.     ANI    0C0H
  139.     JZ    MG5
  140.     MOV    A,D
  141.     ANI    0C7H
  142.     SUI    0C0H
  143.     JZ    MG6
  144.     SUI    02
  145.     JZ    MG7
  146.     SUI    02
  147.     JZ    MG8
  148.     SUI    03
  149.     JZ    MG9
  150.     MOV    A,D
  151.     ANI    07
  152.     MOV    C,A
  153.     LXI    H,PPOP-1
  154.     DAD    B
  155.     CALL    PRINT
  156.     CALL    XTRACT
  157.     CPI    06
  158.     JNZ    D6
  159.     LXI    H,PPSW
  160.     CALL    PRINT
  161.     JMP    DISASM
  162. MG9:    LXI    H,PRST
  163.     CALL    PRINT
  164.     CALL    DECODE
  165.     JMP    DISASM
  166. MG8:    MVI    C,43H
  167.     CALL    CO
  168.     CALL    CCPRNT
  169.     JMP    D7
  170. MG7:    MVI    C,4AH
  171.     CALL    CO
  172.     CALL    CCPRNT
  173.     JMP    D7
  174. MG6:    MVI    C,52H
  175.     CALL    CO
  176.     CALL    CCPRNT
  177.     JMP    DISASM
  178. MG5:    LXI    H,PLXI
  179.     MOV    A,D
  180.     ANI    0FH
  181.     DCR    A
  182.     JZ    MG51
  183.     CPI    04
  184.     JC    D4
  185.     SUI    05
  186. D4:    ADD    A
  187.     ADD    A
  188.     MOV    C,A
  189.     DAD    B
  190.     CALL    PRINT
  191.     CALL    RPPRNT
  192.     JMP    DISASM
  193. MG51:    CALL    PRINT
  194.     CALL    RPPRNT
  195.     MVI    C,2CH
  196.     CALL    CO
  197.     JMP    D7
  198. MG4:    LXI    H,PMVI
  199.     CALL    PRINT
  200.     CALL    XTRACT
  201.     CARGPRNT
  202.     MVI    C,2CH
  203.     CALL    CO
  204.     JMP    D8
  205. MG3:    LXI    H,PDCR
  206.     JMP    D5
  207. MG2:    LXI    H,PINR
  208. D5:    CALL    PRINT
  209.     CALL    XTRACT
  210. D6:    CALL    RGPRNT
  211.     JMP    DISASM
  212. MG1:    MOV    A,D
  213.     ANI    38H
  214.     RRC
  215.     MOV    C,A
  216.     LXI    H,PADD
  217.     DAD    B
  218.     CALL    PRINT
  219.     JMP    D9
  220. MG0:    LXI    H,PMOV
  221.     CALL    PRINT
  222.     CALL    XTRACT
  223.     CALL    RGPRNT
  224.     MVI    C,2CH
  225.     CALL    CO
  226. D9:    MOV    A,D
  227.     ANI    07
  228.     CALL    RGPRNT
  229.     JMP    DISASM
  230. TG3:    MOV    A,C
  231.     ADD    A
  232.     ADD    A
  233.     MOV    C,A
  234.     LXI    H,TAB3-4
  235.     DAD    B
  236.     CALL    PRINT
  237. D7:    CALL    RDBYTE
  238.     MOV    D,A
  239.     CALL    RDBYTE
  240.     CALL    DECODE
  241.     MOV    A,D
  242.     CALL    DECODE
  243.     JMP    DISASM
  244. TG2:    MOV    A,C
  245.     ADD    A
  246.     ADD    A
  247.     MOV    C,A
  248.     LXI    H,TAB2-4
  249.     DAD    B
  250.     CALL    PRINT
  251. D8:    CALL    RDBYTE
  252.     CALL    DECODE
  253.     JMP    DISASM
  254. TG1:    MOV    A,C
  255.     ADD    A
  256.     ADD    A
  257.     MOV    C,A
  258.     LXI    H,TAB1-4
  259.     DAD    B
  260.     CALL    PRINT
  261.     JMP    DISASM
  262. PC:    DS    2
  263. TABLE:    DB    000H,007H,00FH,017H
  264.     DB    01FH,027H,02FH,037H
  265.     DB    03FH,076H,0C9H,0E3H
  266.     DB    0E9H,0EBH,0F3H,0F9H
  267.     DB    0FBH,0C6H,0CEH,0D3H
  268.     DB    0D6H,0DBH,0DEH,0E6H
  269.     DB    0EEH,0F6H,0FFH,022H
  270.     DB    02AH,032H,03AH,0C3H
  271.     DB    0CDH
  272. TAB1:    DB    'EI   ','SPHL','DI  ','XCHG'
  273.  
  274.  
  275.  
  276.     DB    'PCHL','XTHL','RET','HLT '
  277.  
  278.  
  279.     DB    'CMC ','STC ','CMA ','DAA '
  280.  
  281.  
  282.     DB    'RAR ','RAL ','RRC ','RLC '
  283.  
  284.  
  285.     DB    'NOP '
  286. TAB2:    DB    'CPI ','ORI ','XRI ','ANI '
  287.  
  288.  
  289.     DB    'SBI ','IN  ','SUI ','OUT '
  290.  
  291.  
  292.     DB    'ACI ','ADI '
  293. TAB3:    DB    'CALL','JMP ','LDA ','STA '
  294.  
  295.  
  296.     DB    'LHLD','SHLD' 
  297.  
  298. PMOV:    DB    'MOV '
  299. PADD:    DB    'ADD ','ADC ','SUB ','SBB '
  300.  
  301.  
  302.     DB    'ANA ','XRA ','ORA ','CMP '
  303.  
  304.  
  305. PINR:    DB    'INR '
  306. PDCR:    DB    'DCR '
  307. PMVI:    DB    'MVI '
  308. PLXI:    DB    'LXI ','STAX','INX ','DAD '
  309.  
  310.  
  311.     DB    'LDAX','DCX '
  312.  
  313. PRST:    DB    'RST '
  314. PPSW:    DB    'PSW '
  315. PPOP:     DB    'POP ','PUSH'
  316.  
  317. CCODE:    DB    'NZ','Z ','NC','C '
  318.  
  319.     DB    'PO','PE','P ','M '
  320.  
  321.     END
  322.