@ -133,13 +133,14 @@ Z2U_INITUNIT:
; FAILSAFE CONFIG ONTO THE CHANNEL. IF THE SUBSEQUENT "REAL"
; CONFIG FAILS, AT LEAST THE CHIP WILL BE ABLE TO SPIT DATA OUT
; AT A RATIONAL BAUD/DATA/PARITY/STOP CONFIG.
CALL Z2U_INITSAFE
LD A , % 11000010 ; 8N0, DIV 16, NO C/T
LD ( Z2U_CFGREG ), A ; SAVE IT
LD HL , 1 ; C/T DIV 1
CALL Z2U_INITDEV8 ; DO IT
;
; SET DEFAULT CONFIG
LD DE , - 1 ; LEAVE CONFIG ALONE
; CALL INITDEV TO IMPLEMENT CONFIG, BUT NOTE THAT WE CALL
; THE INITDEVX ENTRY POINT THAT DOES NOT ENABLE/DISABLE INTS!
JP Z2U_INITDEVX ; IMPLEMENT IT AND RETURN
JP Z2U_INITDEV ; IMPLEMENT IT AND RETURN
;
;
;
@ -434,23 +435,20 @@ Z2U_OST:
; REQUIRED BY THE Z2U AND STORED IN A PORT/REGISTER INITIALIZATION TABLE,
; WHICH IS THEN LOADED INTO THE Z2U.
;
; NOTE THAT THERE ARE TWO ENTRY POINTS. INITDEV WILL DISABLE/ENABLE INTS
; AND INITDEVX WILL NOT. THIS IS DONE SO THAT THE PREINIT ROUTINE ABOVE
; CAN AVOID ENABLING/DISABLING INTS.
;
Z2U_INITDEV:
; INITDEV CAN BE CALLED PRIOR TO INTERRUPTS BEING ENABLED. WE
; NEED TO LEAVE INTERRUPTS ALONE IN THIS SCENARIO
LD A ,( INTSENAB ) ; INTS ENABLED?
OR A ; TEST VALUE
JR Z , Z2U_INITDEV0 ; BYPASS DI/EI IF NOT ENABLED
;
; INTERRUPTS DISABLED DURING INIT
HB_DI ; DISABLE INTS
CALL Z2U_INITDEVX ; DO THE WORK
CALL Z2U_INITDEV0 ; DO THE WORK
HB_EI ; INTS BACK ON
RET ; DONE
;
Z2U_INITSAFE:
LD A , % 11000010 ; 8N0, DIV 16, NO C/T
LD ( Z2U_CFGREG ), A ; SAVE IT
LD HL , 1 ; C/T DIV 1
JR Z2U_INITDEV8 ; DO IT
;
Z2U_INITDEVX:
Z2U_INITDEV0:
; TEST FOR -1 WHICH MEANS USE CURRENT CONFIG (JUST REINIT)
LD A , D ; TEST DE FOR
AND E ; ... VALUE OF -1
@ -535,7 +533,7 @@ Z2U_INITDEV2:
LD ( IY + 4 ), E ; SAVE LOW WORD
LD ( IY + 5 ), D ; SAVE HI WORD
;
Z2U_INITDEV8:
Z2U_INITDEV8: ; THIS LABEL IS USED IN INITUNIT!!!
; START BY SELECTING I/O PAGE $FE
PUSH HL ; SAVE HL
LD L , $ FE ; Z280 UART REGISTERS AT I/O PAGE $FE