|
|
DataMuseum.dkPresents historical artifacts from the history of: CP/M |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about CP/M Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 2816 (0xb00)
Types: TextFile
Names: »INTPAG.MAC«
└─⟦9f46c4107⟧ Bits:30005988 Sources for TurboDOS ver. 1.30 device drivers
└─⟦this⟧ »INTPAG.MAC«
.Z80
TITLE INTERUPT PAGE INITIALIZE
SUBTTL TurboDOS OPERATING SYSTEM - RC 850, vers.: 23.11.83
;
NAME ('INTPAG') ;INTERUPT PAGE
;
INCLUDE RCEQUATE.MAC
;
COMMON /?INIT?/
;
INTNIT::DI
LD HL,INTPAG ;POINT TO INTERRUPT PAGE
LD A,H ;SET INTERRUPT BASE PAGE ADDRESS
LD I,A
IM 2 ;SET INTERRUPT MODE TWO
;
; RESET ALL INTERUPT DEPENDED DEVICES
;
LD A,03H ;RESET CTC CHANNELS
OUT (CTC0),A
OUT (CTC1),A
OUT (CTC2),A
OUT (CTC3),A
OUT (CTC4),A
OUT (CTC5),A
OUT (CTC6),A
OUT (CTC7),A
;
LD A,018H ;RESET SIO CHANNELS
OUT (SIO0C),A
OUT (SIO1C),A
OUT (SIO2C),A
OUT (SIO3C),A
;
; INITIALIZE DEVICE INTERUPT REGISTERS
;
LD HL,CTC0V ;SET INT. LOWER BYTE FOR
LD A,L ;CTC CHANALS 0-3
OUT (CTC0),A ;
;
LD HL,CTC4V ;SET INT. LOWER BYTE FOR
LD A,L ;CTC CHANALS 4-7
OUT (CTC4),A ;
;
LD HL,SIO1V ;SET INT LOWER BYTE FOR
LD A,2 ;SIO CHANALS 0-1
OUT (SIO1C),A ;
LD A,L ;
OUT (SIO1C),A ;
LD A,1 ;SET INT-STATUS
OUT (SIO1C),A ;
LD A,00000100B ;STATUS AFFECTS VECTOR
OUT (SIO1C),A ;
;
LD HL,SIO3V ;SET INT LOWER BYTE FOR
LD A,2 ;SIO CHANALS 2-3
OUT (SIO3C),A ;
LD A,L ;
OUT (SIO3C),A ;
LD A,1 ;SET INT-STATUS
OUT (SIO3C),A ;
LD A,00000100B ;STATUS AFFECTS VECTOR
OUT (SIO3C),A ;
;
; INITIALIZE DUMMY INTERUPTS
;
LD HL,BADINT ;BADINTERUPT VECTOR
LD (INTPAG),HL ;
LD DE,INTPAG+2 ;
LD HL,INTPAG ;
LD BC,IPEND ;
LDIR ;
RET ;
;
PAGE
;
CSEG
;
BADINT: DI ;BAD INTERRUPT VECTOR TAKEN
LD A,3FH ;signal bad interupt has occured
OUT (KBDATA),A ;
LD A,7FH ;
OUT (KBDATA),A ;
XOR A ;set status lights
OUT (0),A ;
OUT (1),A ;
OUT (2),A ;
OUT (3),A ;
OUT (4),A ;
OUT (5),A ;
OUT (6),A ;
OUT (7),A ;
HALT
JR BADINT
;
PAGE
;
COMMON /?PAGE?/
;
INTPAG::
CTC0V::
DW 0 ;baud rate gen. for line 1
CTC1V:: DW 0 ;baud rate gen. for line 2
TIMVEC:: ;timer uses the same CTC after
;CRT initialization
DSPVEC::DW 0 ;interupt vector for display
FDSVEC::DW 0 ;interupt vector for floppy
DW 0 ;not used
DW 0 ;not used
DUMVEC::DW 0 ;dummy interupt vector
DW 0 ;not used
SIO1V::
DW 0 ;line 2 interupt vectors
DW 0 ;
DW 0 ;
DW 0 ;
SIO0V::
DW 0 ;line 1 interupt vectors
DW 0 ;
DW 0 ;
DW 0 ;
SIO3V::
DW 0 ;keyboard / real time clock
DW 0 ;interupt vectors
DW 0 ;
DW 0 ;
SIO2V::
DW 0 ;circuit interupt vectors
DW 0 ;
DW 0 ;
DW 0 ;
CTC4V::
DW 0 ;interupt vector for Floppy Controller
DW 0 ;interupt vector for SASI Conntroller
DW 0 ;interupt vector for LAN Controller
DW 0 ;not used
;
IPEND EQU $-INTPAG ;length of interupt page
;
; rest of interupt page is unused
;
END
«eof»