home *** CD-ROM | disk | FTP | other *** search
- ;USER AREA FOR BSTAM FOR TELEVIDEO TS-802 COMPUTER.
- ;WRITTEN BY KEITH PETERSEN, W8SDZ - 5/9/82
- ;
- ;BASED ON GENERALIZED INFORMATION SUPPLIED BY BYROM SOFTWARE.
- ;
- ;THIS VERSION WORKS WITH THE PRINTER PORT
- ;
- PSTAT EQU 23H ;PRINTER STATUS PORT
- PDATA EQU 21H ;PRINTER DATA PORT
- ;
- ; IF YOU WISH TO USE OTHER REGISTERS SUCH AS HL,BC,DE
- ; (NOT INCLUDING SP REGISTER)
- ; BE SURE TO PUSH BSTAM'S REGISTERS ON TO STACK AND POP
- ; THEM BACK OFF BEFORE RETURNING TO BSTAM.
- ; THERE IS AMPLE ROOM TO PUSH ALL REGISTERS ONTO BSTAM'S
- ; STACK, PLUS ROOM FOR 10 LEVELS OF CALL'S.
- ;
- ; THERE ARE 300 BYTES OF USER SPACE AVAILABLE TO YOU.
- ;
- ; THE JUMP'S CODED AT THE BEGINNING OF THIS PROGRAM
- ; CANNOT BE MOVED IN ANY WAY.
- ;
- BEGIN ORG 103H
- INITIL JMP INITIU ;UART/USART INITIALATION ENTRY POINT
- INSPORT JMP INSPRU ;STATUS PORT READ ENTRY POINT
- ERRSET JMP ERRSTU ;UART/USART ERROR RESET ENTRY POINT
- INPORT JMP INPRTU ;READ DATA PORT ENTRY POINT
- OUTPORT JMP OUTPRTU ;WRITE DATA PORT ENTRY POINT
- ;
- ;
- 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)
- ;
- ;
- CALL SIGNON ;TELL USER WHAT'S IMPLEMENTED
- IN PDATA ;CLEAR INPUT OF CHARS.
- IN PDATA ;AGAIN TO MAKE SURE
- RET ;RETURN TO BSTAM
- ;
- 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. 20 BIT SET IF FRAMING ERROR
- ; 2. 10 BIT SET IF OVERRUN ERROR
- ; 3. 08 BIT SET IF PARITY ERROR
- ; 4. 04 BIT SET IF TRANSMITTER EMPTY
- ; IF YOUR UART/USART DOES NOT HAVE TRANSMITTER
- ; EMPTY FEATURE, THEN ALLWAYS SET THIS BIT ON.
- ; 5. 02 BIT SET IF RECEIVER READY
- ; 6. 01 BIT SET IF TRANSMITTER READY
- ; 7. DO NOT SET THE 80 BIT OR 40 BIT
- ;
- ; OURSTAT TBE=04H
- ; RDA=01H
- ;
- PUSH B
- IN PSTAT ;GET INFO BITS FROM STATUS PORT
- ANI 01H ;ISOLATE RDA BIT
- RLC ;SHIFT TO 02 BIT
- MOV B,A ;SAVE
- IN PSTAT ;GET STATUS AGAIN
- ANI 04H ;ISOLATE TBE BIT
- ORA B ;COMBINE WITH RDA BIT
- ORI 01H ;ADD BOGUS TBE BIT FOR BSTAM
- POP B
- RET
- ;
- 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.
- ;
- RET ;RETURN TO BSTAM
- ;
- INPRTU EQU $
- ; THIS IS THE READ DATA PORT ROUTINE.
- ; BEFORE THIS ROUTINE IS ENTERED THE 02 BIT OF
- ; STATUS READ ROUTINE MUST HAVE BEEN SET.
- ; DO NOT CLEAR THE 80 BIT FROM THE DATA INPUT PORT.
- ; RETURN WITH REGISTER A LOADED WITH INPUT DATA.
- ;
- IN PDATA ;GET DATA FROM PORT
- RET ;RETURN TO BSTAM
- ;
- OUTPRTU EQU $
- ; THIS IS THE WRITE DATA PORT ROUTINE.
- ; BEFORE THIS ROUTINE IS ENTERED THE 04 BIT AND 01 BIT
- ; OF STATUS READ MUST BE SET.
- ; DO NOT CLEAR THE 80 BIT FROM THE DATA OUPDATAUT PORT.
- ; REGISTER A CONTAINS THE OUPDATAUT DATA.
- ;
- OUT PDATA ;SEND DATA TO REMOTE CPU
- RET ;RETURN TO BSTAM
- ;
- MESSGE: DB 0DH,0AH,0DH,0AH
- DB 'VERSION TELEVIDEO MAY 9, 1982',0DH,0AH
- DB 'USING PRINTER PORT',0DH,0AH,'$'
- ;
- SIGNON: PUSH B
- PUSH D
- PUSH H
- LXI D,MESSGE
- MVI C,9
- CALL 5 ;ANOUNCE VERSION TO USER
- POP H
- POP D
- POP B
- RET
- ;
- END BEGIN