@ -134,7 +134,7 @@ CEN_IN:
; BYTE OUTPUT
; BYTE OUTPUT
;
;
CEN_OUT:
CEN_OUT:
CALL CEN_OST ; READY FOR CHAR ?
CALL CEN_OST ; READY TO SEND ?
JR Z , CEN_OUT ; LOOP IF NOT
JR Z , CEN_OUT ; LOOP IF NOT
; *** ADD CODE TO OUTPUT BYTE ***
; *** ADD CODE TO OUTPUT BYTE ***
XOR A ; SIGNAL SUCCESS
XOR A ; SIGNAL SUCCESS
@ -166,9 +166,15 @@ CEN_INITDEV:
; PREINIT ABOVE. PREINIT IS NOT ALLOWED TO ENABLE INTS!
; PREINIT ABOVE. PREINIT IS NOT ALLOWED TO ENABLE INTS!
;
;
CEN_INITDEVX:
CEN_INITDEVX:
;
; *** ADD CODE TO INITIALIZE DEVICE ***
;
; *** NOT SURE THIS IS RIGHT ***
LD A ,( IY + 3 )
LD C , A ; PORT 0 (DATA)
XOR A ; CLEAR ACCUM
OUT ( C ), A ; SEND IT
INC C ; BUMP TO
INC C ; ... PORT 2
LD A , % 11000000 ; RESET, LEDS OFF
OUT ( C ), A ; SEND IT
XOR A ; SIGNAL SUCCESS
XOR A ; SIGNAL SUCCESS
RET ; RETURN
RET ; RETURN
;
;
@ -195,6 +201,7 @@ CEN_DEVICE:
;
;
CEN_DETECT:
CEN_DETECT:
LD A ,( IY + 3 ) ; BASE PORT ADDRESS
LD A ,( IY + 3 ) ; BASE PORT ADDRESS
ADD A , 2 ; USE PORT 2 FOR DETECT
LD C , A ; PUT IN C FOR I/O
LD C , A ; PUT IN C FOR I/O
CALL CEN_DETECT2 ; CHECK IT
CALL CEN_DETECT2 ; CHECK IT
JR Z , CEN_DETECT1 ; FOUND IT, RECORD IT
JR Z , CEN_DETECT1 ; FOUND IT, RECORD IT
@ -208,9 +215,18 @@ CEN_DETECT1:
;
;
CEN_DETECT2:
CEN_DETECT2:
; LOOK FOR CEN AT PORT ADDRESS IN C
; LOOK FOR CEN AT PORT ADDRESS IN C
; *** ADD CODE TO DETECT DEVICE ***
OR $ FF ; TEMP SET TO NOT PRESENT
RET ; RETURN RESULT, Z = CHIP FOUND
XOR A ; DEFAULT VALUE
OUT ( C ), A ; SEND IT
IN A ,( C ) ; READ IT
AND % 11000000 ; ISOLATE STATUS BITS
CP % 00000000 ; CORRECT VALUE?
RET NZ ; IF NOT, RETURN
LD A , % 11000000 ; STATUS BITS ON (LEDS OFF)
OUT ( C ), A ; SEND IT
IN A ,( C ) ; READ IT
AND % 11000000 ; ISOLATE STATUS BITS
CP % 11000000 ; CORRECT VALUE?
RET ; RETURN (ZF SET CORRECTLY)
;
;
;
;
;
;
@ -249,10 +265,10 @@ CEN_PRTCFG:
;
;
CEN_TYPE_MAP:
CEN_TYPE_MAP:
.DW CEN_STR_NONE
.DW CEN_STR_NONE
.DW CEN_STR_CEN
.DW CEN_STR_MB C
;
;
CEN_STR_NONE .DB "<NOT PRESENT>$"
CEN_STR_NONE .DB "<NOT PRESENT>$"
CEN_STR_CEN .DB "MBC$"
CEN_STR_MB C .DB "MBC$"
;
;
; WORKING VARIABLES
; WORKING VARIABLES
;
;