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
/
UTELEVID.AQM
/
UTELEVID.ASM
Wrap
Assembly Source File
|
2000-06-30
|
3KB
|
120 lines
;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