Files
Digital-Research-Source-Code/CPM OPERATING SYSTEMS/CPM 86/CALPC/CALDOC/CALIO.EQU
Sepp J Morris 31738079c4 Upload
Digital Research
2020-11-06 18:50:37 +01:00

225 lines
5.8 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

M4_LBL_SEG EQU 0FFFFH
M4_LBL_OFST EQU 05H
M4_PROM_VER EQU 03FFFH
M4_PROM_SEG EQU 0FC00H
; LSI-M4 & CAL-PC prom calls (relative to M4_PROM_SEG)
BOOT EQU 03000H
SIO_IN EQU 03005H
SIO_OUT EQU 0300AH
SIO_IN_STAT EQU 0300FH
SIO_OUT_STAT EQU 03014H
PRNTR_STAT EQU 03019H
PRNTR_OUT EQU 0301EH
FLOP_SET EQU 03023H
FLOP_ALL EQU 03028H
FLOP_START EQU 0302DH
FLOP_CONT EQU 03032H
FLOP_ABORT EQU 03037H
HDSK_ALL EQU 0303CH
HDSK_START EQU 03041H
HDSK_CONT EQU 03046H
HDSK_ABORT EQU 0304BH
HDSK_SIZE EQU 03050H
GET_SWITCH EQU 03055H
CPM EQU 0E0H
CODEMACRO CALL_PROM FUNC_CALL:DW
DB 09AH
DW FUNC_CALL
DW 0FC00H
ENDM
; LSI-M4 & CAL-PC I/O port definitions
; DMA controller (i8237-2) ports
DMAC_BADD0 EQU 00H ;Channel 0 - base & current address (write)
DMAC_CADD0 EQU 00H ; " " - current address (read)
DMAC_BCNT0 EQU 01H ; " " - base & current word count (write)
DMAC_CCNT0 EQU 01H ; " " - current word count (read)
DMAC_BADD1 EQU 02H ;Channel 1 - base & current address (write)
DMAC_CADD1 EQU 02H ; " " - current address (read)
DMAC_BCNT1 EQU 03H ; " " - base & current word count (write)
DMAC_CCNT1 EQU 03H ; " " - current word count (read)
DMAC_BADD2 EQU 04H ;Channel 2 - base & current address (write)
DMAC_CADD2 EQU 04H ; " " - current address (read)
DMAC_BCNT2 EQU 05H ; " " - base & current word count (write)
DMAC_CCNT2 EQU 05H ; " " - current word count (read)
DMAC_BADD3 EQU 06H ;Channel 3 - base & current address (write)
DMAC_CADD3 EQU 06H ; " " - current address (read)
DMAC_BCNT3 EQU 07H ; " " - base & current word count (write)
DMAC_CCNT3 EQU 07H ; " " - current word count (read)
DMAC_STAT EQU 08H ;Status register (read)
DMAC_CMD EQU 08H ;Command register (write)
DMAC_REQ EQU 09H ;Request register (write)
DMAC_MASK_SR EQU 0AH ;Single mask register bit (write)
DMAC_MODE EQU 0BH ;Mode register (write)
DMAC_FLOP EQU 0CH ;Clear byte pointer flip/flop (write)
DMAC_TEMP EQU 0DH ;Temporary register (read)
DMAC_CLR EQU 0DH ;Master clear (write)
DMAC_MASK EQU 0FH ;All mask register bits (write)
; programmable interrupt controller (i8259A) ports
PIC_STAT EQU 010H ;Interrupt request/serviced status
PIC_ICW EQU 010H ;Initialization control words
PIC_IMR EQU 011H ;Interrupt level masks
PIC_OCW EQU 011H ;Operational control words
; DIP switch and diagnostic LED display
DIP_SW EQU 020H ;DIP switch
LED_DSPY EQU 020H ;LED display
; Bank select registers
DMAC_BANK EQU 30H ;general - before seperate ones used
FDC_BANK EQU 31H ;Floppy bank
REFRESH_BANK EQU 30H ;Refresh bank
SIO_BANK EQU 32H ;SIO bank - for networking
WINCH_BANK EQU 33H ;Winchester bank
Z80_BANK EQU 30H ;Z80 bank
; CRT controller
CRT_ADDR EQU 040H ;Address/status register
CRT_STAT EQU 040H
CRT_DATA EQU 041H ;Register file
CRT_CHAR EQU 020H ;Character latch
; Floppy disk controller ports
AUC_CMD EQU 050H ;Floppy disk select/handshake
FDC_CMD EQU 060H ;Command port
FDC_STAT EQU 060H ;Status register
FDC_TRK EQU 061H ;Track register
FDC_SEC EQU 062H ;Sector register
FDC_DATA EQU 063H ;Data register
; Keyboard
KYBD_DATA EQU 051H ;Keyboard data
KYBD_STAT EQU 052H ;Keyboard status
KYBD_CNTL EQU 053H ;Mode control 8255
BUZZER EQU 050H ;Buzzer
; Hard disk registers
ADP_STAT EQU 071H
ADP_CMD EQU 071H
ADP_DIAG EQU 072H
ADP_DATA EQU 073H
; Programmable interval timer (i8253) ports
PIT0_CT0 EQU 080H ;PIT 0, counter 0
PIT0_CT1 EQU 081H ; " 0, " 1
PIT0_CT2 EQU 082H ; " 0, " 2
PIT0_CTL EQU 083H ; " 0, control
PIT1_CT0 EQU 090H ; " 1, counter 0
PIT1_CT1 EQU 091H ; " 1, " 1
PIT1_CT2 EQU 092H ; " 1, " 2
PIT1_CTL EQU 093H ; " 1, control
; Serial input/output (Z80-SIO) ports
SI00A_DATA EQU 0A0H ;SIO 0, channel A, data
SI00A_STAT EQU 0A1H ; " 0, " A, status
SI00A_CNTL EQU 0A1H ; " 0, " A, control
SI00B_DATA EQU 0A2H ;SIO 0, channel B, data
SI00B_STAT EQU 0A3H ; " 0, " B, status
SI00B_CNTL EQU 0A3H ; " 0, " B, control
SI01A_DATA EQU 0B0H ;SIO 1, channel A, data
SI01A_STAT EQU 0B1H ; " 1, " A, status
SI01A_CNTL EQU 0B1H ; " 1, " A, control
SI01B_DATA EQU 0B2H ;SIO 1, channel B, data
SI01B_STAT EQU 0B3H ; " 1, " B, status
SI01B_CNTL EQU 0B3H ; " 1, " B, control
SIO_INT_VEC EQU 0E0H ;Interrupt vector - SIO or DART
; Centronics compatible parallel printer ports
PRT_DATA EQU 0F0H ;Printer data out
PRT_STAT EQU 0F1H ; " status
PRT_CNTL EQU 0F2H ; " control
PRT_MODE EQU 0F3H ; " port mode control
PRT_FLAG EQU PRT_MODE
; LED display constants
led_0 equ 0c0h
led_1 equ 0f9h
led_2 equ 0a4h
led_3 equ 0b0h
led_4 equ 099h
led_5 equ 092h
led_6 equ 082h
led_7 equ 0f8h
led_8 equ 080h
led_9 equ 098h
led_0p equ 040h
led_1p equ 079h
led_2p equ 024h
led_3p equ 030h
led_4p equ 019h
led_5p equ 012h
led_6p equ 002h
led_7p equ 078h
led_8p equ 000h
led_9p equ 018h
; Others
LINE_LENGTH EQU 80 ;Length of CRT character line
CR EQU 13
LF EQU 10
BS EQU 08
ESC EQU 1BH
NULL EQU 0
BELL EQU 7
TAB EQU 9
SPACE EQU 20H
INT3 EQU 0CCH
CNTL_X EQU 'X'-'A'+1
CNTL_Q EQU 'Q'-'A'+1
CNTL_Z EQU 'Z'-'A'+1
CNTL_S EQU 'S'-'A'+1
TRUE EQU -1
FALSE EQU 0
RD_CMD EQU 20H ;Read command for FLOPALL
WR_CMD EQU 50H ;Write with verify
BIT0 EQU 00000001B
BIT1 EQU 00000010B
BIT2 EQU 00000100B
BIT3 EQU 00001000B
BIT4 EQU 00010000B
BIT5 EQU 00100000B
BIT6 EQU 01000000B
BIT7 EQU 10000000B
bit8 equ 0100h
bit9 equ 0200h
bit10 equ 0400h
bit11 equ 0800h
bit12 equ 1000h
bit13 equ 2000h
bit14 equ 4000h
bit15 equ 8000h
JC EQU JB
JNC EQU JNB
JNBE EQU JA
SBC EQU SBB
; End of CALIO.EQU