home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
CP/M
/
CPM_CDROM.iso
/
simtel
/
sigm
/
vols000
/
vol017
/
mnovrlay.asm
< prev
next >
Wrap
Assembly Source File
|
1984-04-29
|
3KB
|
112 lines
; OVERLAY FOR CP/M VERSION OF MICRONET EXECUTIVE
TRUE EQU 0FFFFH ; DEFINE TRUE
FALSE EQU NOT TRUE ; DEFINE FALSE
BBASE: EQU 0000H ; "PAGE 0" ADDRESS
TBASE: EQU BBASE+100H ; TRANSIENT PROGRAM AREA
OVLOC: EQU BBASE+0A00H ; WHERE THE OVERLAY GOES
; ************************************************************
; ************************************************************
; THIS BEGINS THE SECTION THAT MUST BE MODIFIED
; TO YOUR PARTICULAR SYSTEM. THE FIRST THING YOU
; SHOULD DO IS PUT YOUR SYSTEM IDENTIFICATION INTO
; THE PROGRAM. TO DO THIS, CHANGE THE 'IMSAI 8080'
; IN THE STATEMENT LABELED "SYSID:" TO WHATEVER
; TYPE OF SYSTEM YOU HAVE. NOTE THAT "SYSID:" CAN
; BE NO LONGER THAN 23 CHARACTERS AND THE LAST
; CHARACTER MUST BE A 00 BYTE.
; ------------------------------------------------------------
; THESE ARE THE PORT ADDRESSES USED FOR THE MODEM.
CTL EQU 001H ; MODEM STATUS (CONTROL) PORT
SIO EQU 000H ; MODEM DATA PORT
; ------------------------------------------------------------
; THESE ARE THE MODEM PORT STATUS FLAG MASKS
SIOIR EQU 02H ; MODEM PORT INPUT DATA READY FLAG
SIOTR EQU 01H ; MODEM PORT TRANSMITTER READY FLAG
; ------------------------------------------------------------
; THIS IS SET TO FALSE IF YOUR MODEM PORT READY FLAGS
; ARE ACTIVE LOW. (ZERO IMPLIES READY)
RDYHI EQU TRUE ; TRUE IF UART READY FLAGS ARE
; ACTIVE HIGH (1=READY). FALSE
; IF FLAGS ARE ACTIVE LOW (0=READY).
; THIS ENDS THE SECTION THAT MUST BE
; MODIFIED TO YOUR PARTICULAR SYSTEM
; UNLESS YOU NEED UART INITIALIZATION.
; IF YOU DO NEED TO INITAILIZE YOUR
; MODEM UART, CHANGE "SIOINI:" (AT THE
; END OF THIS PROGRAM) TO SET UP YOUR
; UART TO USE 8 DATA BITS, NO PARITY
; AND 1 STOP BIT.
; ************************************************************
; ************************************************************
RDYLO EQU NOT RDYHI
ORG TBASE+3 ; OVERLAY TRANSFER VECTOR AND ID STRING
INISIO: JMP SIOINI ; INITIALIZE MODEM UART
GETSIO: JMP SIOGET ; GET CHAR FROM MODEM UART
PUTSIO: JMP SIOPUT ; PUT A CHAR TO MODEM UART
SYSID: DB 'Z-80 Homebrew',0 ; IDENTIFIES YOUR SYSTEM
; MAXIMUM LENGTH IS 23 CHARACTERS.
; LAST CHARACTER MUST BE A 00
ORG OVLOC ; MOVE BEYOND EXEC FOR MODEM PORT I/O ROUTINES
; THIS ROUTINE INPUTS A CHARACTER FROM THE MODEM'S UART (OR USART)
SIOGET: IN CTL ; GET MIO STATUS FLAGS
ANI SIOIR ; ISOLATE INPUT READY FLAG
IF RDYLO ; INVERT IF ACTIVE LOW
XRI SIOIR ; INVERT IT
ENDIF
RZ ; RETURN IF Z = 1
IN SIO ; ELSE GET MODEM CHARACTER
RET ; AND RETURN (Z FLAG = 0)
; THIS ROUTINE OUTPUT CONTENTS OF A TO THE MODEM'S UART
SIOPUT: PUSH PSW ; WRITE (A) TO SIO
PUTSI1: IN CTL ; WAIT FOR FLAG TO = 0
ANI SIOTR
IF RDYLO ; SENSE OF JUMP
JNZ PUTSI1
ENDIF
IF RDYHI ; SENSE OF JUMP
JZ PUTSI1
ENDIF
POP PSW
OUT SIO
RET
; THIS ROUTINE INITIALIZES THE MODEM UART FOR OPERATION
SIOINI: RET ; INITILIZE MODEM UART HERE
; IF UART NEEDS IT
; 8 DATA BITS
; NO PARITY
; 1 STOP BIT
END