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
/
UMORROW.ASM
< prev
next >
Wrap
Assembly Source File
|
2000-06-30
|
4KB
|
142 lines
;----------------------------------------------------------
;
;BSTAM Driver for the Morrow Decision I or MULTI/IO board
; ( This routine will work with BSTAM through V4.6)
; written by: Robert E. A. Adams, WA9ZMO 25-Dec-82
;
; NOTE: To locate the GROUP address use DDT to see
; the second and third bytes of CONIN. In my system
; it was '3A E3' or '0E33AH'.
;
;----------------------------------------------------------
;
FALSE EQU 0
TRUE EQU NOT FALSE
INITIAL EQU TRUE ;TRUE FOR PORT/BAUD INITIALIZATION
;FALSE IF NO INITILIALIZATION REQ'D
;----------------------------------------------------------
;
BEGIN ORG 103H
INITIL JMP INITIU ;UART INITIALIZATION ENTRY POINT
INSPORT JMP INSPRU ;STATUS PORT READ ENTRY POINT
ERRSET JMP ERRSTU ;UART ERROR RESET ENTRY POINT
INPORT JMP INPRTU ;READ DATA PORT ENTRY POINT
OUTPORT JMP OUTPRU ;WRITE DATA PORT ENTRY POINT
DUART JMP DUARTU ;DUMMY ROUTINE
DUARTU EQU $
RET ;DO A RETURN HERE UNLESS YOU WISH
;TO ADD AN ADDITIONAL ROUTINE
;
;----------------------------------------------------------
GROUP EQU 0E33AH ;YOU WILL HAVE TO CHECK YOUR BIOS
;FOR YOUR VALUE
DEVICE EQU 2 ;SERIAL PORT P2 SPECIFIED HERE
PORT EQU 48H ;ADDRESS OF DECISION & MULTI/IO
;
;----------------------------------------------------------
;
PREPARE EQU $
PUSH H ;THIS ROUTINE INFORMS THE PIC
PUSH PSW ;AS TO WHICH 8250 PORT YOU ARE
LDA GROUP ;ABOUT TO I/O... IT MUST BE
ORI DEVICE ;CALLED EACH TIME YOU DO AN 'IN'
OUT PORT+7 ;OR AN 'OUT'
POP PSW ;
POP H ;
RET ;RETURN TO THE ROUTINE
;
;----------------------------------------------------------
;PORT INITIALIZATION ROUTINE
;
INITIU EQU $
CALL SIGNON
IF INITIAL
;
;BAUD RATE DIVISORS FOR 8250'S
;
B110 EQU 1047
B300 EQU 384
B600 EQU 192
B1200 EQU 96
B2400 EQU 48
B4800 EQU 24
B9600 EQU 12
;
PUSH H ! PUSH D ! PUSH B
LXI H,B300 ;GET BAUD RATE
LDA GROUP
ORI DEVICE
OUT PORT+7
MVI A,83H
OUT PORT+3
MOV A,L
OUT PORT+0
MOV A,H
OUT PORT+1
MVI A,3
OUT PORT+3
OUT PORT+4
POP B ! POP D ! POP H
ENDIF ;INITIAL
;
RET ;RETURN TO BSTAM
;
;----------------------------------------------------------
; STATUS INPUT ROUTINE
;
INSPRU EQU $
CALL PREPARE ;INFORM THE PIC
IN PORT+5
ANI 21H
PUSH B
RLC
MOV B,A
RLC
RLC
ORA B
POP B
ANI 3
ORI 4
RET ;RETURN TO BSTAM
;
;----------------------------------------------------------
;ERROR RESET ROUTINE
;
ERRSTU EQU $
CALL PREPARE ;INFORM THE PIC
RET ;RETURN TO BSTAM
;
;----------------------------------------------------------
;INPUT ROUTINE
;
INPRTU EQU $
CALL PREPARE ;INFORM THE PIC
IN PORT+0 ;GET DATA FROM PORT
RET ;RETURN TO BSTAM
;
;----------------------------------------------------------
;OUTPUT ROUTINE
;
OUTPRU EQU $
CALL PREPARE ;INFORM THE PIC
OUT PORT+0 ;SEND DATA TO REMOTE CPU
RET ;RETURN TO BSTAM
;
;----------------------------------------------------------
MESSGE: DB 13,10,10
DB 'Version for Morrow Decision or Multi/IO'
DB 13,10
DB 'Serial Port P2 25-Dec-82 by Robb Adams'
DB 13,10,7,'$'
;
SIGNON: PUSH B ! PUSH D ! PUSH H
LXI D,MESSGE
MVI C,9
CALL 0005 ;ANOUNCE VERSION TO USER
POP H ! POP D ! POP B
RET ;RETURN TO BSTAM
;
;----------------------------------------------------------
END BEGIN