home *** CD-ROM | disk | FTP | other *** search
- ;
- ;BSTAM 4.6 UHSIO4.ASM NORTH STAR HSIO-4
- ;
- ;Modification written by Robb Adams (WA9ZMO/8)
- ;6354 North Twelth Street, Kalamazoo, MI 49009
- ;
- ;10-Oct-82 This version will adapt the North Star
- ;HSIO-4 I/O Board to BSTAM. The user need only make
- ;three modifications if desired;
- ;
- ; BOARD ADDR - PORT ADDR - BAUD RATE
- ;
- ;----------------------------------------------------------
- BEGIN ORG 103H
- INITIL JMP INITIU ;INITIALATION ENTRY POINT
- INSPORT JMP INSPRU ;STATUS PORT READ ENTRY POINT
- ERRSET JMP ERRSTU ;ERROR RESET ENTRY POINT
- INPORT JMP INPRTU ;READ DATA PORT ENTRY POINT
- OUTPORT JMP OUTPRU ;WRITE DATA PORT ENTRY POINT
- DUART JMP DUARTU
- DUARTU RET
- ;----------------------------------------------------------
- BDOS EQU 05H ;
- CR EQU 0AH ;CARRIAGE RETURN
- LF EQU 0DH ;LINE FEED
- ;----------------------------------------------------------
- PA EQU 00H ;PORT A
- PB EQU 04H ;PORT B
- PC EQU 08H ;PORT C
- PD EQU 0CH ;PORT D
- ;----------------------------------------------------------
- B19200 EQU 00H ;-- BAUD RATES FOLLOW --
- B9600 EQU 01H
- B4800 EQU 02H
- B2400 EQU 03H
- B1200 EQU 04H
- B600 EQU 05H
- B300 EQU 06H
- B110 EQU 07H
- ;----------------------------------------------------------
- BAS EQU 10H ;<- CHANGE BOARD ADDRESS HERE
- PAD EQU PD ;<- CHANGE PORT ADDRESS HERE
- BAUD EQU B300 ;<- CHANGE BAUD RATE HERE
- ;----------------------------------------------------------
- PORT EQU BAS+PAD ;ADDRESS OF CHOSEN PORT
- STATPT EQU PORT+3 ;STATUS PORT
- DATAPT EQU PORT+2 ;DATA PORT
- INTRPT EQU PORT+1 ;INTERRUPT PORT
- BAUDPT EQU PORT+0 ;BAUD PORT
- ;----------------------------------------------------------
- MI EQU 4EH ;1 STOP,8 DATA
- CI EQU 37H ;ERROR RESET AND CHIP ENABLE
- ERSET EQU 37H ;ERROR RESET AND CHIP ENABLE
- ;----------------------------------------------------------
- INITIU EQU $
-
- ;THIS IS THE UART/USART INITIALATION ROUTINE.
- ;
- ;TO BE COMPATIBLE WITH MOST BSTAM USERS USE FOLLOWING
- ;INITIALATION GUIDE LINES:
- ;
- ;1. USE 1 STOP BIT (OPTIONAL - 2)
- ;2. USE 8 DATA BITS (MUST)
- ;3. USE 1 START BIT (MUST)
- ;4. USE 16X FOR CLOCK RATE (MUST)
- ;5. USE ASYNCHRONOUS MODE ONLY (MUST)
-
- MVI A,B300 ;<- CHANGE BAUD RATE HERE
- OUT BAUDPT
- CALL SIGN
- MVI A,03H
- CALL NOOP
- CALL NOOP
- MVI A,040H ;RESET 8251
- CALL NOOP
- MVI A,MI ;SEND MODE COMMAND
- CALL NOOP
- MVI A,CI ;ENABLE AND RESET ERRORS (FE,OE,PE)
- CALL NOOP
- IN DATAPT ;CLEAR BUFFER
- IN DATAPT ;... TWICE
- RET ;RETURN TO BSTAM
-
- NOOP: OUT STATPT
- NOP ! NOP ! NOP
- NOP ! NOP ! NOP
- RET
-
- INSPRU EQU $
-
- ;THIS IS THE STATUS READ PORT ROUTINE.
- ;WHEN EXITING THIS ROUTINE BSTAM EXPECTS IN REGISTER A
- ;THE FOLLOWING BITS TO BE SET IF NEEDED:
- ;
- ;1. 02 BIT SET IF RECEIVER READY
- ;2. 01 BIT SET IF TRANSMITTER READY
-
- IN STATPT ;FROM 8251 STATUS PORT
- RET ;RETURN TO BSTAM
-
- ERRSTU EQU $
-
- ;THIS IS THE ERROR RESET FOR UART/USART ROUTINE.
- ;YOUR UART/USART MAY NOT NEED TO BE RESET IF FRAMING,
- ;OVERRUN, OR PARITY ERROR IS FOUND. IF THIS IS YOUR
- ;CASE, JUST DO A RETURN.
-
- MVI A,ERSET ;RESET ERRORS
- OUT STATPT ;TO STATUS PORT
- RET ;RETURN TO BSTAM
-
- INPRTU EQU $
-
- ;THIS IS THE READ DATA PORT ROUTINE.
-
- IN DATAPT ;GET DATA FROM PORT
- RET ;RETURN TO BSTAM
-
- OUTPRU EQU $
-
- ;THIS IS THE WRITE DATA PORT ROUTINE.
-
- OUT DATAPT ;SEND DATA TO REMOTE CPU
- RET ;RETURN TO BSTAM
-
- MSGE: DB CR,LF,CR,LF
- DB 'Version: North Star HSIO-4 11-Oct-82'
- DB CR,LF
- DB 'Baud: 300 Port: D by Robb Adams'
- DB CR,LF,LF,'$'
-
- SIGN: PUSH B ! PUSH D ! PUSH H
- LXI D,MSGE
- MVI C,9
- CALL BDOS
- POP H ! POP D ! POP B
- RET
- END BEGIN