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 / BEEHIVE / COMMS / YAMBEE.ARC / BEELIB.CSM < prev    next >
Text File  |  1990-09-20  |  2KB  |  113 lines

  1. ;
  2. ; Beelib MICROBEE machine language functions for YAM.
  3. ; Written by Bob Logan   12-Feb-85
  4. ; These functions were given to public domain for the good of all.
  5. ; Please report any bugs or improvments to me by personal message on
  6. ; Tesseract RCPM.
  7.  
  8.     include bds.lib
  9.  
  10. DELY:    equ    139    ;1 m/s delay on a MICROBEE at 3.375Mhz
  11. ; function to delay for 1 m/s on a Microbee WITHOUT checking keyboard
  12.     FUNCTION    milibee
  13.     call    ma1toh        ;get number of milisecs
  14.     inx    h
  15. sl5:    dcx    h
  16.     mov    a,h
  17.     ora    l
  18.     jnz    sl5a        ;still more delay
  19.     ret
  20.  
  21. sl5a:    lxi    d,DELY
  22. sl6:    dcx    d
  23.     mov    a,d
  24.     ora    e
  25.     jnz    sl6
  26.     jmp    sl5
  27.     ENDFUNC
  28.  
  29.  
  30. SET3:    equ    0E045h        ;location of set 300 baud routine
  31. ; set 300 baud on bee  lobaud()
  32.     FUNCTION    lobaud
  33.     push     b
  34.     call    SET3        ; Rset_300
  35.     pop    b
  36.     ret
  37.     ENDFUNC
  38.  
  39.  
  40. SET12:    equ    0E048h        ;location of set 1200 baud routine
  41. ; set 1200 baud on bee  hibaud()
  42.     FUNCTION    hibaud
  43.     push     b
  44.     call    SET12        ; Rset_1200
  45.     pop    b
  46.     ret
  47.     ENDFUNC
  48.  
  49.  
  50. PIOBD:    equ    2h        ; PIO location in bee
  51. ; set DTR line for putting modem on line  onbee()
  52.     FUNCTION    onbee
  53.     in    PIOBD
  54.     db    0cbh,0d7h    ;simulate (set    2,a)
  55.     out    PIOBD
  56.     ret
  57.     ENDFUNC
  58.  
  59.  
  60. ; set DTR line for putting modem on line  offbee()
  61.     FUNCTION    offbee
  62.     in    PIOBD
  63.     db    0cbh,97h    ;simulate (res    2,a)
  64.     out    PIOBD
  65.     ret
  66.     ENDFUNC
  67.  
  68.  
  69. PTRLOC:    equ    0DF68h        ;location of first queue pointer
  70. ; check if char is available from RS232 queue on bee  miready()
  71.     FUNCTION    miready
  72.     xra    a        ;reset z flag
  73.     lhld    PTRLOC + 2    ;get second pointer contents
  74.     lda    PTRLOC        ;first part of 1st pointer contents
  75.     cmp    l
  76.     jnz    chready
  77.     lda    PTRLOC + 1    ;2nd part of 1st pointer contents
  78.     cmp    h
  79.     jnz    chready
  80.     lxi    h,0000h        ;return false = no char available
  81.     ret
  82.  
  83. chready:lxi    h,0101h        ;return true if pointers differ
  84.     ret            ;cause there's a char waiting
  85.     ENDFUNC
  86.  
  87.  
  88. RSIN:    equ    0E030h        ;location of input routine
  89. ; get char from RS232 queue on bee  beein()
  90.     FUNCTION    beein
  91.     push     b
  92.     call    RSIN        ; RS_IN
  93.     mov    l,a
  94.     mvi    h,0
  95.     pop    b
  96.     ret
  97.     ENDFUNC
  98.  
  99.  
  100. RSOUT:    equ    0E04Bh        ;location of output routine
  101. ; output char to RS232 port on bee  beeout(char)
  102.     FUNCTION    beeout
  103.     call    ma1toh        ; ma1toh places the char in both A & HL
  104.     push    b
  105.     call    RSOUT        ; RS_out
  106.     pop    b
  107.     ret
  108.     ENDFUNC
  109.  
  110. ;end of file
  111.  
  112.  
  113.