; DaffEQUs.d
; Last modified by Diebert July 26, 1983  3:02 PM
;
; This file provides the basic equates and other goodies for the Daffodil
; i80186 IOP system.
	.XLIST


; i80186 Internal Control Block

ICBbase		EQU	0FF00h


; i80186 Chip selects

UMCSreg		EQU	ICBbase + 0A0h
LMCSreg		EQU	ICBbase + 0A2h
MMCSreg		EQU	ICBbase + 0A6h
MPCSreg		EQU	ICBbase + 0A8h
PACSreg		EQU	ICBbase + 0A4h

UMCSval		EQU	0FC39h		; starting base = 0FC000h, 1 ws
LMCSval		EQU	003F9h		; starting base = 000000h, 1 ws
MPCSval		EQU	082B9h		; starting base = 0F8000h, 1 ws
MMCSval		EQU	0F9F9h		; 16k mid mem, periph I/O space
					; 1 ws
PACSval		EQU	00039h		; periph base = 000000h, 1 ws


Periphbase	EQU	0

fdTermCnt	EQU	Periphbase
fdDMAack	EQU	Periphbase + 00080h
fdStatus	EQU	Periphbase + 00100h
fdData		EQU	Periphbase + 00102h
comData	EQU	Periphbase + 00180h
comCtl		EQU	Periphbase + 00184h
keyData	EQU	Periphbase + 00182h
keyCtl		EQU	Periphbase + 00186h
etherCA		EQU	Periphbase + 00200h
PchipStb	EQU	Periphbase + 00280h


; i80186 DMA Control regs.

fdDMACtl	EQU	ICBbase + 0CAh	;Floppy disk DMA channel
fdDMATC		EQU	ICBbase + 0C8h
fdDMADPhi	EQU	ICBbase + 0C6h
fdDMADPlo	EQU	ICBbase + 0C4h
fdDMASPhi	EQU	ICBbase + 0C2h
fdDMASPlo	EQU	ICBbase + 0C0h

DMA1Ctl		EQU	ICBbase + 0DAh	;Spare DMA channel
DMA1TC		EQU	ICBbase + 0D8h
DMA1DPhi	EQU	ICBbase + 0D6h
DMA1DPlo	EQU	ICBbase + 0D4h
DMA1SPhi	EQU	ICBbase + 0D2h
DMA1SPlo	EQU	ICBbase + 0D0h


; i80186 Timer Control regs.

BRcomCtl	EQU	ICBbase + 056h
BRcomMCB	EQU	ICBbase + 054h
BRcomMCA	EQU	ICBbase + 052h
BRcomCnt	EQU	ICBbase + 050h

BRkeyCtl	EQU	ICBbase + 05Eh
BRkeyMCB	EQU	ICBbase + 05Ch
BRkeyMCA	EQU	ICBbase + 05Ah
BRkeyCnt	EQU	ICBbase + 058h

TMR2Ctl		EQU	ICBbase + 066h
TMR2MCA		EQU	ICBbase + 062h
TMR2Cnt		EQU	ICBbase + 060h


; i80186 Interrupt controller regs.

etherICtl	EQU	ICBbase + 03Eh
comICtl		EQU	ICBbase + 03Ch
fdICtl	EQU		ICBbase + 03Ah
PchipICtl	EQU	ICBbase + 038h
DMA1ICtl	EQU	ICBbase + 036h
fdDMAICtl	EQU	ICBbase + 034h
TMR2ICtl	EQU	ICBbase + 032h
IntStat		EQU	ICBbase + 030h
IntReq		EQU	ICBbase + 02Eh
InServ		EQU	ICBbase + 02Ch
PriReg		EQU	ICBbase + 02Ah
IntMask		EQU	ICBbase + 028h
PollStat	EQU	ICBbase + 026h
PollReg		EQU	ICBbase + 024h
IntEOI		EQU	ICBbase + 022h

; Interrupt Source types

iDivErr		EQU	0	;Divide Error
iSnglStp	EQU	1	;Single step
iNMI		EQU	2	;non maskable interrupt
iBkpt		EQU	3	;breakpoint
iINTO		EQU	4	;interrupt on overflow
iBounds		EQU	5	;bounds check
iBadOp		EQU	6	;unimplimented opcode
iESC		EQU	7	;escape instruction
iBRcom		EQU	8	;comm baud rate timer interrupt
iBRkey		EQU	18	;keyboard baud timer interrupt
iTMR2		EQU	19	;Timer 2 interrupt
ifdDMA		EQU	10	;floppy disk DM interrupt
iDMA1		EQU	11	;DMA channel 1 interrupt
iPchip		EQU	12	;P chip interrupt
ifd		EQU	13	;floppy disk interrupt
icom		EQU	14	;comm chip interrupt
iether		EQU	15	;ethernet interrupt
		.LIST

; Monitor Display mode equates
ModeMemory	EQU 	00h
ModeIO		EQU	01h
ModeReg	EQU	02h
ModeReadWrite	EQU	10h
ModeWriteOnly	EQU	20h

; Misc Equates
true		EQU	1
false		EQU	0
CR		EQU	0Dh
LF		EQU	0Ah
CntlB		EQU	02h
CntlK		EQU	0Bh
CntlL		EQU	0Ch
CntlP		EQU	10h
CntlS		EQU	13h
CntlZ		EQU	1Ah