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 / CPM / ZCPR33 / S-Z / VTCAP11.LBR / DATA.1Z0 / DATA.18°
Text File  |  2000-06-30  |  4KB  |  277 lines

  1. ; DATA    
  2. ;
  3. ; This is the subroutine to read the information from TBUF and display it 
  4. ; on the CRT properly formatted and in the correct positions. The routine
  5. ; is flagged to display the information in either HEX, DECIMAL or DIRECT
  6. ; readout.
  7. ;
  8. ;    EXAMPLE:        ASCII     DECIMAL    HEX
  9. ;                  A      65     41
  10. ;             ^A       1     01
  11. ;
  12. ; SYSLIB routines used:    PA2HC, AT, EREOL
  13.  
  14. data:    push    hl        ; save HL
  15.  
  16.     call    cdata        ; clear previous data
  17.     call    stndend
  18.  
  19.     ld    hl,(rec)    ; get record number
  20.     ld    de,18        ; bytes per name
  21.     call    mulhd        ; calculate position of index name
  22.     ld    de,buf1        ; get start address of buffer
  23.     add    hl,de        ; add position to start address
  24.     push    hl        ; save index address
  25.     ld    de,iname    ; point to index name buffer
  26.     ld    bc,16        ; bytes to move
  27.     ldir
  28.  
  29.     pop    hl
  30.     ld    bc,17
  31.     add    hl,bc
  32.     ld    a,(hl)
  33.     cp    '*'
  34.     jr    z,ddel
  35.     call    gxymsg
  36.     db    3,34
  37.     db    '       '  
  38.     db    0
  39.     jr    dcon
  40.  
  41. ddel:    call     gxymsg
  42.     db    3,34
  43.     db    2,'DELETED',1
  44.     db    0
  45.  
  46. dcon:    call    at        ; position cursor to index field
  47.     db    14,62    
  48.     ld    hl,iname    ; point to index name
  49.     call    epstr
  50.  
  51.     call    at        ; position cursor to name field
  52.     db    3,17         
  53.     ld    hl,ttname     ; point to terminal name
  54.     ld    b,16 
  55.  
  56. dname:    ld    a,(hl)
  57.     call    cout
  58.     inc    hl
  59.     djnz    dname
  60.  
  61.     call    at
  62.     db    3,65
  63.     ld    hl,(rec)
  64.     call    phlfdc
  65.  
  66.     call      at        ; cursor up field
  67.     db    6,7 
  68.     ld    hl,tcurup
  69.     ld    a,(hl)
  70.     call    pa2hc        ; output cursor up code
  71.  
  72.     call    at        ; cursor down field
  73.     db      7,7 
  74.     ld    hl,tcurdn
  75.     ld    a,(hl)
  76.     call    pa2hc        ; output cursor down code
  77.  
  78.     call    at        ; cursor right field
  79.     db    6,18
  80.     ld    hl,tcurrt
  81.     ld    a,(hl)
  82.     call    pa2hc        ; output cursor right code
  83.  
  84.     call    at        ; cursor left field
  85.     db    7,18
  86.     ld    hl,tcurlt
  87.     ld    a,(hl)
  88.     call    pa2hc        ; output cursor left code
  89.  
  90.     call    at        ; delay after clear screen
  91.     db    10,18
  92.     ld    hl,tdelcls
  93.     ld    a,(hl)
  94.     call    pa2hc        ; output delay after clear screen code
  95.  
  96.     call    at        ; delay after direct cursor address
  97.     db    11,18
  98.     ld    hl,tdeldca
  99.     ld    a,(hl)
  100.     call    pa2hc        ; output delay after direct cursor address code
  101.  
  102.     call    at        ; delay after erase to end of line
  103.     db    12,18
  104.     ld    hl,tdeleol
  105.     ld     a,(hl)
  106.     call    pa2hc        ; output delay after erase to end of line code
  107.  
  108.     call    at        ; clear screen string
  109.     db    6,40
  110.     ld    hl,string
  111.  
  112. ps1:    ld    a,(hl)
  113.     cp    0
  114.     jr    z,str2
  115.     call    pa2hc
  116.     inc    hl
  117.     jr    ps1
  118.  
  119. str2:    call    at        ; direct cursor positioning string
  120.     db    7,40
  121.     inc    hl
  122.  
  123. ps2:    ld    a,(hl)
  124.     cp    0
  125.     jr    z,str3    
  126.     call    pa2hc
  127.     inc    hl
  128.     jr    ps2
  129.  
  130. str3:    call    at        ; erase to end of line string
  131.     db    8,40        
  132.     inc    hl
  133.  
  134. ps3:    ld    a,(hl)
  135.     cp    0
  136.     jr    z,str4    
  137.     call    pa2hc
  138.     inc    hl
  139.     jr    ps3
  140.  
  141. str4:    call    at        ; start standout string
  142.     db    9,40
  143.     inc    hl
  144.  
  145. ps4:    ld    a,(hl)
  146.     cp    0
  147.     jr    z,str5    
  148.     call    pa2hc
  149.     inc    hl
  150.     jr    ps4
  151.  
  152. str5:    call    at        ; end standout string
  153.     db    10,40
  154.     inc    hl
  155.  
  156. ps5:    ld    a,(hl)
  157.     cp    0
  158.     jr    z,str6    
  159.     call    pa2hc
  160.     inc    hl
  161.     jr    ps5    
  162.  
  163. str6:    call    at        ; terminal initialization string
  164.     db    11,40
  165.     inc    hl
  166.  
  167. ps6:    ld    a,(hl)
  168.     cp    0
  169.     jr    z,str7    
  170.     call    pa2hc
  171.     inc    hl
  172.     jr    ps6    
  173.  
  174. str7:    call    at        ; terminal de-initialization string
  175.     db    12,40
  176.     inc    hl
  177.  
  178. ps7:    ld    a,(hl)
  179.     cp    0
  180.     jr    z,prex    
  181.     call    pa2hc
  182.     inc    hl
  183.     jr    ps7    
  184.  
  185. byte:    ld    bc,tbuf
  186.     sbc    hl,bc
  187.     ld    a,l
  188.     ld    hl,172fh
  189.     call    gotoxy
  190.     call    padc
  191.  
  192. prex:    pop    hl        ; restore HL
  193.     call    stndout
  194.     ret
  195.  
  196. ; Internal Subroutines
  197.  
  198. cdata:    call    at
  199.     db    3,17
  200.     ld    hl,bstr16
  201.     call    epstr
  202.  
  203.     call    at
  204.     db    3,65
  205.     call    ereol
  206.  
  207.     call    at
  208.     db    6,7 
  209.     ld    hl,bstr2
  210.     call    epstr
  211.     
  212.     call    at
  213.     db    7,7 
  214.     ld    hl,bstr2
  215.     call    epstr
  216.     
  217.     call    at
  218.     db    6,18
  219.     ld    hl,bstr2
  220.     call    epstr
  221.  
  222.     call    at
  223.     db    7,18
  224.     ld    hl,bstr2
  225.     call    epstr
  226.  
  227.     call    at
  228.     db    10,18
  229.     ld    hl,bstr2
  230.     call    epstr
  231.  
  232.     call    at
  233.     db    11,18
  234.     ld    hl,bstr2
  235.     call    epstr
  236.     
  237.     call    at
  238.     db    12,18
  239.     ld    hl,bstr2
  240.     call    epstr
  241.  
  242.     call    at
  243.     db    6,40
  244.     call    ereol
  245.     
  246.     call    at
  247.     db    7,40 
  248.     call    ereol
  249.  
  250.     call    at
  251.     db    8,40 
  252.     call    ereol
  253.  
  254.     call    at
  255.     db    9,40 
  256.     call    ereol
  257.     
  258.     call    at    
  259.     db    10,40
  260.     call    ereol
  261.  
  262.     call    at
  263.     db    11,40
  264.     call    ereol
  265.  
  266.     call    at
  267.     db    12,40
  268.     call    ereol
  269.  
  270.     ret
  271.  
  272. ; blank strings
  273.  
  274. bstr2:    db    '  ',0
  275. bstr16:    db    '                ',0
  276.  
  277.