home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Interactive Guide / c-cplusplus-interactive-guide.iso / c_ref / csource4 / 284_01 / getsys.asm < prev    next >
Assembly Source File  |  1989-03-13  |  1KB  |  83 lines

  1. ;    GETSYS - STAND-ALONE CP/M SYSTEM EXTRACT PROGRAM
  2. ;    for standard CP/M format (8"1S) only
  3.  
  4. ESC    equ    0EDH
  5. APE    equ    0EDH
  6.  
  7. SETDMA    equ    12
  8. READ    equ    13
  9. WRITE    equ    14
  10.  
  11.     org    0000H
  12. ENTRY:
  13.     lxi    sp, STACK + 128
  14.     lxi    b, BUFFER
  15.     db    ESC, APE, SETDMA
  16.  
  17. LOOP:
  18.     lda    SDSK
  19.     sta    XDSK
  20.     lda    STRK
  21.     sta    XTRK
  22.     lda    SSEC
  23.     mov    c, a
  24.     mvi    b, 0
  25.     lxi    h, XLAT
  26.     dad    b
  27.     mov    a, m
  28.     sta    XSEC
  29.     lxi    d, XDP
  30.     db    ESC, APE, READ
  31.     lxi    d, DDP
  32.     mvi    c, 0
  33.     db    ESC, APE, WRITE
  34.  
  35.     lxi    h, SSEC
  36.     call    NEXTPOS
  37.     lxi    h, DSEC
  38.     call    NEXTPOS
  39.     lxi    h, COUNT
  40.     dcr    m
  41.     jnz    LOOP
  42.  
  43.     hlt
  44.  
  45. NEXTPOS:
  46.     inr    m
  47.     mov    a, m
  48.     cpi    26
  49.     rnz
  50.     mvi    m, 0
  51.     dcx    h
  52.     inr    m
  53.     ret
  54.  
  55. XLAT:                ; anti-skew table
  56.     db     0, 13,     9, 22,     5, 18
  57.     db     1, 14, 10, 23,     6, 19
  58.     db     2, 15, 11, 24,     7, 20
  59.     db     3, 16, 12, 25,     8, 21
  60.     db     4, 17
  61.  
  62. COUNT:    db    44
  63.  
  64. SDP:
  65. SDSK:    db    0
  66. STRK:    db    0
  67. SSEC:    db    1
  68.  
  69. DDP:
  70. DDSK:    db    1
  71. DTRK:    db    2
  72. DSEC:    db    17
  73.  
  74. XDP:
  75. XDSK:    ds    1
  76. XTRK:    ds    1
  77. XSEC:    ds    1
  78.  
  79. BUFFER: ds    128
  80. STACK:    ds    128
  81.  
  82.     end    ENTRY
  83.