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 / PMNETWRK / COLUMBIA.ASM < prev    next >
Assembly Source File  |  2000-06-30  |  4KB  |  169 lines

  1.     TITLE    'POOR MANS NETWORK ** COLUMBIA M64 OVERLAY'
  2. ;
  3. ; Last updated 15 Apr 87   v1.0   Jim Lill
  4. ;
  5. NETBIOS     EQU    2000H
  6. OFFSET     EQU    0F00H        ;DISPL TO DRIVERS
  7. ;
  8. TRUE     EQU    0FFH
  9. FALSE     EQU    0
  10. CR     EQU    13
  11. ;
  12.      ORG    107H
  13. ;
  14. ; MODEM COMMANDS (NOT USED IN THIS VERSION)
  15. ;
  16. MATTNCDS DB    'A','T',0,0,0,0,0,0,0,0    ;ATTENTION
  17. MINTRCDS DB    '+','+','+',0,0,0,0,0,0,0 ;INTERRUPT
  18. MDIALCDS DB    'D',0,0,0,0,0,0,0,0,0    ;DIAL A NO
  19. MHANGCDS DB    'H','0',0,0,0,0,0,0,0,0    ;HANG UP LINE
  20. MINITCDS DB    'E0',CR        ;INITIALIZATION
  21.      DB    'F1',CR        ;(40 BYTES TOTAL)
  22.       DB    'Q0',CR
  23.       DB    'V1',CR
  24.       DB     'X1',CR
  25.       DB    'S0=0',CR
  26.       DB    'S7=15',CR
  27.      DB    0,0,0,0,0,0,0,0,0,0,0,0,0,0
  28. ;
  29. BAUDRATE EQU    $        ;BAUD RATE TABLE
  30.       DW    40H        ;300
  31.      DW    60H        ;600
  32.      DW    70H        ;1200
  33.      DW    0        ;1800
  34.      DW    78H        ;2400
  35.      DW    0        ;3600
  36.      DW    7CH        ;4800
  37.      DW    0        ;7200
  38.      DW    7EH        ;9600 
  39.      DW    7FH        ;19200
  40.      DW    0        ;38400
  41. ;
  42. ERRMARK     DB    '!'        ;ERROR MARKER
  43. COMPUTER DB    '    Columbia M64 "Shoebox"    ',CR
  44. ;                .........1.........2.........3  30 bytes
  45.      PAGE
  46.      ORG    NETBIOS+31BH
  47. ;
  48. SCRNSIZE DB    24        ;LINES ON SCREEN
  49. SCRNWID     DB    80        ;WIDTH OF SCREEN
  50. CLRLINE     DB    1,14,0,0,0,0,0,0,0,0    ;CLEAR TO EOL
  51. DIRCURSR DB    2,27,'=',0,0,0,0,0,0,0    ;DIRECT CURSOR ADDR
  52. MIDCURSR DB    0,0,0,0,0,0,0,0,0,0    ;MIDDLE STRING
  53. ENDCURSR DB    0,0,0,0,0,0,0,0,0,0    ;ENDING STRING
  54. VOFFSET     DB    32        ;CURSOR ADDR OFFSET
  55. CURSRTYP DB    0        ;0=Y,X; 1=X,Y
  56. ASCCURSR DB    0        ;ASCII CURSOR ADDR
  57. VDELAY     DB    0        ;CURS ADDR DELAY
  58. REVVIDEO DB    1,1,0,0,0,0,0,0,0,0    ;REVERSE VIDEO
  59. NORVIDEO DB    1,2,0,0,0,0,0,0,0,0    ;NORMAL VIDEO
  60. SAVECPOS DB    0,0,0,0,0,0,0,0,0,0    ;SAVE CURSR POSN
  61. RSTRCPOS DB    0,0,0,0,0,0,0,0,0,0    ;RESTORE CURSR POSN
  62. MSGLINE     DB    0    ;WHERE TO PUT MESSAGE
  63. ;
  64.  
  65.      ORG    NETBIOS+61CH
  66. ;
  67. SYSTEMID DB    3    ;THIS SYSTEM ID    
  68. FASTCLK     DB    TRUE    ;4MHZ OR BETTER
  69. MSGKEY     DB    1CH,0,0,0 ;MSG KEY SEQUENCE
  70. RELOC     DW    0    ;WHERE TO PUT NETBIOS    
  71.      DS    8    ;reserved
  72. ;
  73. PORTSTAT EQU    59H    ;PORT 1 STATUS
  74. MPORT     EQU    58H    ;PORT 1 DATA
  75. PORTCTL     EQU    59H    ;PORT 1 CONTROL
  76. PORTBAUD EQU    80H    ;PORT 1 BAUD RATE
  77. ;
  78. ; USART CONTROL BYTES
  79. ;
  80. USART1     DB    80H        ;GET USART'S ATTN
  81. USART2     DB    40H        ;SOFTWARE RESET
  82. FINALBIT DB     37H        ;ENABLE XMIT
  83. FIXED     DB    02H        ;USART CONSTANT BITS
  84. ;
  85. PARITY     DB    0        ;PARITY
  86. CHARBITS DB    0CH        ;BITS/CHAR = 8
  87. STOPBITS DB    0C0H        ;STOP BITS = 2
  88. RATEBAUD DW    7FH        ;DEFAULT BAUD RATE 
  89. ;
  90.     TITLE 'COLUMBIA DRIVERS'
  91.  
  92.     ORG    NETBIOS+OFFSET
  93. ;
  94. DRIVERS     EQU    $        ;VECTOR TABLE
  95. ANYEXT   JMP     DR$ANYEXT
  96. INEXT    JMP     DR$INEXT
  97. EXTRDY   JMP     DR$EXTRDY
  98. OUTEXT   JMP     DR$OUTEXT
  99. RESETEXT JMP     DR$RESETEXT
  100. ACTIVITY RET    ! NOP ! NOP
  101. PRTRBUSY RET    ! NOP ! NOP
  102. ;
  103. ; COLUMBIA I/O ROUTINES
  104. ;
  105. ;
  106. ; CHECK IF BYTE AT MODEM
  107. ; Z set if byte available.
  108. ; May use registers A, B, C.
  109. ;
  110. DR$ANYEXT IN     PORTSTAT    ;PORT STATUS
  111.     XRI     2        ;MAKE LOW TRUE
  112.     ANI     2        ;DATA AVAIL?
  113.     RET
  114. ;
  115. ; GET BYTE FROM MODEM
  116. ; May use registers A, B, C.
  117. ;
  118. DR$INEXT IN     MPORT        ;DATA PORT 
  119.      RET
  120. ;
  121. ; CHECK IF MODEM PORT READY TO XMIT
  122. ; Z set if so.
  123. ; May use registers A, B, C.
  124. ;
  125. DR$EXTRDY IN     PORTSTAT    ;STATUS PORT
  126.       XRI     1
  127.       ANI     1        ;TBE?
  128.       RET
  129. ;
  130. ; SEND BYTE TO MODEM
  131. ; May use registers A, B, C.
  132. ;
  133. DR$OUTEXT OUT    MPORT
  134.      RET
  135. ;
  136. ;
  137. ; INITIALIZE USART, ENABLE XMIT
  138. ;
  139. DR$RESETEXT:
  140.     LDA    USART1
  141.     OUT     PORTCTL        ;GET USART'S ATTN
  142.     OUT    PORTCTL
  143.     OUT    PORTCTL
  144. ;
  145.     LDA     USART2         ;SOFTWARE RESET
  146.     OUT    PORTCTL
  147. ;
  148.      LDA     PARITY         ;PARITY
  149.      MOV     B,A         ;INTO B
  150.      LDA     CHARBITS     ;NUM DATA BITS
  151.      ORA     B         ;COMBINE THEM
  152.      MOV     B,A         ;SAVE IN B
  153.      LDA     STOPBITS     ;NUM STOP BITS
  154.      ORA     B         ;COMBINE THEM
  155.      MOV     B,A         ;SAVE IN B
  156.      LDA     FIXED         ;CONSTANT BITS
  157.      ORA     B        ;COMBINE THEM
  158.      OUT    PORTCTL     ;SEND MODE INSTR
  159. ;
  160.     LDA    FINALBIT
  161.     OUT    PORTCTL        ;ENABLE XMIT
  162. ;
  163. ;    LDA     RATEBAUD
  164. ;    OUT    PORTBAUD
  165.     RET
  166. ;
  167.     END
  168.