home *** CD-ROM | disk | FTP | other *** search
-
-
- ; 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
-