|
|
@ -168,6 +168,7 @@ LPT_OUT: |
|
|
CALL LPT_OST ; READY TO SEND? |
|
|
CALL LPT_OST ; READY TO SEND? |
|
|
JR Z,LPT_OUT ; LOOP IF NOT |
|
|
JR Z,LPT_OUT ; LOOP IF NOT |
|
|
LD C,(IY+3) ; PORT 0 (DATA) |
|
|
LD C,(IY+3) ; PORT 0 (DATA) |
|
|
|
|
|
EZ80_IO |
|
|
OUT (C),E ; OUTPUT DATA TO PORT |
|
|
OUT (C),E ; OUTPUT DATA TO PORT |
|
|
#IF (LPTMODE == LPTMODE_SPP) |
|
|
#IF (LPTMODE == LPTMODE_SPP) |
|
|
LD A,%00001101 ; SELECT & STROBE, LEDS OFF |
|
|
LD A,%00001101 ; SELECT & STROBE, LEDS OFF |
|
|
@ -185,6 +186,7 @@ LPT_OUT: |
|
|
#IF (LPTMODE == LPTMODE_S100) |
|
|
#IF (LPTMODE == LPTMODE_S100) |
|
|
DEC C ; PUT CONTROL PORT IN C |
|
|
DEC C ; PUT CONTROL PORT IN C |
|
|
#ENDIF |
|
|
#ENDIF |
|
|
|
|
|
EZ80_IO |
|
|
OUT (C),A ; OUTPUT DATA TO PORT |
|
|
OUT (C),A ; OUTPUT DATA TO PORT |
|
|
CALL DELAY |
|
|
CALL DELAY |
|
|
#IF (LPTMODE == LPTMODE_SPP) |
|
|
#IF (LPTMODE == LPTMODE_SPP) |
|
|
@ -196,6 +198,7 @@ LPT_OUT: |
|
|
#IF (LPTMODE == LPTMODE_S100) |
|
|
#IF (LPTMODE == LPTMODE_S100) |
|
|
LD A,%11111111 ; STROBE |
|
|
LD A,%11111111 ; STROBE |
|
|
#ENDIF |
|
|
#ENDIF |
|
|
|
|
|
EZ80_IO |
|
|
OUT (C),A ; OUTPUT DATA TO PORT |
|
|
OUT (C),A ; OUTPUT DATA TO PORT |
|
|
CALL DELAY |
|
|
CALL DELAY |
|
|
XOR A ; SIGNAL SUCCESS |
|
|
XOR A ; SIGNAL SUCCESS |
|
|
@ -218,6 +221,7 @@ LPT_OST: |
|
|
#IF (LPTMODE == LPTMODE_S100) |
|
|
#IF (LPTMODE == LPTMODE_S100) |
|
|
DEC C ; SELECT STATUS PORT |
|
|
DEC C ; SELECT STATUS PORT |
|
|
#ENDIF |
|
|
#ENDIF |
|
|
|
|
|
EZ80_IO |
|
|
IN A,(C) ; GET STATUS INFO |
|
|
IN A,(C) ; GET STATUS INFO |
|
|
#IF (LPTMODE == LPTMODE_SPP) |
|
|
#IF (LPTMODE == LPTMODE_SPP) |
|
|
AND %10000000 ; ISOLATE /BUSY |
|
|
AND %10000000 ; ISOLATE /BUSY |
|
|
@ -245,13 +249,16 @@ LPT_INITDEVX: |
|
|
; |
|
|
; |
|
|
LD C,(IY+3) ; PORT 0 (DATA) |
|
|
LD C,(IY+3) ; PORT 0 (DATA) |
|
|
XOR A ; CLEAR ACCUM |
|
|
XOR A ; CLEAR ACCUM |
|
|
|
|
|
EZ80_IO |
|
|
OUT (C),A ; SEND IT |
|
|
OUT (C),A ; SEND IT |
|
|
INC C ; BUMP TO |
|
|
INC C ; BUMP TO |
|
|
INC C ; ... PORT 2 |
|
|
INC C ; ... PORT 2 |
|
|
LD A,%00001000 ; SELECT AND ASSERT RESET, LEDS OFF |
|
|
LD A,%00001000 ; SELECT AND ASSERT RESET, LEDS OFF |
|
|
|
|
|
EZ80_IO |
|
|
OUT (C),A ; SEND IT |
|
|
OUT (C),A ; SEND IT |
|
|
CALL LDELAY ; HALF SECOND DELAY |
|
|
CALL LDELAY ; HALF SECOND DELAY |
|
|
LD A,%00001100 ; SELECT AND DEASSERT RESET, LEDS OFF |
|
|
LD A,%00001100 ; SELECT AND DEASSERT RESET, LEDS OFF |
|
|
|
|
|
EZ80_IO |
|
|
OUT (C),A ; SEND IT |
|
|
OUT (C),A ; SEND IT |
|
|
XOR A ; SIGNAL SUCCESS |
|
|
XOR A ; SIGNAL SUCCESS |
|
|
RET ; RETURN |
|
|
RET ; RETURN |
|
|
@ -263,12 +270,15 @@ LPT_INITDEVX: |
|
|
ADD A,3 ; BUMP TO CONTROL PORT |
|
|
ADD A,3 ; BUMP TO CONTROL PORT |
|
|
LD C,A ; MOVE TO C FOR I/O |
|
|
LD C,A ; MOVE TO C FOR I/O |
|
|
LD A,$82 ; CONFIG A OUT, B IN, C OUT |
|
|
LD A,$82 ; CONFIG A OUT, B IN, C OUT |
|
|
|
|
|
EZ80_IO |
|
|
OUT (C),A ; DO IT |
|
|
OUT (C),A ; DO IT |
|
|
DEC C ; OUTPUT PORT |
|
|
DEC C ; OUTPUT PORT |
|
|
LD A,$81 ; STROBE OFF, SELECT ON, RES ON, LED ON |
|
|
LD A,$81 ; STROBE OFF, SELECT ON, RES ON, LED ON |
|
|
|
|
|
EZ80_IO |
|
|
OUT (C),A ; SEND IT |
|
|
OUT (C),A ; SEND IT |
|
|
CALL LDELAY ; HALF SECOND DELAY |
|
|
CALL LDELAY ; HALF SECOND DELAY |
|
|
LD A,$05 ; STROBE OFF, SELECT ON, RES OFF, LED OFF |
|
|
LD A,$05 ; STROBE OFF, SELECT ON, RES OFF, LED OFF |
|
|
|
|
|
EZ80_IO |
|
|
OUT (C),A ; SEND IT |
|
|
OUT (C),A ; SEND IT |
|
|
XOR A ; SIGNAL SUCCESS |
|
|
XOR A ; SIGNAL SUCCESS |
|
|
RET ; RETURN |
|
|
RET ; RETURN |
|
|
@ -278,6 +288,7 @@ LPT_INITDEVX: |
|
|
LD C,(IY+3) ; BASE PORT |
|
|
LD C,(IY+3) ; BASE PORT |
|
|
DEC C ; DEC TO CONTROL PORT |
|
|
DEC C ; DEC TO CONTROL PORT |
|
|
LD A,$FF ; INIT VALUE |
|
|
LD A,$FF ; INIT VALUE |
|
|
|
|
|
EZ80_IO |
|
|
OUT (C),A ; DO IT |
|
|
OUT (C),A ; DO IT |
|
|
RET ; RETURN |
|
|
RET ; RETURN |
|
|
#ENDIF |
|
|
#ENDIF |
|
|
@ -330,6 +341,7 @@ LPT_DETECT2: |
|
|
INC C ; PORT C FOR I/O |
|
|
INC C ; PORT C FOR I/O |
|
|
INC C ; ... |
|
|
INC C ; ... |
|
|
XOR A ; DEFAULT VALUE (TRI-STATE OFF) |
|
|
XOR A ; DEFAULT VALUE (TRI-STATE OFF) |
|
|
|
|
|
EZ80_IO |
|
|
OUT (C),A ; SEND IT |
|
|
OUT (C),A ; SEND IT |
|
|
; |
|
|
; |
|
|
;IN A,(C) ; READ IT |
|
|
;IN A,(C) ; READ IT |
|
|
@ -345,7 +357,9 @@ LPT_DETECT2: |
|
|
DEC C ; BACK TO BASE PORT |
|
|
DEC C ; BACK TO BASE PORT |
|
|
DEC C ; ... |
|
|
DEC C ; ... |
|
|
LD A,$A5 ; TEST VALUE |
|
|
LD A,$A5 ; TEST VALUE |
|
|
|
|
|
EZ80_IO |
|
|
OUT (C),A ; SEND IT |
|
|
OUT (C),A ; SEND IT |
|
|
|
|
|
EZ80_IO |
|
|
IN A,(C) ; READ IT BACK |
|
|
IN A,(C) ; READ IT BACK |
|
|
CP $A5 ; CORRECT? |
|
|
CP $A5 ; CORRECT? |
|
|
RET ; RETURN (ZF SET CORRECTLY) |
|
|
RET ; RETURN (ZF SET CORRECTLY) |
|
|
@ -366,11 +380,14 @@ LPT_DETECT: |
|
|
ADD A,3 ; BUMP TO CONTROL PORT |
|
|
ADD A,3 ; BUMP TO CONTROL PORT |
|
|
LD C,A ; PUT IN C |
|
|
LD C,A ; PUT IN C |
|
|
LD A,$80 ; SET PORT A TO WRITE |
|
|
LD A,$80 ; SET PORT A TO WRITE |
|
|
|
|
|
EZ80_IO |
|
|
OUT (C),A ; WRITE IT |
|
|
OUT (C),A ; WRITE IT |
|
|
; |
|
|
; |
|
|
LD C,(IY+3) ; PPI PORT A |
|
|
LD C,(IY+3) ; PPI PORT A |
|
|
LD A,$A5 ; TEST VALUE |
|
|
LD A,$A5 ; TEST VALUE |
|
|
|
|
|
EZ80_IO |
|
|
OUT (C),A ; PUSH VALUE TO PORT |
|
|
OUT (C),A ; PUSH VALUE TO PORT |
|
|
|
|
|
EZ80_IO |
|
|
IN A,(C) ; GET PORT VALUE |
|
|
IN A,(C) ; GET PORT VALUE |
|
|
#IF (LPTTRACE >= 3) |
|
|
#IF (LPTTRACE >= 3) |
|
|
CALL PC_SPACE |
|
|
CALL PC_SPACE |
|
|
|