home *** CD-ROM | disk | FTP | other *** search
-
-
- ; Intel SBC 80/30 Single board computer I/O equates.
-
- CNIN: EQU 0ECh ;Console input channel
- CNOUT: EQU 0ECh ;Console output channel
- CONSTS: EQU 0EDh ;Console staus channel
-
- TRDY: EQU 001h ;output status mask
- RBR: EQU 002h ;Input staus mask
-
- PIT: EQU 0DEh ;Programmable interval timmer
- ;
- ;
- ;
- ;
- ; C O N S O L S T A T U S
- ;
- ; This routine samples the Console status and returns the
- ; following values in the A register.
- ;
- ; EXIT A = 0 (zero), means no character
- ; currently ready to read.
- ;
- ; A = FFh (255), means character
- ; currently ready to read.
-
- CONST: IN CONSTS ;Input from port
- ANI RBR ;Mask data available
- RZ ;If data not available
- ORI 0FFh
- RET
- ;
- ;
- ;
- ;
- ; C O N S O L I N P U T
- ;
- ; Read the next character into the A register, clearing
- ; the high order bit. If no character currently ready to
- ; read then wait for a character to arrive before returning.
- ;
- ; EXIT A = character read from terminal.
-
- CONIN: IN CONSTS ;get staus
- ANI RBR
- JZ CONIN ;If data not available
- IN CNIN ;Get data byte
- ANI 7Fh
- RET
- ;
- ;
- ;
- ;
- ; C O N S O L O U T P U T
- ;
- ; Send a character to the console. If the console
- ; is not ready to receive a character wait until
- ; the console is ready.
- ;
- ; ENTRY C = ASCII character to output to console.
-
- CONOUT: IN CONSTS ;Get staus byte
- ANI TRDY
- JZ CONOUT ;If transmit buffer not empty
- MOV A,C
- OUT CNOUT
- RET
- ;
- ;
- ;
- ;
- ; P u n c h O u t p u t.
- ;
- ; Send a character to the punch device. If no punch
- ; device exists then immediately return.
- ;
- ; ENTRY C = ASCII character to output.
-
- PUNCH:
- RET
- ;
- ;
- ;
- ;
- ; R e a d e r I n p u t.
- ;
- ; Read the next character from the currently assigned
- ; reader device into the A register.
- ;
- ; EXIT A = character read from the reader device.
-
- READER:
- RET
- ;
- ;
- ;
- ;
- ; L i s t O u t p u t.
- ;
- ; Send a character to the list device. If the list
- ; device is not ready to receive a character wait
- ; until the device is ready.
- ;
- ; ENTRY C = ASCII character to be output.
-
- LIST:
- RET
- ;
- ;
- ;
- ;
- ; L i s t S t a t u s.
- ;
- ; Return the ready status for the list device.
- ;
- ; EXIT A = 0 (zero), list device is not ready to
- ; accept another character.
- ; A = FFh (255), list device is ready to accept
- ; a character.
- ;
- LISTST:
- XRA A ;FORCE LIST NOT READY
- RET
- ;
- ;
- ;
- ; M P / M F U N C T I O N S
- ;
- ;
- ;
- SELMEMORY:
- POLLDEVICE:
- STARTCLOCK:
- STOPCLOCK:
- EXITREGION:
- MAXCONSOLE:
- SYSTEMINIT:
- IDLE:
- RET
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ;
- ; O P T I O N A L N O N - S T A N D A R D F U N C T I O N S
- ;
- ;
- ;
- ;
- ;
- ; S E T S E C T O R C O U N T
- ;
- ; Set the number of continuous sectors to transfer.
- ;
- ; ENTRY C = Number of sectors to transfer.
- ;
- ; EXIT NUMSEC = C
-
- SETNUM:
- MOV A,C
- STA NUMSEC
- RET
- ;
- ;
- ;
- ;
- ; S E T E X T E N D E D B A N K
- ;
- ; Set the extended bank data tranfer address.
- ;
- ; ENTRY C = Extended address bank.
- ;
- ; EXIT DMAADE = C.
-
- SETXAD:
- MOV A,C
- STA DMAADE
- RET
- ;
- ;
- ;
- ; COLD boot initialization
- ;
- ;Note: The label URINIT defines the beginning of data storage.
- ;
- URINIT: MVI A,0B6h ;Set PIT for 9600 baud
- OUT PIT+1
- MVI A,008h
- OUT PIT+0
- MVI A,00
- OUT PIT+0
- MVI A,04Eh ;Setup serial port
- OUT CONSTS
- MVI A,037h
- OUT CONSTS
- IN CNIN
- RET
- ;
- ;
-