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 / BSTAM / BSTAMD.ASM < prev    next >
Assembly Source File  |  2000-06-30  |  3KB  |  109 lines

  1.  
  2.  
  3.  
  4. ;HP125 DRIVER ROUTINE FOR BSTAM PROGRAM
  5.  
  6. ;  USING DATACOMM PORT #1;
  7. ;  HP 125 TERMINAL DATACOM #1 SHOULD BE SET UP AS FOLLOWS --
  8.  
  9. ;    Remote To: Port 1
  10.  
  11. ;    BaudRate 1200 (or less)    Parity NONE (0)
  12.  
  13. ;    Straps   xy                Hndsk etx
  14.  
  15.  
  16. ;  DATACOM PORT #2 DOES NOT ALLOW 8 BIT COMMUNICATION AND CAN THEREFORE
  17. ;  NOT BE USED FOR BSTAM.
  18.  
  19. BEGIN    ORG   103H
  20. INITIL   JMP   INITIU         ;UART/USART INITIALIZATION ENTRY POINT
  21. INSPORT  JMP   INSPRU         ;STATUS PORT READ ENTRY POINT
  22. ERRSET   JMP   ERRSTU         ;UART/USART ERROR RESET ENTRY POINT
  23. INPORT   JMP   INPRTU         ;READ DATA PORT ENTRY POINT
  24. OUTPORT  JMP   OUTPRU         ;WRITE DATA PORT ENTRY POINT
  25. ;
  26. ESC      EQU   27       ; CONTROL ESCAPE
  27. ;
  28. ;
  29. INITIU   EQU   $
  30. ;
  31.          CALL  SIGNON   ; SEND SIGNON MESSAGE AND MAP DC PORT TO
  32. ;                       ; PUNCH AND READER.
  33.          LXI   B,73FFH  ; GET HPDOS 8 BIT DATACOM MODE FUNCTION
  34.          CALL  5        ; SET 8 BIT DATACOM MODE
  35.          RET            ; RETURN TO BSTAM
  36. ;
  37. ;
  38. ;
  39. ;
  40. INSPRU   EQU   $
  41. ;
  42.          LXI   B,70FFH  ; SET FOR HPDOS READER STATUS FUNCTION
  43.          CALL  5        ; GO GET READER STATUS
  44.          ORA   A        ; IS A BYTE READY?
  45.          MVI   A,5      ; DEFAULT TO YES
  46.          RZ             ; RETURN IN HPDOS READER STATIS IS 0
  47. ;
  48.          MVI   A,7      ; SET STATUS TO NO CHARACTER
  49.          RET            ; RETURN TO CALLING PROGRAM
  50. ;
  51. ;
  52. ;
  53. ERRSTU   EQU   $
  54. ;
  55.          RET
  56. ;
  57. ;
  58. ;
  59. INPRTU   EQU   $
  60. ;                     THIS IS THE READ DATA ROUTINE.
  61. ;                     BEFORE THIS ROUTINE IS ENTERED THE 02 BIT OF
  62. ;                     STATUS READ ROUTINE MUST HAVE BEEN SET.
  63. ;                     DO NOT CLEAR THE 80 BIT FROM THE DATA INPUT PORT.
  64. ;                     RETURN WITH REGISTER A LOADED WITH INPUT DATA.
  65. ;
  66. ;
  67. ;
  68.          CALL  0E215H   ; GO PERFORM A DIRECT BIOS READER INPUT CALL
  69.          MOV   A,B      ; PLACE THE 8 BIT INPUT INTO THE A REGISTER
  70.          RET            ; GO BACK TO BSTAM
  71. ;
  72. ;
  73. ;
  74. OUTPRU   EQU   $
  75. ;                     THIS IS THE WRITE DATA PORT ROUTINE.
  76. ;                     BEFORE THIS ROUTINE IS ENTERED THE 04 BIT AND 01
  77. ;                     BIT OF STATUS READ MUST BE SET.
  78. ;                     DO NOT CLEAR THE 80 BIT FROM THE DATA OUTPUT PORT.
  79. ;                     REGISTER A CONTAINS THE OUTPUT DATA.
  80. ;
  81.          MOV   C,A      ; GET THE OUTPUT CHARACTER
  82.          CALL  0E212H   ; PERFORM A DIRECT BIOS PUNCH OUTPUT CALL
  83.          RET            ; RETURN TO BSTAM
  84. ;
  85. ;
  86. ;
  87. MESSAGE: DB    0DH,0AH,0DH,0AH
  88.          DB    'HP 125 Revision Q1.0',0DH,0AH
  89. ;
  90. ;        ESCAPE SEQUENCE TO MAP DATACOMM PORT #1 TO PUNCH AND READER
  91. ;
  92. ;
  93. ;
  94.         DB    ESC,'&i0s25d2M',ESC,'&i10s16d2M$'
  95. ;
  96. ;
  97. SIGNON:  PUSH  B
  98.          PUSH  D
  99.          PUSH  H
  100.          LXI   D,MESSAGE
  101.          MVI   C,9
  102.          CALL  5         ;ANNOUNCE VERSION TO USER
  103.          POP   H
  104.          POP   D
  105.          POP   B
  106.          RET
  107. ;
  108.          END
  109.