mirror of
https://github.com/wwarthen/RomWBW.git
synced 2026-02-06 22:43:15 -06:00
19
Source/Apps/MBC/button2.asm
Normal file
19
Source/Apps/MBC/button2.asm
Normal file
@@ -0,0 +1,19 @@
|
||||
; test program for user button on Z80 MBC clock board
|
||||
; by Andrew Lynch, 6 Jul 2021
|
||||
|
||||
|
||||
ORG 00100H
|
||||
|
||||
MAIN_LOOP:
|
||||
|
||||
IN A,($70) ; READ USER BUTTON STATUS
|
||||
AND %01000000 ; REMOVE ALL EXCEPT USER BUTTON (D6)
|
||||
; 0=PRESSED, 1=NOT PRESSED
|
||||
JR NZ,MAIN_LOOP ; IF NOT PRESSED TRY AGAIN
|
||||
|
||||
LD A,%00000011 ; TURN ON BOTH USER LEDS
|
||||
OUT ($70),A ;
|
||||
|
||||
RET
|
||||
|
||||
end
|
||||
8
Source/Apps/MBC/leds2.asm
Normal file
8
Source/Apps/MBC/leds2.asm
Normal file
@@ -0,0 +1,8 @@
|
||||
; program to test user LEDs on Z80 MBC clock board
|
||||
; by Andrew Lynch, 6 Jul 2021
|
||||
|
||||
org $0100
|
||||
LD A,%00000011
|
||||
OUT ($70),A ; turn on USERLED0 and USERLED1
|
||||
RET
|
||||
end
|
||||
35
Source/Apps/MBC/tone3.asm
Normal file
35
Source/Apps/MBC/tone3.asm
Normal file
@@ -0,0 +1,35 @@
|
||||
; program to test user buzzer/speaker on Z80 MBC clock board
|
||||
; by Andrew Lynch, 6 Jul 2021
|
||||
|
||||
org $0100
|
||||
|
||||
LD HL,$7FFF ; INITIALIZE OUTER LOOP
|
||||
LD DE,$0001 ; DECREMENT VALUE
|
||||
|
||||
START:
|
||||
|
||||
LD A,%00000100
|
||||
OUT ($70),A ; TURN ON SPEAKER
|
||||
|
||||
LD B,$80 ; HOLD SPEAKER ON FOR 128 COUNTS
|
||||
LOOP1: DJNZ LOOP1
|
||||
|
||||
LD A,%00000000
|
||||
OUT ($70),A ; TURN OFF SPEAKER
|
||||
|
||||
LD B,$80 ; HOLD SPEAKER OFF FOR 128 COUNTS
|
||||
LOOP2: DJNZ LOOP2
|
||||
|
||||
SBC HL,DE ; REDUCE OUTER LOOP BY 1
|
||||
|
||||
JR NZ,START ; LOOP 32768 TIMES, ABOUT 15 SECONDS
|
||||
|
||||
LD A,%00000011
|
||||
OUT ($70),A ; TURN ON BOTH USER LEDS
|
||||
|
||||
; HALT ; HALT & TURN ON HALT LED
|
||||
|
||||
RET
|
||||
|
||||
end
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
OBJECTS = SysGen.com Survey.com \
|
||||
SysCopy.com Assign.com Format.com Talk.com Mode.com RTC.com \
|
||||
Timer.com IntTest.com RTCds7.com RTChb.com
|
||||
OBJECTS = sysgen.com survey.com \
|
||||
syscopy.com assign.com format.com talk.com mode.com rtc.com \
|
||||
timer.com inttest.com rtcds7.com rtchb.com ppidetst.com tstdskng.com
|
||||
OTHERS = *.hex *.com
|
||||
SUBDIRS = XM FDU FAT Tune I2C
|
||||
DEST = ../../Binary/Apps
|
||||
@@ -10,5 +10,5 @@ include $(TOOLS)/Makefile.inc
|
||||
|
||||
USETASM = 1
|
||||
|
||||
Survey.com: USETASM=0
|
||||
survey.com: USETASM=0
|
||||
|
||||
|
||||
@@ -5,11 +5,11 @@ set TOOLS=../../../Tools
|
||||
set PATH=%TOOLS%\tasm32;%PATH%
|
||||
set TASMTABS=%TOOLS%\tasm32
|
||||
|
||||
tasm -t180 -g3 -fFF -dWBW Tune.asm Tune.com Tune.lst
|
||||
tasm -t180 -g3 -fFF -dZX Tune.asm Tunezx.com Tunezx.lst
|
||||
tasm -t180 -g3 -fFF -dMSX Tune.asm Tunemsx.com Tunemsx.lst
|
||||
tasm -t180 -g3 -fFF -dWBW tune.asm tune.com tune.lst
|
||||
tasm -t180 -g3 -fFF -dZX tune.asm tunezx.com tunezx.lst
|
||||
tasm -t180 -g3 -fFF -dMSX tune.asm tunemsx.com tunemsx.lst
|
||||
|
||||
if errorlevel 1 goto :eof
|
||||
|
||||
copy /Y Tune*.com ..\..\..\Binary\Apps\
|
||||
copy /Y tune*.com ..\..\..\Binary\Apps\
|
||||
copy /Y Tunes\*.* ..\..\..\Binary\Apps\Tunes\
|
||||
1371
Source/Apps/ppidetst.asm
Normal file
1371
Source/Apps/ppidetst.asm
Normal file
File diff suppressed because it is too large
Load Diff
703
Source/Apps/rtcds7.asm
Normal file
703
Source/Apps/rtcds7.asm
Normal file
@@ -0,0 +1,703 @@
|
||||
;==================================================================================================
|
||||
; PCF8584 I2C Clock Driver
|
||||
;==================================================================================================
|
||||
;
|
||||
PCF_BASE .EQU 0F0H
|
||||
PCF_ID .EQU 0AAH
|
||||
CPU_CLK .EQU 12
|
||||
|
||||
REGS0 .EQU PCF_BASE
|
||||
REGS1 .EQU REGS0+1
|
||||
PCF_OWN .EQU (PCF_ID >> 1) ; PCF'S ADDRESS IN SLAVE MODE
|
||||
;
|
||||
;T4LC512D .EQU 10100000B ; DEVICE IDENTIFIER
|
||||
;T4LC512A1 .EQU 00000000B ; DEVICE ADDRESS
|
||||
;T4LC512A2 .EQU 00001110B ; DEVICE ADDRESS
|
||||
;T4LC512A3 .EQU 00000010B ; DEVICE ADDRESS
|
||||
;T4LC512W .EQU 00000000B ; DEVICE WRITE
|
||||
;T4LC512R .EQU 00000001B ; DEVICE READ
|
||||
;
|
||||
;I2CDEV1W .EQU (T4LC512D+T4LC512A1+T4LC512W)
|
||||
;I2CDEV1R .EQU (T4LC512D+T4LC512A1+T4LC512R)
|
||||
;
|
||||
;I2CDEV2W .EQU (T4LC512D+T4LC512A2+T4LC512W)
|
||||
;I2CDEV2R .EQU (T4LC512D+T4LC512A2+T4LC512R)
|
||||
;
|
||||
;I2CDEV3W .EQU (T4LC512D+T4LC512A3+T4LC512W)
|
||||
;I2CDEV3R .EQU (T4LC512D+T4LC512A3+T4LC512R)
|
||||
;
|
||||
; CONTROL REGISTER BITS
|
||||
;
|
||||
PCF_PIN .EQU 10000000B
|
||||
PCF_ES0 .EQU 01000000B
|
||||
PCF_ES1 .EQU 00100000B
|
||||
PCF_ES2 .EQU 00010000B
|
||||
PCF_EN1 .EQU 00001000B
|
||||
PCF_STA .EQU 00000100B
|
||||
PCF_STO .EQU 00000010B
|
||||
PCF_ACK .EQU 00000001B
|
||||
;
|
||||
PCF_START_ .EQU (PCF_PIN | PCF_ES0 | PCF_STA | PCF_ACK)
|
||||
PCF_STOP_ .EQU (PCF_PIN | PCF_ES0 | PCF_STO | PCF_ACK)
|
||||
PCF_REPSTART_ .EQU ( PCF_ES0 | PCF_STA | PCF_ACK)
|
||||
PCF_IDLE_ .EQU (PCF_PIN | PCF_ES0 | PCF_ACK)
|
||||
;
|
||||
; STATUS REGISTER BITS
|
||||
;
|
||||
;PCF_PIN .EQU 10000000B
|
||||
PCF_INI .EQU 01000000B ; 1 if not initialized
|
||||
PCF_STS .EQU 00100000B
|
||||
PCF_BER .EQU 00010000B
|
||||
PCF_AD0 .EQU 00001000B
|
||||
PCF_LRB .EQU 00001000B
|
||||
PCF_AAS .EQU 00000100B
|
||||
PCF_LAB .EQU 00000010B
|
||||
PCF_BB .EQU 00000001B
|
||||
;
|
||||
; CLOCK CHIP FREQUENCIES
|
||||
;
|
||||
PCF_CLK3 .EQU 000H
|
||||
PCF_CLK443 .EQU 010H
|
||||
PCF_CLK6 .EQU 014H
|
||||
PCF_CLK8 .EQU 018H
|
||||
PCF_CLK12 .EQU 01cH
|
||||
;
|
||||
; TRANSMISSION FREQUENCIES
|
||||
;
|
||||
PCF_TRNS90 .EQU 000H ; 90 kHz */
|
||||
PCF_TRNS45 .EQU 001H ; 45 kHz */
|
||||
PCF_TRNS11 .EQU 002H ; 11 kHz */
|
||||
PCF_TRNS15 .EQU 003H ; 1.5 kHz */
|
||||
;
|
||||
; TIMEOUT AND DELAY VALUES (ARBITRARY)
|
||||
;
|
||||
PCF_PINTO .EQU 65000
|
||||
PCF_ACKTO .EQU 65000
|
||||
PCF_BBTO .EQU 65000
|
||||
PCF_LABDLY .EQU 65000
|
||||
;
|
||||
; DATA PORT REGISTERS
|
||||
;
|
||||
#IF (CPU_CLK = 443)
|
||||
PCF_CLK .EQU PCF_CLK443
|
||||
#ELSE
|
||||
#IF (CPU_CLK = 8)
|
||||
PCF_CLK .EQU PCF_CLK8
|
||||
#ELSE
|
||||
#IF (CPU_CLK = 12)
|
||||
PCF_CLK .EQU PCF_CLK12
|
||||
#ELSE ***ERROR
|
||||
#ENDIF
|
||||
#ENDIF
|
||||
#ENDIF
|
||||
;
|
||||
DS7_OUT .EQU 10000000B ; SELECT SQUARE WAVE FUNCTION
|
||||
DS7_SQWE .EQU 00010000B ; ENABLE SQUARE WAVE OUTPUT
|
||||
DS7_RATE .EQU 00000000B ; SET 1HZ OUPUT
|
||||
;
|
||||
DS7_DS1307 .EQU 11010000B ; DEVICE IDENTIFIER
|
||||
DS7_W .EQU 00000000B ; DEVICE WRITE
|
||||
DS7_R .EQU 00000001B ; DEVICE READ
|
||||
;
|
||||
DS7_READ .EQU (DS7_DS1307 | DS7_R) ; READ
|
||||
DS7_WRITE .EQU (DS7_DS1307 | DS7_W) ; WRITE
|
||||
;
|
||||
DS7_CTL .EQU (DS7_OUT | DS7_SQWE | DS7_RATE)
|
||||
;
|
||||
.ORG 100H
|
||||
;
|
||||
;
|
||||
CALL DS7_RDC ; READ CLOCK DATA INTO BUFFER
|
||||
CALL DS7_DISP ; DISPLAY TIME AND DATE FROM BUFFER
|
||||
RET
|
||||
;
|
||||
;-----------------------------------------------------------------------------
|
||||
; RTC READ
|
||||
;
|
||||
; 1. ISSUE SLAVE ADDRESS WITH START CONDITION AND WRITE STATUS
|
||||
; 2. OUTPUT THE ADDRESS TO ACCESS. (00H = START OF DS1307 REGISTERS)
|
||||
; 3. OUTPUT REPEAT START TO TRANSITION TO READ PROCESS
|
||||
; 4. ISSUE SLAVE ADDRESS WITH READ STATUS
|
||||
; 5. DO A DUMMY READ
|
||||
; 6. READ 8 BYTES STARTING AT ADDRESS PREVIOUSLY SET
|
||||
; 7. END READ WITH NON-ACKNOWLEDGE
|
||||
; 8. ISSUE STOP AND RELEASE BUS
|
||||
;
|
||||
DS7_RDC:LD A,DS7_WRITE ; SET SLAVE ADDRESS
|
||||
OUT (REGS0),A
|
||||
;
|
||||
CALL PCF_WAIT_FOR_BB
|
||||
JP NZ,PCF_BBERR
|
||||
;
|
||||
CALL PCF_START ; GENERATE START CONDITION
|
||||
CALL PCF_WAIT_FOR_PIN; AND ISSUE THE SLAVE ADDRESS
|
||||
CALL NZ,PCF_PINERR
|
||||
;
|
||||
LD A,0
|
||||
OUT (REGS0),A ; PUT ADDRESS MSB ON BUS
|
||||
CALL PCF_WAIT_FOR_PIN
|
||||
CALL NZ,PCF_PINERR
|
||||
;
|
||||
CALL PCF_REPSTART ; REPEAT START
|
||||
;
|
||||
LD A,DS7_READ ; ISSUE CONTROL BYTE + READ
|
||||
OUT (REGS0),A
|
||||
;
|
||||
CALL PCF_READI2C ; DUMMY READ
|
||||
;
|
||||
LD HL,DS7_BUF ; READ 8 BYTES INTO BUFFER
|
||||
LD B,8
|
||||
DS7_RL1:CALL PCF_READI2C
|
||||
LD (HL),A
|
||||
INC HL
|
||||
DJNZ DS7_RL1
|
||||
;
|
||||
#IF (0)
|
||||
LD A,8
|
||||
LD DE,DS7_BUF ; DISLAY DATA READ
|
||||
CALL PRTHEXBUF ;
|
||||
CALL NEWLINE
|
||||
#ENDIF
|
||||
;
|
||||
LD A,PCF_ES0 ; END WITH NOT-ACKNOWLEDGE
|
||||
OUT (REGS1),A ; AND RELEASE BUS
|
||||
NOP
|
||||
IN A,(REGS0)
|
||||
NOP
|
||||
DS7_WTPIN:
|
||||
IN A,(REGS1) ; READ S1 REGISTER
|
||||
BIT 7,A ; CHECK PIN STATUS
|
||||
JP NZ,DS7_WTPIN
|
||||
CALL PCF_STOP
|
||||
;
|
||||
IN A,(REGS0)
|
||||
RET
|
||||
|
||||
;
|
||||
;-----------------------------------------------------------------------------
|
||||
; DISPLAY CLOCK INFORMATION FROM DATA STORED IN BUFFER
|
||||
;
|
||||
DS7_DISP:
|
||||
LD HL,DS7_CLKTBL
|
||||
DS7_CLP:LD C,(HL)
|
||||
INC HL
|
||||
LD D,(HL)
|
||||
CALL DS7_BCD
|
||||
INC HL
|
||||
LD A,(HL)
|
||||
OR A
|
||||
RET Z
|
||||
CALL COUT
|
||||
INC HL
|
||||
JR DS7_CLP
|
||||
RET
|
||||
;
|
||||
DS7_CLKTBL:
|
||||
.DB 04H, 00111111B, '/'
|
||||
.DB 05H, 00011111B, '/'
|
||||
.DB 06H, 11111111B, ' '
|
||||
.DB 02H, 00011111B, ':'
|
||||
.DB 01H, 01111111B, ':'
|
||||
.DB 00H, 01111111B, 00H
|
||||
;
|
||||
DS7_BCD:PUSH HL
|
||||
LD HL,DS7_BUF ; READ VALUE FROM
|
||||
LD B,0 ; BUFFER, INDEXED BY A
|
||||
ADD HL,BC
|
||||
LD A,(HL)
|
||||
AND D ; MASK OFF UNNEEDED
|
||||
SRL A
|
||||
SRL A
|
||||
SRL A
|
||||
SRL A
|
||||
ADD A,30H
|
||||
CALL COUT
|
||||
LD A,(HL)
|
||||
AND 00001111B
|
||||
ADD A,30H
|
||||
CALL COUT
|
||||
POP HL
|
||||
RET
|
||||
;
|
||||
DS7_BUF: .FILL 8,0 ; BUFFER FOR TIME, DATE AND CONTROL
|
||||
|
||||
;-----------------------------------------------------------------------------
|
||||
PCF_START:
|
||||
LD A,PCF_START_
|
||||
OUT (REGS1),A
|
||||
RET
|
||||
;
|
||||
;-----------------------------------------------------------------------------
|
||||
PCF_REPSTART:
|
||||
LD A,PCF_REPSTART_
|
||||
OUT (REGS1),A
|
||||
RET
|
||||
;
|
||||
;-----------------------------------------------------------------------------
|
||||
PCF_STOP:
|
||||
LD A,PCF_STOP_
|
||||
OUT (REGS1),A
|
||||
RET
|
||||
;
|
||||
;-----------------------------------------------------------------------------
|
||||
;;
|
||||
PCF_INIT:
|
||||
LD A,PCF_PIN ; S1=80H: S0 SELECTED, SERIAL
|
||||
OUT (REGS1),A ; INTERFACE OFF
|
||||
NOP
|
||||
IN A,(REGS1) ; CHECK TO SEE S1 NOW USED AS R/W
|
||||
AND 07FH ; CTRL. PCF8584 DOES THAT WHEN ESO
|
||||
JP NZ,PCF_INIERR ; IS ZERO
|
||||
;
|
||||
LD A,PCF_OWN ; LOAD OWN ADDRESS IN S0,
|
||||
OUT (REGS0),A ; EFFECTIVE ADDRESS IS (OWN <<1)
|
||||
NOP
|
||||
IN A,(REGS0) ; CHECK IT IS REALLY WRITTEN
|
||||
CP PCF_OWN
|
||||
JP NZ,PCF_SETERR
|
||||
;
|
||||
LD A,+(PCF_PIN | PCF_ES1) ; S1=0A0H
|
||||
OUT (REGS1),A ; NEXT BYTE IN S2
|
||||
NOP
|
||||
IN A,(REGS1)
|
||||
AND 07FH
|
||||
CP PCF_ES1
|
||||
JP NZ,PCF_REGERR
|
||||
;
|
||||
LD A,PCF_CLK ; LOAD CLOCK REGISTER S2
|
||||
OUT (REGS0),A
|
||||
NOP
|
||||
IN A,(REGS0) ; CHECK IT'S REALLY WRITTEN, ONLY
|
||||
AND 1FH ; THE LOWER 5 BITS MATTER
|
||||
CP PCF_CLK
|
||||
JP NZ,PCF_CLKERR
|
||||
;
|
||||
LD A,PCF_IDLE_
|
||||
OUT (REGS1),A
|
||||
NOP
|
||||
IN A,(REGS1)
|
||||
CP +(PCF_PIN | PCF_BB)
|
||||
JP NZ,PCF_IDLERR
|
||||
;
|
||||
RET
|
||||
;
|
||||
;-----------------------------------------------------------------------------
|
||||
PCF_HANDLE_LAB:
|
||||
;
|
||||
LD A,PCF_PIN
|
||||
OUT (REGS1),A
|
||||
LD A,PCF_ES0
|
||||
OUT (REGS1),A
|
||||
;
|
||||
LD HL,PCF_LABDLY
|
||||
PCF_LABLP:
|
||||
LD A,H
|
||||
OR L
|
||||
DEC HL
|
||||
JR NZ,PCF_LABLP
|
||||
;
|
||||
IN A,(REGS1)
|
||||
RET
|
||||
;
|
||||
;-----------------------------------------------------------------------------
|
||||
;
|
||||
; RETURN A=00/Z IF SUCCESSFULL
|
||||
; RETURN A=FF/NZ IF TIMEOUT
|
||||
; RETURN A=01/NZ IF LOST ARBITRATION
|
||||
; PCF_STATUS HOLDS LAST PCF STATUS
|
||||
;
|
||||
PCF_WAIT_FOR_PIN:
|
||||
PUSH HL
|
||||
LD HL,PCF_PINTO ; SET TIMEOUT VALUE
|
||||
|
||||
PCF_WFP0:
|
||||
IN A,(REGS1) ; GET BUS
|
||||
LD (PCF_STATUS),A ; STATUS
|
||||
LD B,A
|
||||
|
||||
DEC HL ; HAVE WE
|
||||
LD A,H ; TIMED OUT
|
||||
OR L
|
||||
JR Z,PCF_WFP1 ; YES WE HAVE, GO ACTION IT
|
||||
|
||||
LD A,B ;
|
||||
AND PCF_PIN ; IS TRANSMISSION COMPLETE?
|
||||
JR NZ,PCF_WFP0 ; KEEP ASKING IF NOT OR
|
||||
POP HL ; YES COMPLETE (PIN=0) RETURN WITH ZERO
|
||||
RET
|
||||
PCF_WFP1:
|
||||
LD A,B ; DID WE LOSE ARBITRATION?
|
||||
AND PCF_LAB ; IF A=0 THEN NO
|
||||
CPL
|
||||
JR NZ,PCF_WFP2 ; NO
|
||||
CALL PCF_HANDLE_LAB ; YES GO HANDLE IT
|
||||
LD (PCF_STATUS),A
|
||||
XOR A ; RETURN NZ, A=01H
|
||||
INC A
|
||||
PCF_WFP2:
|
||||
POP HL ; RET NZ, A=FF IF TIMEOUT
|
||||
RET
|
||||
;
|
||||
PCF_STATUS .DB 00H
|
||||
|
||||
;--------------------------------------------------------------------------------
|
||||
;
|
||||
; RETURN NZ/FF IF TIMEOUT ERROR
|
||||
; RETURN NZ/01 IF FAILED TO RECEIVE ACKNOWLEDGE
|
||||
; RETURN Z/00 IF RECEIVED ACKNOWLEDGE
|
||||
;
|
||||
PCF_WAIT_FOR_ACK:
|
||||
PUSH HL
|
||||
LD HL,PCF_ACKTO
|
||||
;
|
||||
PCF_WFA0:
|
||||
IN A,(REGS1) ; READ PIN
|
||||
LD (PCF_STATUS),A ; STATUS
|
||||
LD B,A
|
||||
;
|
||||
DEC HL ; SEE IF WE HAVE TIMED
|
||||
LD A,H ; OUT WAITING FOR PIN
|
||||
OR L ; EXIT IF
|
||||
JR Z,PCF_WFA1 ; WE HAVE
|
||||
;
|
||||
LD A,B ; OTHERWISE KEEP LOOPING
|
||||
AND PCF_PIN ; UNTIL WE GET PIN
|
||||
JR NZ,PCF_WFA0 ; OR TIMEOUT
|
||||
;
|
||||
LD A,B ; WE GOT PIN SO NOW
|
||||
AND PCF_LRB ; CHECK WE HAVE
|
||||
LD A,1
|
||||
JR Z,PCF_WFA2 ; RECEIVED ACKNOWLEDGE
|
||||
XOR A
|
||||
JR PCF_WFA2
|
||||
PCF_WFA1:
|
||||
CPL ; TIMOUT ERROR
|
||||
PCF_WFA2:
|
||||
POP HL ; EXIT WITH NZ = FF
|
||||
RET
|
||||
;
|
||||
;--------------------------------------------------------------------------------
|
||||
;
|
||||
; HL POINTS TO DATA
|
||||
; DE = COUNT
|
||||
; A = 0 LAST A=1 NOT LAST
|
||||
;
|
||||
;
|
||||
;PCF_READBYTES: ; NOT FUNCTIONAL YET
|
||||
|
||||
LD (PCF_LBF),A ; SAVE LAST BYTE FLAG
|
||||
;
|
||||
INC DE ; INCREMENT NUMBER OF BYTES TO READ BY ONE -- DUMMY READ BYTE
|
||||
LD BC,0 ; SET BYTE COUNTER
|
||||
;
|
||||
PCF_RBL:PUSH BC
|
||||
CALL PCF_WAIT_FOR_PIN ; DO WE HAVE THE BUS?
|
||||
POP BC
|
||||
JR Z,PCF_RB1 ; YES
|
||||
CP 01H
|
||||
JR Z,PCF_RB3 ; NO - LOST ARBITRATION
|
||||
JR PCF_RB2 ; NO - TIMEOUT
|
||||
;
|
||||
PCF_RB1:
|
||||
LD A,(PCF_STATUS)
|
||||
AND PCF_LRB
|
||||
|
||||
|
||||
; IS THIS THE SECOND TO LAST BYTE TO GO?
|
||||
|
||||
PUSH DE ; SAVE COUNT
|
||||
DEC DE ; COUNT (DE) = NUMBER OF BYTES TO READ LESS 1
|
||||
EX DE,HL ; SAVE POINTER, PUT COUNT IN DE
|
||||
XOR A ; CLEAR CARRY FLAG
|
||||
SBC HL,BC ; DOES BYTE COUNTER = HL (NUMBER OF BYTES TO READ LESS 1)
|
||||
EX DE,HL ; RESTORE POINTER
|
||||
POP DE ; RESTORE COUNT
|
||||
|
||||
; Z = YES IT IS
|
||||
; NZ = NO IT ISN'T
|
||||
JR NZ,PCF_RB4
|
||||
;
|
||||
PCF_RB4:LD A,B ; IF FIRST READ DO A DUMMY
|
||||
OR C ; READ OTHERWISE READ AND SAVE
|
||||
JR NZ,PCF_RB5
|
||||
|
||||
IN A,(REGS0) ; DUMMY READ
|
||||
JR PCF_RB6
|
||||
|
||||
PCF_RB5:IN A,(REGS0) ; READ AND SAVE
|
||||
LD (HL),A
|
||||
;
|
||||
PCF_RB6: ; HAVE WE DONE ALL?
|
||||
|
||||
PUSH DE ; SAVE COUNT
|
||||
EX DE,HL ; SAVE POINTER, PUT COUNT IN DE
|
||||
XOR A ; CLEAR CARRY FLAG
|
||||
SBC HL,BC ; DOES BYTE COUNTER = HL (NUMBER OF BYTES TO READ)
|
||||
EX DE,HL ; RESTORE POINTER
|
||||
POP DE ; RESTORE COUNT
|
||||
;
|
||||
INC HL ; BUFFER POINTER
|
||||
INC BC ; COUNT
|
||||
;
|
||||
JR NZ,PCF_RBL ; REPEAT UNTIL COUNTS MATCH
|
||||
RET
|
||||
;
|
||||
PCF_RB2: ; TIMEOUT
|
||||
CALL PCF_STOP
|
||||
CALL PCF_TOERR
|
||||
RET
|
||||
;
|
||||
PCF_RB3: ; LOST ARBITRATION
|
||||
CALL PCF_ARBERR
|
||||
RET
|
||||
;
|
||||
PCF_LBF:
|
||||
.DB 0 ; LAST BYTE FLAG
|
||||
;
|
||||
;-----------------------------------------------------------------------------
|
||||
; READ ONE BYTE FROM I2C
|
||||
; RETURNS DATA IN A
|
||||
; Z FLAG SET IS ACKNOWLEDGE RECEIVED (CORRECT OPERATION)
|
||||
;
|
||||
PCF_READI2C:
|
||||
IN A,(REGS1) ; READ S1 REGISTER
|
||||
BIT 7,A ; CHECK PIN STATUS
|
||||
JP NZ,PCF_READI2C
|
||||
BIT 3,A ; CHECK LRB=0
|
||||
JP NZ,PCF_RDERR
|
||||
IN A,(REGS0) ; GET DATA
|
||||
RET
|
||||
;-----------------------------------------------------------------------------
|
||||
;
|
||||
; POLL THE BUS BUSY BIT TO DETERMINE IF BUS IS FREE.
|
||||
; RETURN WITH A=00H/Z STATUS IF BUS IS FREE
|
||||
; RETURN WITH A=FFH/NZ STATUS IF BUS
|
||||
;
|
||||
; AFTER RESET THE BUS BUSY BIT WILL BE SET TO 1 I.E. NOT BUSY
|
||||
;
|
||||
PCF_WAIT_FOR_BB:
|
||||
LD HL,PCF_BBTO
|
||||
PCF_WFBB0:
|
||||
IN A,(REGS1)
|
||||
AND PCF_BB
|
||||
RET Z ; BUS IS FREE RETURN ZERO
|
||||
DEC HL
|
||||
LD A,H
|
||||
OR L
|
||||
JR NZ,PCF_WFBB0 ; REPEAT IF NOT TIMED OUT
|
||||
CPL ; RET NZ IF TIMEOUT
|
||||
RET
|
||||
;
|
||||
;-----------------------------------------------------------------------------
|
||||
; DISPLAY ERROR MESSAGES
|
||||
;
|
||||
PCF_RDERR:
|
||||
PUSH HL
|
||||
LD HL,PCF_RDFAIL
|
||||
JR PCF_PRTERR
|
||||
;
|
||||
PCF_INIERR:
|
||||
PUSH HL
|
||||
LD HL,PCF_NOPCF
|
||||
JR PCF_PRTERR
|
||||
;
|
||||
PCF_SETERR:
|
||||
PUSH HL
|
||||
LD HL,PCF_WRTFAIL
|
||||
JR PCF_PRTERR
|
||||
;
|
||||
PCF_REGERR:
|
||||
PUSH HL
|
||||
LD HL,PCF_REGFAIL
|
||||
JR PCF_PRTERR
|
||||
;
|
||||
PCF_CLKERR:
|
||||
PUSH HL
|
||||
LD HL,PCF_CLKFAIL
|
||||
JR PCF_PRTERR
|
||||
;
|
||||
PCF_IDLERR:
|
||||
PUSH HL
|
||||
LD HL,PCF_IDLFAIL
|
||||
JR PCF_PRTERR
|
||||
;
|
||||
PCF_ACKERR:
|
||||
PUSH HL
|
||||
LD HL,PCF_ACKFAIL
|
||||
JR PCF_PRTERR
|
||||
;
|
||||
PCF_RDBERR:
|
||||
PUSH HL
|
||||
LD HL,PCF_RDBFAIL
|
||||
JR PCF_PRTERR
|
||||
;
|
||||
PCF_TOERR:
|
||||
PUSH HL
|
||||
LD HL,PCF_TOFAIL
|
||||
JR PCF_PRTERR
|
||||
;
|
||||
PCF_ARBERR:
|
||||
PUSH HL
|
||||
LD HL,PCF_ARBFAIL
|
||||
JR PCF_PRTERR
|
||||
;
|
||||
PCF_PINERR:
|
||||
PUSH HL
|
||||
LD HL,PCF_PINFAIL
|
||||
JR PCF_PRTERR
|
||||
;
|
||||
PCF_BBERR:
|
||||
PUSH HL
|
||||
LD HL,PCF_BBFAIL
|
||||
JR PCF_PRTERR
|
||||
;
|
||||
PCF_PRTERR:
|
||||
CALL PRTSTR
|
||||
CALL NEWLINE
|
||||
POP HL
|
||||
RET
|
||||
;
|
||||
PCF_NOPCF .DB "NO DEVICE FOUND$"
|
||||
PCF_WRTFAIL .DB "SETTING DEVICE ID FAILED$"
|
||||
PCF_REGFAIL .DB "CLOCK REGISTER SELECT ERROR$"
|
||||
PCF_CLKFAIL .DB "CLOCK SET FAIL$"
|
||||
PCF_IDLFAIL .DB "BUS IDLE FAILED$"
|
||||
PCF_ACKFAIL .DB "FAILED TO RECEIVE ACKNOWLEDGE$"
|
||||
PCF_RDFAIL .DB "READ FAILED$"
|
||||
PCF_RDBFAIL .DB "READBYTES FAILED$"
|
||||
PCF_TOFAIL .DB "TIMEOUT ERROR$"
|
||||
PCF_ARBFAIL .DB "LOST ARBITRATION$"
|
||||
PCF_PINFAIL .DB "PIN FAIL$"
|
||||
PCF_BBFAIL .DB "BUS BUSY$"
|
||||
;
|
||||
;-----------------------------------------------------------------------------
|
||||
;
|
||||
BDOS .EQU 5 ;ENTRY BDOS
|
||||
BS .EQU 8 ;BACKSPACE
|
||||
TAB .EQU 9 ;TABULATOR
|
||||
LF .EQU 0AH ;LINE-FEED
|
||||
CR .EQU 0DH ;CARRIAGE-RETURN
|
||||
;
|
||||
; OUTPUT TEXT AT HL
|
||||
;
|
||||
PRTSTR: LD A,(HL)
|
||||
OR A
|
||||
RET Z
|
||||
CALL PRINP
|
||||
INC HL
|
||||
JR PRTSTR
|
||||
;
|
||||
;Output WORD
|
||||
;***********
|
||||
;
|
||||
;PARAMETER: Entry WORD IN HL
|
||||
;*********
|
||||
;
|
||||
OUTW: LD A,H
|
||||
CALL OUTB
|
||||
LD A,L
|
||||
CALL OUTB
|
||||
RET
|
||||
;
|
||||
;Output BYTE
|
||||
;***********
|
||||
;
|
||||
;PARAMETER: Entry BYTE IN A
|
||||
;*********
|
||||
;
|
||||
OUTB: PUSH AF
|
||||
RRCA
|
||||
RRCA
|
||||
RRCA
|
||||
RRCA
|
||||
AND 0FH
|
||||
CALL HBTHE ;Change Half-BYTE
|
||||
POP AF
|
||||
AND 0FH
|
||||
CALL HBTHE
|
||||
RET
|
||||
;
|
||||
;Output HALF-BYTE
|
||||
;****************
|
||||
;
|
||||
;PARAMETER: Entry Half-BYTE IN A (BIT 0 - 3)
|
||||
;*********
|
||||
;
|
||||
HBTHE: CP 0AH
|
||||
JR C,HBTHE1
|
||||
ADD A,7 ;Character to Letter
|
||||
HBTHE1: ADD A,30H
|
||||
LD E,A
|
||||
CALL PCHAR
|
||||
RET
|
||||
;
|
||||
;
|
||||
;Output on Screen
|
||||
;****************
|
||||
;
|
||||
PRBS: LD E,BS
|
||||
CALL PCHAR
|
||||
RET
|
||||
;
|
||||
;Output CR+LF on Screen
|
||||
;**********************
|
||||
;
|
||||
NEWLINE:
|
||||
CRLF: LD E,CR
|
||||
CALL PCHAR
|
||||
LD E,LF
|
||||
CALL PCHAR
|
||||
RET
|
||||
;
|
||||
;Output ASCII-Character
|
||||
;**********************
|
||||
;
|
||||
COUT:
|
||||
PRINP: PUSH AF
|
||||
PUSH DE
|
||||
LD E,A
|
||||
CALL PCHAR
|
||||
POP DE
|
||||
POP AF
|
||||
RET
|
||||
;
|
||||
;CALL BDOS with Register Save
|
||||
;****************************
|
||||
;
|
||||
INCHA: LD C,1 ;INPUT CHARACTER TO A
|
||||
JR BDO
|
||||
PCHAR: LD C,2 ;PRINT CHARACTER IN E
|
||||
JR BDO
|
||||
PSTRIN: LD C,9 ;PRINT STRING
|
||||
JR BDO
|
||||
INBUFF: LD C,10 ;READ CONSOLE-BUFFER
|
||||
JR BDO
|
||||
CSTS: LD C,11 ;CONSOLE-STATUS
|
||||
JR BDO
|
||||
OPEN: LD C,15 ;OPEN FILE
|
||||
JR BDO
|
||||
CLOSE: LD C,16 ;CLOSE FILE
|
||||
JR BDO
|
||||
DELETE: LD C,19 ;DELETE FILE
|
||||
JR BDO
|
||||
READS: LD C,20 ;READ SEEK
|
||||
JR BDO
|
||||
WRITES: LD C,21 ;WRITE SEEK
|
||||
JR BDO
|
||||
MAKE: LD C,22 ;MAKE FILE
|
||||
JR BDO
|
||||
SETDMA: LD C,26 ;SET DMA-ADDRESS
|
||||
BDO: PUSH HL
|
||||
PUSH DE
|
||||
PUSH BC
|
||||
PUSH IX
|
||||
PUSH IY
|
||||
CALL BDOS
|
||||
POP IY
|
||||
POP IX
|
||||
POP BC
|
||||
POP DE
|
||||
POP HL
|
||||
RET
|
||||
;
|
||||
.END
|
||||
1016
Source/Apps/tstdskng.asm
Normal file
1016
Source/Apps/tstdskng.asm
Normal file
File diff suppressed because it is too large
Load Diff
@@ -19,7 +19,7 @@ param([string]$Platform = "", [string]$Config = "", [int]$RomSize = 512, [string
|
||||
# setup mechanism so that multiple configuration are not needed. When building for UNA, the pre-built
|
||||
# UNA BIOS is simply imbedded, it is not built here.
|
||||
#
|
||||
$PlatformListZ80 = "SBC", "ZETA", "ZETA2", "RCZ80", "RCZ280", "EZZ80", "UNA"
|
||||
$PlatformListZ80 = "SBC", "MBC", "ZETA", "ZETA2", "RCZ80", "RCZ280", "EZZ80", "UNA"
|
||||
$PlatformListZ180 = "N8", "MK4", "RCZ180", "SCZ180", "DYNO"
|
||||
$PlatformListZ280 = "RCZ280"
|
||||
|
||||
@@ -183,7 +183,6 @@ if ($Platform -ne "UNA")
|
||||
Asm 'tastybasic'
|
||||
Asm 'game'
|
||||
Asm 'usrrom'
|
||||
Asm 'imgpad1'
|
||||
Asm 'imgpad2'
|
||||
}
|
||||
|
||||
@@ -194,15 +193,15 @@ if ($Platform -ne "UNA")
|
||||
"Building ${RomName} output files..."
|
||||
|
||||
# Build 32K OS chunk containing the loader, debug monitor, and two OS images
|
||||
Concat 'romldr.bin', 'eastaegg.bin','dbgmon.bin', "..\cpm22\cpm_${Bios}.bin", "..\zsdos\zsys_${Bios}.bin" osimg.bin
|
||||
Concat 'romldr.bin', 'dbgmon.bin', "..\cpm22\cpm_${Bios}.bin", "..\zsdos\zsys_${Bios}.bin" osimg.bin
|
||||
|
||||
# Build 20K OS chunk containing the loader, debug monitor, and one OS image
|
||||
Concat 'romldr.bin', 'eastaegg.bin','dbgmon.bin', "..\zsdos\zsys_${Bios}.bin" osimg_small.bin
|
||||
Concat 'romldr.bin','dbgmon.bin', "..\zsdos\zsys_${Bios}.bin" osimg_small.bin
|
||||
|
||||
# Build second and third 32K chunks containing supplemental ROM apps (not for UNA)
|
||||
if ($Platform -ne "UNA")
|
||||
{
|
||||
Concat '..\Forth\camel80.bin', 'nascom.bin', 'tastybasic.bin', 'game.bin', 'imgpad1.bin', 'usrrom.bin' osimg1.bin
|
||||
Concat '..\Forth\camel80.bin', 'nascom.bin', 'tastybasic.bin', 'game.bin', 'eastaegg.bin', 'usrrom.bin' osimg1.bin
|
||||
Concat 'netboot.mod', 'imgpad2.bin' osimg2.bin
|
||||
}
|
||||
|
||||
|
||||
@@ -99,20 +99,20 @@ done
|
||||
|
||||
cp ../Forth/camel80.bin .
|
||||
|
||||
make dbgmon.bin romldr.bin eastaegg.bin imgpad1.bin imgpad2.bin
|
||||
make dbgmon.bin romldr.bin eastaegg.bin imgpad2.bin
|
||||
|
||||
if [ $platform != UNA ] ; then
|
||||
make nascom.bin tastybasic.bin game.bin usrrom.bin imgpad1.bin imgpad2.bin
|
||||
make nascom.bin tastybasic.bin game.bin usrrom.bin imgpad2.bin
|
||||
make hbios_rom.bin hbios_app.bin hbios_img.bin
|
||||
fi
|
||||
|
||||
echo "Building $romname output files..."
|
||||
|
||||
cat romldr.bin eastaegg.bin dbgmon.bin ../CPM22/cpm_$BIOS.bin ../ZSDOS/zsys_$BIOS.bin >osimg.bin
|
||||
cat romldr.bin eastaegg.bin dbgmon.bin ../ZSDOS/zsys_$BIOS.bin >osimg_small.bin
|
||||
cat romldr.bin dbgmon.bin ../CPM22/cpm_$BIOS.bin ../ZSDOS/zsys_$BIOS.bin >osimg.bin
|
||||
cat romldr.bin dbgmon.bin ../ZSDOS/zsys_$BIOS.bin >osimg_small.bin
|
||||
|
||||
if [ $platform != UNA ] ; then
|
||||
cat camel80.bin nascom.bin tastybasic.bin game.bin imgpad1.bin usrrom.bin >osimg1.bin
|
||||
cat camel80.bin nascom.bin tastybasic.bin game.bin eastaegg.bin usrrom.bin >osimg1.bin
|
||||
cat netboot.mod imgpad2.bin >osimg2.bin
|
||||
fi
|
||||
|
||||
|
||||
@@ -22,12 +22,14 @@
|
||||
; PLEASE REFER TO THE CUSTOM BUILD INSTRUCTIONS (README.TXT) IN THE SOURCE DIRECTORY (TWO
|
||||
; DIRECTORIES ABOVE THIS ONE).
|
||||
;
|
||||
#DEFINE PLATFORM_NAME "SBC"
|
||||
#DEFINE PLATFORM_NAME "Multi Board Computer"
|
||||
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
|
||||
;
|
||||
#include "cfg_sbc.asm"
|
||||
#include "cfg_mbc.asm"
|
||||
;
|
||||
INTMODE .SET 0 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280)
|
||||
MEMMGR .SET MM_MBC ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280|MBC]
|
||||
BATCOND .SET FALSE
|
||||
;
|
||||
PPIDEENABLE .SET TRUE ; PPIDE: ENABLE PARALLEL PORT IDE DISK DRIVER (PPIDE.ASM)
|
||||
;
|
||||
DSKYENABLE .SET FALSE ; ENABLES DSKY
|
||||
DSKYMODE .SET DSKYMODE_NG ; DSKY VERTSION: DSKYMODE_[V1|NG]
|
||||
@@ -24,7 +24,7 @@ else
|
||||
OBJECTS += RCZ80_zrc.rom RCZ80_zrc.com RCZ80_zrc.upd
|
||||
OBJECTS += SBC_std.rom SBC_std.com SBC_std.upd
|
||||
OBJECTS += SBC_simh.rom SBC_simh.com SBC_simh.upd
|
||||
OBJECTS += SBC_mbc.rom SBC_mbc.com SBC_mbc.upd
|
||||
OBJECTS += MBC_std.rom MBC_std.com MBC_std.upd
|
||||
OBJECTS += SCZ180_126.rom SCZ180_126.com SCZ180_126.upd
|
||||
OBJECTS += SCZ180_130.rom SCZ180_130.com SCZ180_130.upd
|
||||
OBJECTS += SCZ180_131.rom SCZ180_131.com SCZ180_131.upd
|
||||
@@ -35,7 +35,7 @@ else
|
||||
endif
|
||||
|
||||
MOREDIFF = camel80.bin game.bin hbios_rom.bin nascom.bin prefix.bin usrrom.bin \
|
||||
dbgmon.bin hbios_app.bin imgpad1.bin imgpad2.bin osimg1.bin osimg2.bin romldr.bin \
|
||||
dbgmon.bin hbios_app.bin imgpad2.bin osimg1.bin osimg2.bin romldr.bin \
|
||||
eastaegg.bin hbios_img.bin osimg.bin tastybasic.bin \
|
||||
game.bin usrrom.bin
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
;
|
||||
#DEFINE PLATFORM_NAME "DYNO"
|
||||
;
|
||||
PLATFORM .EQU PLT_DYNO ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO]
|
||||
PLATFORM .EQU PLT_DYNO ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO|RCZ280|MBC]
|
||||
CPUFAM .EQU CPU_Z180 ; CPU FAMILY: CPU_[Z80|Z180|Z280]
|
||||
BIOS .EQU BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA]
|
||||
BATCOND .EQU FALSE ; ENABLE LOW BATTERY WARNING MESSAGE
|
||||
@@ -63,6 +63,7 @@ DIAGPORT .EQU $00 ; DIAGNOSTIC PORT ADDRESS
|
||||
DIAGDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON DIAGNOSTIC LEDS
|
||||
;
|
||||
LEDENABLE .EQU FALSE ; ENABLES STATUS LED (SINGLE LED)
|
||||
LEDMODE .EQU LEDMODE_STD ; LEDMODE_[STD|RTC]
|
||||
LEDPORT .EQU $0E ; STATUS LED PORT ADDRESS
|
||||
LEDDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON STATUS LED
|
||||
;
|
||||
@@ -163,6 +164,7 @@ PPIDE0B8BIT .EQU FALSE ; PPIDE 0B (SLAVE): 8 BIT XFER
|
||||
;
|
||||
SDENABLE .EQU FALSE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM)
|
||||
SDMODE .EQU SDMODE_PPI ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT]
|
||||
SDPPIBASE .EQU $60 ; SD: BASE I/O ADDRESS OF PPI FOR PPI MODDE
|
||||
SDCNT .EQU 1 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD & SC ONLY
|
||||
SDTRACE .EQU 1 ; SD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
|
||||
SDCSIOFAST .EQU FALSE ; SD: ENABLE TABLE-DRIVEN BIT INVERTER IN CSIO MODE
|
||||
@@ -175,7 +177,7 @@ HDSKENABLE .EQU FALSE ; HDSK: ENABLE SIMH HDSK DISK DRIVER (HDSK.ASM)
|
||||
;
|
||||
PIO_4P .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR ECB 4P BOARD
|
||||
PIO_ZP .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR ECB ZILOG PERIPHERALS BOARD (PIO.ASM)
|
||||
PPI_SBC .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR 8255 CHIP
|
||||
PIO_SBC .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR 8255 CHIP
|
||||
;
|
||||
UFENABLE .EQU FALSE ; UF: ENABLE ECB USB FIFO DRIVER (UF.ASM)
|
||||
;
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
;
|
||||
#DEFINE PLATFORM_NAME "EASYZ80"
|
||||
;
|
||||
PLATFORM .EQU PLT_EZZ80 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO]
|
||||
PLATFORM .EQU PLT_EZZ80 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO|RCZ280|MBC]
|
||||
CPUFAM .EQU CPU_Z80 ; CPU FAMILY: CPU_[Z80|Z180|Z280]
|
||||
BIOS .EQU BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA]
|
||||
BATCOND .EQU FALSE ; ENABLE LOW BATTERY WARNING MESSAGE
|
||||
@@ -64,6 +64,7 @@ DIAGPORT .EQU $00 ; DIAGNOSTIC PORT ADDRESS
|
||||
DIAGDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON DIAGNOSTIC LEDS
|
||||
;
|
||||
LEDENABLE .EQU FALSE ; ENABLES STATUS LED (SINGLE LED)
|
||||
LEDMODE .EQU LEDMODE_STD ; LEDMODE_[STD|RTC]
|
||||
LEDPORT .EQU $0E ; STATUS LED PORT ADDRESS
|
||||
LEDDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON STATUS LED
|
||||
;
|
||||
@@ -194,6 +195,7 @@ PPIDE0B8BIT .EQU FALSE ; PPIDE 0B (SLAVE): 8 BIT XFER
|
||||
;
|
||||
SDENABLE .EQU FALSE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM)
|
||||
SDMODE .EQU SDMODE_PPI ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT]
|
||||
SDPPIBASE .EQU $60 ; SD: BASE I/O ADDRESS OF PPI FOR PPI MODDE
|
||||
SDCNT .EQU 1 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD & SC ONLY
|
||||
SDTRACE .EQU 1 ; SD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
|
||||
SDCSIOFAST .EQU FALSE ; SD: ENABLE TABLE-DRIVEN BIT INVERTER IN CSIO MODE
|
||||
@@ -210,7 +212,7 @@ HDSKENABLE .EQU FALSE ; HDSK: ENABLE SIMH HDSK DISK DRIVER (HDSK.ASM)
|
||||
;
|
||||
PIO_4P .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR ECB 4P BOARD
|
||||
PIO_ZP .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR ECB ZILOG PERIPHERALS BOARD (PIO.ASM)
|
||||
PPI_SBC .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR 8255 CHIP
|
||||
PIO_SBC .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR 8255 CHIP
|
||||
;
|
||||
UFENABLE .EQU FALSE ; UF: ENABLE ECB USB FIFO DRIVER (UF.ASM)
|
||||
;
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
;
|
||||
#DEFINE PLATFORM_NAME "ROMWBW"
|
||||
;
|
||||
PLATFORM .EQU PLT_SBC ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO]
|
||||
PLATFORM .EQU PLT_SBC ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO|RCZ280|MBC]
|
||||
CPUFAM .EQU CPU_Z80 ; CPU FAMILY: CPU_[Z80|Z180|Z280]
|
||||
BIOS .EQU BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA]
|
||||
BATCOND .EQU FALSE ; ENABLE LOW BATTERY WARNING MESSAGE
|
||||
@@ -63,7 +63,6 @@ MK4_SD .EQU $89 ; MK4: SD CARD CONTROL REGISTER ADR
|
||||
MK4_RTC .EQU $8A ; MK4: RTC LATCH REGISTER ADR
|
||||
;
|
||||
RTCIO .EQU $70 ; RTC LATCH REGISTER ADR
|
||||
PPIBASE .EQU $60 ; PRIMARY PARALLEL PORT REGISTERS BASE ADR
|
||||
;
|
||||
KIOENABLE .EQU FALSE ; ENABLE ZILOG KIO SUPPORT
|
||||
KIOBASE .EQU $80 ; KIO BASE I/O ADDRESS
|
||||
@@ -91,10 +90,14 @@ DIAGPORT .EQU $00 ; DIAGNOSTIC PORT ADDRESS
|
||||
DIAGDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON DIAGNOSTIC LEDS
|
||||
;
|
||||
LEDENABLE .EQU FALSE ; ENABLES STATUS LED (SINGLE LED)
|
||||
LEDMODE .EQU LEDMODE_STD ; LEDMODE_[STD|RTC]
|
||||
LEDPORT .EQU $0E ; STATUS LED PORT ADDRESS
|
||||
LEDDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON STATUS LED
|
||||
;
|
||||
DSKYENABLE .EQU FALSE ; ENABLES DSKY (DO NOT COMBINE WITH PPIDE)
|
||||
DSKYENABLE .EQU FALSE ; ENABLES DSKY
|
||||
DSKYMODE .EQU DSKYMODE_V1 ; DSKY VERSION: DSKYMODE_[V1|NG]
|
||||
DSKYPPIBASE .EQU $60 ; BASE I/O ADDRESS OF DSKY PPI
|
||||
DSKYOSC .EQU 3000000 ; OSCILLATOR FREQ FOR DSKYNG (IN HZ)
|
||||
;
|
||||
BOOTCON .EQU 0 ; BOOT CONSOLE DEVICE
|
||||
CRTACT .EQU FALSE ; ACTIVATE CRT (VDU,CVDU,PROPIO,ETC) AT STARTUP
|
||||
@@ -255,6 +258,7 @@ PPIDE2B8BIT .EQU FALSE ; PPIDE 0B (SLAVE): 8 BIT XFER
|
||||
;
|
||||
SDENABLE .EQU FALSE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM)
|
||||
SDMODE .EQU SDMODE_NONE ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT]
|
||||
SDPPIBASE .EQU $60 ; SD: BASE I/O ADDRESS OF PPI FOR PPI MODDE
|
||||
SDCNT .EQU 1 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD & SC ONLY
|
||||
SDTRACE .EQU 1 ; SD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
|
||||
SDCSIOFAST .EQU FALSE ; SD: ENABLE TABLE-DRIVEN BIT INVERTER IN CSIO MODE
|
||||
@@ -266,6 +270,7 @@ PRPSDTRACE .EQU 1 ; PRP: SD CARD TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
|
||||
PRPCONENABLE .EQU TRUE ; PRP: ENABLE PROPIO DRIVER VIDEO/KBD SUPPORT
|
||||
;
|
||||
PPPENABLE .EQU FALSE ; PPP: ENABLE ZETA PARALLEL PORT PROPELLER BOARD DRIVER (PPP.ASM)
|
||||
PPPBASE .EQU $60 ; PPP: PPI REGISTERS BASE ADDRESS
|
||||
PPPSDENABLE .EQU TRUE ; PPP: ENABLE PPP DRIVER SD CARD SUPPORT
|
||||
PPPSDTRACE .EQU 1 ; PPP: SD CARD TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
|
||||
PPPCONENABLE .EQU TRUE ; PPP: ENABLE PPP DRIVER VIDEO/KBD SUPPORT
|
||||
@@ -277,7 +282,8 @@ PIO_4P .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR ECB 4P BOARD
|
||||
PIO4BASE .EQU $90 ; PIO: PIO REGISTERS BASE ADR FOR ECB 4P BOARD
|
||||
PIO_ZP .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR ECB ZILOG PERIPHERALS BOARD (PIO.ASM)
|
||||
PIOZBASE .EQU $88 ; PIO: PIO REGISTERS BASE ADR FOR ECB ZP BOARD
|
||||
PPI_SBC .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR 8255 CHIP
|
||||
PIO_SBC .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR 8255 CHIP
|
||||
PIOSBASE .EQU $60 ; PIO: PIO REGISTERS BASE ADR FOR SBC PPI
|
||||
;
|
||||
UFENABLE .EQU FALSE ; UF: ENABLE ECB USB FIFO DRIVER (UF.ASM)
|
||||
UFBASE .EQU $0C ; UF: REGISTERS BASE ADR
|
||||
|
||||
231
Source/HBIOS/cfg_mbc.asm
Normal file
231
Source/HBIOS/cfg_mbc.asm
Normal file
@@ -0,0 +1,231 @@
|
||||
;
|
||||
;==================================================================================================
|
||||
; ROMWBW 2.X CONFIGURATION DEFAULTS FOR MBC
|
||||
;==================================================================================================
|
||||
;
|
||||
; THIS FILE CONTAINS THE FULL SET OF DEFAULT CONFIGURATION SETTINGS FOR THE PLATFORM
|
||||
; INDICATED ABOVE. THIS FILE SHOULD *NOT* NORMALLY BE CHANGED. INSTEAD, YOU SHOULD
|
||||
; OVERRIDE ANY SETTINGS YOU WANT USING A CONFIGURATION FILE IN THE CONFIG DIRECTORY
|
||||
; UNDER THIS DIRECTORY.
|
||||
;
|
||||
; THIS FILE CAN BE CONSIDERED A REFERENCE THAT LISTS ALL POSSIBLE CONFIGURATION SETTINGS
|
||||
; FOR THE PLATFORM.
|
||||
;
|
||||
#DEFINE PLATFORM_NAME "Multi Board Computer"
|
||||
;
|
||||
PLATFORM .EQU PLT_MBC ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO|RCZ280|MBC]
|
||||
CPUFAM .EQU CPU_Z80 ; CPU FAMILY: CPU_[Z80|Z180|Z280]
|
||||
BIOS .EQU BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA]
|
||||
BATCOND .EQU FALSE ; ENABLE LOW BATTERY WARNING MESSAGE
|
||||
HBIOS_MUTEX .EQU FALSE ; ENABLE REENTRANT CALLS TO HBIOS (ADDS OVERHEAD)
|
||||
USELZSA2 .EQU TRUE ; ENABLE FONT COMPRESSION
|
||||
TICKFREQ .EQU 50 ; DESIRED PERIODIC TIMER INTERRUPT FREQUENCY (HZ)
|
||||
;
|
||||
BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE
|
||||
;
|
||||
CPUOSC .EQU 8000000 ; CPU OSC FREQ IN MHZ
|
||||
INTMODE .EQU 0 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280)
|
||||
DEFSERCFG .EQU SER_38400_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM)
|
||||
;
|
||||
RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
RAM_RESERVE .EQU 0 ; RESERVE FIRST N KB OF RAM (USUALLY 0)
|
||||
ROM_RESERVE .EQU 0 ; RESERVE FIRST N KB OR ROM (USUALLY 0)
|
||||
MEMMGR .EQU MM_MBC ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280|MBC]
|
||||
MPCL_RAM .EQU $78 ; SBC MEM MGR RAM PAGE SELECT REG (WRITE ONLY)
|
||||
MPCL_ROM .EQU $7C ; SBC MEM MGR ROM PAGE SELECT REG (WRITE ONLY)
|
||||
;
|
||||
RTCIO .EQU $70 ; RTC LATCH REGISTER ADR
|
||||
;
|
||||
KIOENABLE .EQU FALSE ; ENABLE ZILOG KIO SUPPORT
|
||||
KIOBASE .EQU $80 ; KIO BASE I/O ADDRESS
|
||||
;
|
||||
CTCENABLE .EQU FALSE ; ENABLE ZILOG CTC SUPPORT
|
||||
CTCDEBUG .EQU FALSE ; ENABLE CTC DRIVER DEBUG OUTPUT
|
||||
CTCBASE .EQU $B0 ; CTC BASE I/O ADDRESS
|
||||
CTCTIMER .EQU TRUE ; ENABLE CTC PERIODIC TIMER
|
||||
CTCMODE .EQU CTCMODE_CTR ; CTC MODE: CTCMODE_[NONE|CTR|TIM16|TIM256]
|
||||
CTCPRE .EQU 256 ; PRESCALE CONSTANT (1-256)
|
||||
CTCPRECH .EQU 2 ; PRESCALE CHANNEL (0-3)
|
||||
CTCTIMCH .EQU 3 ; TIMER CHANNEL (0-3)
|
||||
CTCOSC .EQU 614400 ; CTC CLOCK FREQUENCY
|
||||
;
|
||||
EIPCENABLE .EQU FALSE ; EIPC: ENABLE Z80 EIPC (Z84C15) INITIALIZATION
|
||||
;
|
||||
SKZENABLE .EQU FALSE ; ENABLE SERGEY'S Z80-512K FEATURES
|
||||
;
|
||||
WDOGMODE .EQU WDOG_NONE ; WATCHDOG MODE: WDOG_[NONE|EZZ80|SKZ]
|
||||
;
|
||||
DIAGENABLE .EQU FALSE ; ENABLES OUTPUT TO 8 BIT LED DIAGNOSTIC PORT
|
||||
DIAGPORT .EQU $00 ; DIAGNOSTIC PORT ADDRESS
|
||||
DIAGDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON DIAGNOSTIC LEDS
|
||||
;
|
||||
LEDENABLE .EQU TRUE ; ENABLES STATUS LED
|
||||
LEDMODE .EQU LEDMODE_RTC ; LEDMODE_[STD|RTC]
|
||||
LEDPORT .EQU RTCIO ; STATUS LED PORT ADDRESS
|
||||
LEDDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON STATUS LED
|
||||
;
|
||||
DSKYENABLE .EQU FALSE ; ENABLES DSKY
|
||||
DSKYMODE .EQU DSKYMODE_V1 ; DSKY VERSION: DSKYMODE_[V1|NG]
|
||||
DSKYPPIBASE .EQU $60 ; BASE I/O ADDRESS OF DSKY PPI
|
||||
DSKYOSC .EQU 3000000 ; OSCILLATOR FREQ FOR DSKYNG (IN HZ)
|
||||
;
|
||||
BOOTCON .EQU 0 ; BOOT CONSOLE DEVICE
|
||||
CRTACT .EQU FALSE ; ACTIVATE CRT (VDU,CVDU,PROPIO,ETC) AT STARTUP
|
||||
VDAEMU .EQU EMUTYP_ANSI ; VDA EMULATION: EMUTYP_[TTY|ANSI]
|
||||
ANSITRACE .EQU 1 ; ANSI DRIVER TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
|
||||
PPKTRACE .EQU 1 ; PPK DRIVER TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
|
||||
KBDTRACE .EQU 1 ; KBD DRIVER TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
|
||||
PPKKBLOUT .EQU KBD_US ; PPK KEYBOARD LANGUAGE: KBD_[US|DE]
|
||||
KBDKBLOUT .EQU KBD_US ; KBD KEYBOARD LANGUAGE: KBD_[US|DE]
|
||||
MKYENABLE .EQU FALSE ; MSX 5255 PPI KEYBOARD COMPATIBLE DRIVER (REQUIRES TMS VDA DRIVER)
|
||||
MKYKBLOUT .EQU KBD_US ; KBD KEYBOARD LANGUAGE: KBD_[US|DE]
|
||||
;
|
||||
DSRTCENABLE .EQU TRUE ; DSRTC: ENABLE DS-1302 CLOCK DRIVER (DSRTC.ASM)
|
||||
DSRTCMODE .EQU DSRTCMODE_STD ; DSRTC: OPERATING MODE: DSRTC_[STD|MFPIC]
|
||||
DSRTCCHG .EQU FALSE ; DSRTC: FORCE BATTERY CHARGE ON (USE WITH CAUTION!!!)
|
||||
;
|
||||
BQRTCENABLE .EQU FALSE ; BQRTC: ENABLE BQ4845 CLOCK DRIVER (BQRTC.ASM)
|
||||
BQRTC_BASE .EQU $50 ; BQRTC: I/O BASE ADDRESS
|
||||
;
|
||||
INTRTCENABLE .EQU FALSE ; ENABLE PERIODIC INTERRUPT CLOCK DRIVER (INTRTC.ASM)
|
||||
;
|
||||
RP5RTCENABLE .EQU FALSE ; RP5C01 RTC BASED CLOCK (RP5RTC.ASM)
|
||||
;
|
||||
HTIMENABLE .EQU FALSE ; ENABLE SIMH TIMER SUPPORT
|
||||
SIMRTCENABLE .EQU FALSE ; ENABLE SIMH CLOCK DRIVER (SIMRTC.ASM)
|
||||
;
|
||||
DS7RTCENABLE .EQU FALSE ; DS7RTC: ENABLE DS-1307 I2C CLOCK DRIVER (DS7RTC.ASM)
|
||||
DS7RTCMODE .EQU DS7RTCMODE_PCF ; DS7RTC: OPERATING MODE: DS7RTC_[PCF]
|
||||
;
|
||||
DUARTENABLE .EQU FALSE ; DUART: ENABLE 2681/2692 SERIAL DRIVER (DUART.ASM)
|
||||
;
|
||||
UARTENABLE .EQU TRUE ; UART: ENABLE 8250/16550-LIKE SERIAL DRIVER (UART.ASM)
|
||||
UARTOSC .EQU 1843200 ; UART: OSC FREQUENCY IN MHZ
|
||||
UARTCFG .EQU DEFSERCFG ; UART: LINE CONFIG FOR UART PORTS
|
||||
UARTCASSPD .EQU SER_300_8N1 ; UART: ECB CASSETTE UART DEFAULT SPEED
|
||||
UARTSBC .EQU TRUE ; UART: AUTO-DETECT SBC/ZETA ONBOARD UART
|
||||
UARTCAS .EQU TRUE ; UART: AUTO-DETECT ECB CASSETTE UART
|
||||
UARTMFP .EQU TRUE ; UART: AUTO-DETECT MF/PIC UART
|
||||
UART4 .EQU TRUE ; UART: AUTO-DETECT 4UART UART
|
||||
UARTRC .EQU FALSE ; UART: AUTO-DETECT RC UART
|
||||
;
|
||||
ASCIENABLE .EQU FALSE ; ASCI: ENABLE Z180 ASCI SERIAL DRIVER (ASCI.ASM)
|
||||
;
|
||||
Z2UENABLE .EQU FALSE ; Z2U: ENABLE Z280 UART SERIAL DRIVER (Z2U.ASM)
|
||||
;
|
||||
ACIAENABLE .EQU FALSE ; ACIA: ENABLE MOTOROLA 6850 ACIA DRIVER (ACIA.ASM)
|
||||
;
|
||||
SIOENABLE .EQU TRUE ; SIO: ENABLE ZILOG SIO SERIAL DRIVER (SIO.ASM)
|
||||
SIODEBUG .EQU FALSE ; SIO: ENABLE DEBUG OUTPUT
|
||||
SIOBOOT .EQU 0 ; SIO: REBOOT ON RCV CHAR (0=DISABLED)
|
||||
SIOCNT .EQU 1 ; SIO: NUMBER OF CHIPS TO DETECT (1-2), 2 CHANNELS PER CHIP
|
||||
SIO0MODE .EQU SIOMODE_ZP ; SIO 0: CHIP TYPE: SIOMODE_[STD|RC|SMB|ZP]
|
||||
SIO0BASE .EQU $B0 ; SIO 0: REGISTERS BASE ADR
|
||||
SIO0ACLK .EQU (4915200/8) ; SIO 0A: OSC FREQ IN HZ, ZP=2457600/4915200, RC/SMB=7372800
|
||||
SIO0ACFG .EQU DEFSERCFG ; SIO 0A: SERIAL LINE CONFIG
|
||||
SIO0ACTCC .EQU -1 ; SIO 0A: CTC CHANNEL 0=A, 1=B, 2=C, 3=D, -1 FOR NONE
|
||||
SIO0BCLK .EQU (4915200/8) ; SIO 0B: OSC FREQ IN HZ, ZP=2457600/4915200, RC/SMB=7372800
|
||||
SIO0BCFG .EQU DEFSERCFG ; SIO 0B: SERIAL LINE CONFIG
|
||||
SIO0BCTCC .EQU -1 ; SIO 0B: CTC CHANNEL 0=A, 1=B, 2=C, 3=D, -1 FOR NONE
|
||||
;
|
||||
XIOCFG .EQU DEFSERCFG ; XIO: SERIAL LINE CONFIG
|
||||
;
|
||||
VDUENABLE .EQU FALSE ; VDU: ENABLE VDU VIDEO/KBD DRIVER (VDU.ASM)
|
||||
VDUSIZ .EQU V80X25 ; VDU: DISPLAY FORMAT [V80X24|V80X25|V80X30]
|
||||
CVDUENABLE .EQU FALSE ; CVDU: ENABLE CVDU VIDEO/KBD DRIVER (CVDU.ASM)
|
||||
NECENABLE .EQU FALSE ; NEC: ENABLE NEC UPD7220 VIDEO/KBD DRIVER (NEC.ASM)
|
||||
TMSENABLE .EQU FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM)
|
||||
TMSMODE .EQU TMSMODE_SCG ; TMS: DRIVER MODE: TMSMODE_[SCG/N8/RC/RCV9958]
|
||||
TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)
|
||||
VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM)
|
||||
VGASIZ .EQU V80X25 ; VGA: DISPLAY FORMAT [V80X25|V80X30|V80X43]
|
||||
;
|
||||
MDENABLE .EQU TRUE ; MD: ENABLE MEMORY (ROM/RAM) DISK DRIVER (MD.ASM)
|
||||
MDROM .EQU TRUE ; MD: ENABLE ROM DISK
|
||||
MDRAM .EQU TRUE ; MD: ENABLE RAM DISK
|
||||
MDTRACE .EQU 1 ; MD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
|
||||
MDFFENABLE .EQU FALSE ; MD: ENABLE FLASH FILE SYSTEM
|
||||
;
|
||||
;
|
||||
FDENABLE .EQU FALSE ; FD: ENABLE FLOPPY DISK DRIVER (FD.ASM)
|
||||
FDMODE .EQU FDMODE_DIO3 ; FD: DRIVER MODE: FDMODE_[DIO|ZETA|ZETA2|DIDE|N8|DIO3|RCSMC|RCWDC|DYNO|EPWDC]
|
||||
FDCNT .EQU 2 ; FD: NUMBER OF FLOPPY DRIVES ON THE INTERFACE (1-2)
|
||||
FDTRACE .EQU 1 ; FD: TRACE LEVEL (0=NO,1=FATAL,2=ERRORS,3=ALL)
|
||||
FDMEDIA .EQU FDM144 ; FD: DEFAULT MEDIA FORMAT FDM[720|144|360|120|111]
|
||||
FDMEDIAALT .EQU FDM720 ; FD: ALTERNATE MEDIA FORMAT FDM[720|144|360|120|111]
|
||||
FDMAUTO .EQU TRUE ; FD: AUTO SELECT DEFAULT/ALTERNATE MEDIA FORMATS
|
||||
;
|
||||
RFENABLE .EQU FALSE ; RF: ENABLE RAM FLOPPY DRIVER
|
||||
RFCNT .EQU 1 ; RF: NUMBER OF RAM FLOPPY UNITS (1-4)
|
||||
;
|
||||
IDEENABLE .EQU FALSE ; IDE: ENABLE IDE DISK DRIVER (IDE.ASM)
|
||||
IDETRACE .EQU 1 ; IDE: TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
|
||||
IDECNT .EQU 1 ; IDE: NUMBER OF IDE INTERFACES TO DETECT (1-3), 2 DRIVES EACH
|
||||
IDE0MODE .EQU IDEMODE_DIO ; IDE 0: DRIVER MODE: IDEMODE_[DIO|DIDE|MK4|RC]
|
||||
IDE0BASE .EQU $20 ; IDE 0: IO BASE ADDRESS
|
||||
IDE0DATLO .EQU $20 ; IDE 0: DATA LO PORT FOR 16-BIT I/O
|
||||
IDE0DATHI .EQU $28 ; IDE 0: DATA HI PORT FOR 16-BIT I/O
|
||||
IDE0A8BIT .EQU FALSE ; IDE 0A (MASTER): 8 BIT XFER
|
||||
IDE0B8BIT .EQU FALSE ; IDE 0B (MASTER): 8 BIT XFER
|
||||
IDE1MODE .EQU IDEMODE_NONE ; IDE 1: DRIVER MODE: IDEMODE_[DIO|DIDE|MK4|RC]
|
||||
IDE1BASE .EQU $00 ; IDE 1: IO BASE ADDRESS
|
||||
IDE1DATLO .EQU $00 ; IDE 1: DATA LO PORT FOR 16-BIT I/O
|
||||
IDE1DATHI .EQU $00 ; IDE 1: DATA HI PORT FOR 16-BIT I/O
|
||||
IDE1A8BIT .EQU TRUE ; IDE 1A (MASTER): 8 BIT XFER
|
||||
IDE1B8BIT .EQU TRUE ; IDE 1B (MASTER): 8 BIT XFER
|
||||
IDE2MODE .EQU IDEMODE_NONE ; IDE 2: DRIVER MODE: IDEMODE_[DIO|DIDE|MK4|RC]
|
||||
IDE2BASE .EQU $00 ; IDE 2: IO BASE ADDRESS
|
||||
IDE2DATLO .EQU $00 ; IDE 2: DATA LO PORT FOR 16-BIT I/O
|
||||
IDE2DATHI .EQU $00 ; IDE 2: DATA HI PORT FOR 16-BIT I/O
|
||||
IDE2A8BIT .EQU TRUE ; IDE 2A (MASTER): 8 BIT XFER
|
||||
IDE2B8BIT .EQU TRUE ; IDE 2B (MASTER): 8 BIT XFER
|
||||
;
|
||||
PPIDEENABLE .EQU FALSE ; PPIDE: ENABLE PARALLEL PORT IDE DISK DRIVER (PPIDE.ASM)
|
||||
PPIDETRACE .EQU 1 ; PPIDE: TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
|
||||
PPIDECNT .EQU 1 ; PPIDE: NUMBER OF PPI CHIPS TO DETECT (1-3), 2 DRIVES PER CHIP
|
||||
PPIDE0BASE .EQU $60 ; PPIDE 0: PPI REGISTERS BASE ADR
|
||||
PPIDE0A8BIT .EQU FALSE ; PPIDE 0A (MASTER): 8 BIT XFER
|
||||
PPIDE0B8BIT .EQU FALSE ; PPIDE 0B (SLAVE): 8 BIT XFER
|
||||
PPIDE1BASE .EQU $20 ; PPIDE 1: PPI REGISTERS BASE ADR
|
||||
PPIDE1A8BIT .EQU FALSE ; PPIDE 1A (MASTER): 8 BIT XFER
|
||||
PPIDE1B8BIT .EQU FALSE ; PPIDE 0B (SLAVE): 8 BIT XFER
|
||||
PPIDE2BASE .EQU $44 ; PPIDE 2: PPI REGISTERS BASE ADR
|
||||
PPIDE2A8BIT .EQU FALSE ; PPIDE 2A (MASTER): 8 BIT XFER
|
||||
PPIDE2B8BIT .EQU FALSE ; PPIDE 0B (SLAVE): 8 BIT XFER
|
||||
;
|
||||
SDENABLE .EQU FALSE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM)
|
||||
SDMODE .EQU SDMODE_JUHA ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT]
|
||||
SDPPIBASE .EQU $60 ; SD: BASE I/O ADDRESS OF PPI FOR PPI MODDE
|
||||
SDCNT .EQU 1 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD & SC ONLY
|
||||
SDTRACE .EQU 1 ; SD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
|
||||
SDCSIOFAST .EQU FALSE ; SD: ENABLE TABLE-DRIVEN BIT INVERTER IN CSIO MODE
|
||||
;
|
||||
PRPENABLE .EQU FALSE ; PRP: ENABLE ECB PROPELLER IO BOARD DRIVER (PRP.ASM)
|
||||
PRPSDENABLE .EQU TRUE ; PRP: ENABLE PROPIO DRIVER SD CARD SUPPORT
|
||||
PRPSDTRACE .EQU 1 ; PRP: SD CARD TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
|
||||
PRPCONENABLE .EQU TRUE ; PRP: ENABLE PROPIO DRIVER VIDEO/KBD SUPPORT
|
||||
;
|
||||
PPPENABLE .EQU FALSE ; PPP: ENABLE ZETA PARALLEL PORT PROPELLER BOARD DRIVER (PPP.ASM)
|
||||
;
|
||||
HDSKENABLE .EQU FALSE ; HDSK: ENABLE SIMH HDSK DISK DRIVER (HDSK.ASM)
|
||||
HDSKTRACE .EQU 1 ; HDSK: TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
|
||||
;
|
||||
PIO_4P .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR ECB 4P BOARD
|
||||
PIO4BASE .EQU $90 ; PIO: PIO REGISTERS BASE ADR FOR ECB 4P BOARD
|
||||
PIO_ZP .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR ECB ZILOG PERIPHERALS BOARD (PIO.ASM)
|
||||
PIOZBASE .EQU $88 ; PIO: PIO REGISTERS BASE ADR FOR ECB ZP BOARD
|
||||
PIO_SBC .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR 8255 CHIP
|
||||
PIOSBASE .EQU $60 ; PIO: PIO REGISTERS BASE ADR FOR SBC PPI
|
||||
;
|
||||
UFENABLE .EQU FALSE ; UF: ENABLE ECB USB FIFO DRIVER (UF.ASM)
|
||||
UFBASE .EQU $0C ; UF: REGISTERS BASE ADR
|
||||
;
|
||||
SN76489ENABLE .EQU FALSE ; SN76489 SOUND DRIVER
|
||||
AUDIOTRACE .EQU FALSE ; ENABLE TRACING TO CONSOLE OF SOUND DRIVER
|
||||
SN7CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4
|
||||
;
|
||||
AY38910ENABLE .EQU FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
|
||||
AY_CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4
|
||||
AYMODE .EQU AYMODE_NONE ; AY: DRIVER MODE: AYMODE_[SCG/N8/RCZ80/RCZ180]
|
||||
;
|
||||
SPKENABLE .EQU TRUE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM)
|
||||
@@ -13,7 +13,7 @@
|
||||
;
|
||||
#DEFINE PLATFORM_NAME "MARK IV"
|
||||
;
|
||||
PLATFORM .EQU PLT_MK4 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO]
|
||||
PLATFORM .EQU PLT_MK4 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO|RCZ280|MBC]
|
||||
CPUFAM .EQU CPU_Z180 ; CPU FAMILY: CPU_[Z80|Z180|Z280]
|
||||
BIOS .EQU BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA]
|
||||
BATCOND .EQU FALSE ; ENABLE LOW BATTERY WARNING MESSAGE
|
||||
@@ -66,10 +66,14 @@ DIAGPORT .EQU $00 ; DIAGNOSTIC PORT ADDRESS
|
||||
DIAGDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON DIAGNOSTIC LEDS
|
||||
;
|
||||
LEDENABLE .EQU FALSE ; ENABLES STATUS LED (SINGLE LED)
|
||||
LEDMODE .EQU LEDMODE_STD ; LEDMODE_[STD|RTC]
|
||||
LEDPORT .EQU $0E ; STATUS LED PORT ADDRESS
|
||||
LEDDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON STATUS LED
|
||||
;
|
||||
DSKYENABLE .EQU FALSE ; ENABLES DSKY (DO NOT COMBINE WITH PPIDE)
|
||||
DSKYENABLE .EQU FALSE ; ENABLES DSKY
|
||||
DSKYMODE .EQU DSKYMODE_V1 ; DSKY VERSION: DSKYMODE_[V1|NG]
|
||||
DSKYPPIBASE .EQU $60 ; BASE I/O ADDRESS OF DSKY PPI
|
||||
DSKYOSC .EQU 3000000 ; OSCILLATOR FREQ FOR DSKYNG (IN HZ)
|
||||
;
|
||||
BOOTCON .EQU 0 ; BOOT CONSOLE DEVICE
|
||||
CRTACT .EQU FALSE ; ACTIVATE CRT (VDU,CVDU,PROPIO,ETC) AT STARTUP
|
||||
@@ -189,6 +193,7 @@ PPIDE2B8BIT .EQU FALSE ; PPIDE 0B (SLAVE): 8 BIT XFER
|
||||
;
|
||||
SDENABLE .EQU TRUE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM)
|
||||
SDMODE .EQU SDMODE_MK4 ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT]
|
||||
SDPPIBASE .EQU $60 ; SD: BASE I/O ADDRESS OF PPI FOR PPI MODDE
|
||||
SDCNT .EQU 1 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD & SC ONLY
|
||||
SDTRACE .EQU 1 ; SD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
|
||||
SDCSIOFAST .EQU TRUE ; SD: ENABLE TABLE-DRIVEN BIT INVERTER IN CSIO MODE
|
||||
@@ -199,6 +204,7 @@ PRPSDTRACE .EQU 1 ; PRP: SD CARD TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
|
||||
PRPCONENABLE .EQU TRUE ; PRP: ENABLE PROPIO DRIVER VIDEO/KBD SUPPORT
|
||||
;
|
||||
PPPENABLE .EQU FALSE ; PPP: ENABLE ZETA PARALLEL PORT PROPELLER BOARD DRIVER (PPP.ASM)
|
||||
PPPBASE .EQU $60 ; PPP: PPI REGISTERS BASE ADDRESS
|
||||
PPPSDENABLE .EQU TRUE ; PPP: ENABLE PPP DRIVER SD CARD SUPPORT
|
||||
PPPSDTRACE .EQU 1 ; PPP: SD CARD TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
|
||||
PPPCONENABLE .EQU TRUE ; PPP: ENABLE PPP DRIVER VIDEO/KBD SUPPORT
|
||||
@@ -209,7 +215,8 @@ PIO_4P .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR ECB 4P BOARD
|
||||
PIO4BASE .EQU $90 ; PIO: PIO REGISTERS BASE ADR FOR ECB 4P BOARD
|
||||
PIO_ZP .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR ECB ZILOG PERIPHERALS BOARD (PIO.ASM)
|
||||
PIOZBASE .EQU $88 ; PIO: PIO REGISTERS BASE ADR FOR ECB ZP BOARD
|
||||
PPI_SBC .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR 8255 CHIP
|
||||
PIO_SBC .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR 8255 CHIP
|
||||
PIOSBASE .EQU $60 ; PIO: PIO REGISTERS BASE ADR FOR SBC PPI
|
||||
;
|
||||
UFENABLE .EQU FALSE ; UF: ENABLE ECB USB FIFO DRIVER (UF.ASM)
|
||||
UFBASE .EQU $0C ; UF: REGISTERS BASE ADR
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
;
|
||||
#DEFINE PLATFORM_NAME "N8"
|
||||
;
|
||||
PLATFORM .EQU PLT_N8 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO]
|
||||
PLATFORM .EQU PLT_N8 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO|RCZ280|MBC]
|
||||
CPUFAM .EQU CPU_Z180 ; CPU FAMILY: CPU_[Z80|Z180|Z280]
|
||||
BIOS .EQU BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA]
|
||||
BATCOND .EQU FALSE ; ENABLE LOW BATTERY WARNING MESSAGE
|
||||
@@ -48,7 +48,6 @@ N8_RMAP .EQU $96 ; N8: ROM PAGE REGISTER ADR
|
||||
N8_DEFACR .EQU $1B ; N8: AUX CTL REGISTER DEFAULT VALUE (QUIESCIENT STATE)
|
||||
;
|
||||
RTCIO .EQU N8_RTC ; RTC LATCH REGISTER ADR
|
||||
PPIBASE .EQU N8_PPI0 ; PRIMARY PARALLEL PORT REGISTERS BASE ADR
|
||||
;
|
||||
KIOENABLE .EQU FALSE ; ENABLE ZILOG KIO SUPPORT
|
||||
KIOBASE .EQU $80 ; KIO BASE I/O ADDRESS
|
||||
@@ -68,11 +67,15 @@ DIAGENABLE .EQU FALSE ; ENABLES OUTPUT TO 8 BIT LED DIAGNOSTIC PORT
|
||||
DIAGPORT .EQU $00 ; DIAGNOSTIC PORT ADDRESS
|
||||
DIAGDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON DIAGNOSTIC LEDS
|
||||
;
|
||||
LEDENABLE .EQU FALSE ; ENABLES STATUS LED (SINGLE LED)
|
||||
LEDPORT .EQU $0E ; STATUS LED PORT ADDRESS
|
||||
LEDENABLE .EQU FALSE ; ENABLES STATUS LED
|
||||
LEDMODE .EQU LEDMODE_RTC ; LEDMODE_[STD|RTC]
|
||||
LEDPORT .EQU RTCIO ; STATUS LED PORT ADDRESS
|
||||
LEDDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON STATUS LED
|
||||
;
|
||||
DSKYENABLE .EQU FALSE ; ENABLES DSKY (DO NOT COMBINE WITH PPIDE)
|
||||
DSKYENABLE .EQU FALSE ; ENABLES DSKY
|
||||
DSKYMODE .EQU DSKYMODE_V1 ; DSKY VERSION: DSKYMODE_[V1|NG]
|
||||
DSKYPPIBASE .EQU $60 ; BASE I/O ADDRESS OF DSKY PPI
|
||||
DSKYOSC .EQU 3000000 ; OSCILLATOR FREQ FOR DSKYNG (IN HZ)
|
||||
;
|
||||
BOOTCON .EQU 0 ; BOOT CONSOLE DEVICE
|
||||
CRTACT .EQU FALSE ; ACTIVATE CRT (VDU,CVDU,PROPIO,ETC) AT STARTUP
|
||||
@@ -192,6 +195,7 @@ PPIDE2B8BIT .EQU FALSE ; PPIDE 0B (SLAVE): 8 BIT XFER
|
||||
;
|
||||
SDENABLE .EQU TRUE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM)
|
||||
SDMODE .EQU SDMODE_CSIO ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT]
|
||||
SDPPIBASE .EQU $60 ; SD: BASE I/O ADDRESS OF PPI FOR PPI MODDE
|
||||
SDCNT .EQU 1 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD & SC ONLY
|
||||
SDTRACE .EQU 1 ; SD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
|
||||
SDCSIOFAST .EQU FALSE ; SD: ENABLE TABLE-DRIVEN BIT INVERTER IN CSIO MODE
|
||||
@@ -209,7 +213,8 @@ PIO_4P .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR ECB 4P BOARD
|
||||
PIO4BASE .EQU $90 ; PIO: PIO REGISTERS BASE ADR FOR ECB 4P BOARD
|
||||
PIO_ZP .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR ECB ZILOG PERIPHERALS BOARD (PIO.ASM)
|
||||
PIOZBASE .EQU $88 ; PIO: PIO REGISTERS BASE ADR FOR ECB ZP BOARD
|
||||
PPI_SBC .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR 8255 CHIP
|
||||
PIO_SBC .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR 8255 CHIP
|
||||
PIOSBASE .EQU $60 ; PIO: PIO REGISTERS BASE ADR FOR SBC PPI
|
||||
;
|
||||
UFENABLE .EQU FALSE ; UF: ENABLE ECB USB FIFO DRIVER (UF.ASM)
|
||||
FIFO_BASE .EQU $0C ; UF: REGISTERS BASE ADR
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
;
|
||||
#DEFINE PLATFORM_NAME "RC2014"
|
||||
;
|
||||
PLATFORM .EQU PLT_RCZ180 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO]
|
||||
PLATFORM .EQU PLT_RCZ180 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO|RCZ280|MBC]
|
||||
CPUFAM .EQU CPU_Z180 ; CPU FAMILY: CPU_[Z80|Z180|Z280]
|
||||
BIOS .EQU BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA]
|
||||
BATCOND .EQU FALSE ; ENABLE LOW BATTERY WARNING MESSAGE
|
||||
@@ -66,6 +66,7 @@ DIAGPORT .EQU $00 ; DIAGNOSTIC PORT ADDRESS
|
||||
DIAGDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON DIAGNOSTIC LEDS
|
||||
;
|
||||
LEDENABLE .EQU FALSE ; ENABLES STATUS LED (SINGLE LED)
|
||||
LEDMODE .EQU LEDMODE_STD ; LEDMODE_[STD|RTC]
|
||||
LEDPORT .EQU $0E ; STATUS LED PORT ADDRESS
|
||||
LEDDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON STATUS LED
|
||||
;
|
||||
@@ -207,6 +208,7 @@ PPIDE2B8BIT .EQU FALSE ; PPIDE 0B (SLAVE): 8 BIT XFER
|
||||
;
|
||||
SDENABLE .EQU FALSE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM)
|
||||
SDMODE .EQU SDMODE_MT ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT]
|
||||
SDPPIBASE .EQU $60 ; SD: BASE I/O ADDRESS OF PPI FOR PPI MODDE
|
||||
SDCNT .EQU 2 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD & SC ONLY
|
||||
SDTRACE .EQU 1 ; SD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
|
||||
SDCSIOFAST .EQU FALSE ; SD: ENABLE TABLE-DRIVEN BIT INVERTER IN CSIO MODE
|
||||
@@ -223,7 +225,7 @@ HDSKENABLE .EQU FALSE ; HDSK: ENABLE SIMH HDSK DISK DRIVER (HDSK.ASM)
|
||||
;
|
||||
PIO_4P .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR ECB 4P BOARD
|
||||
PIO_ZP .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR ECB ZILOG PERIPHERALS BOARD (PIO.ASM)
|
||||
PPI_SBC .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR 8255 CHIP
|
||||
PIO_SBC .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR 8255 CHIP
|
||||
;
|
||||
UFENABLE .EQU FALSE ; UF: ENABLE ECB USB FIFO DRIVER (UF.ASM)
|
||||
;
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
;
|
||||
#DEFINE PLATFORM_NAME "RC2014"
|
||||
;
|
||||
PLATFORM .EQU PLT_RCZ280 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO|RCZ280]
|
||||
PLATFORM .EQU PLT_RCZ280 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO|RCZ280|MBC]
|
||||
CPUFAM .EQU CPU_Z280 ; CPU FAMILY: CPU_[Z80|Z180|Z280]
|
||||
BIOS .EQU BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA]
|
||||
BATCOND .EQU FALSE ; ENABLE LOW BATTERY WARNING MESSAGE
|
||||
@@ -71,6 +71,7 @@ DIAGPORT .EQU $00 ; DIAGNOSTIC PORT ADDRESS
|
||||
DIAGDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON DIAGNOSTIC LEDS
|
||||
;
|
||||
LEDENABLE .EQU FALSE ; ENABLES STATUS LED (SINGLE LED)
|
||||
LEDMODE .EQU LEDMODE_STD ; LEDMODE_[STD|RTC]
|
||||
LEDPORT .EQU $0E ; STATUS LED PORT ADDRESS
|
||||
LEDDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON STATUS LED
|
||||
;
|
||||
@@ -223,6 +224,7 @@ PPIDE2B8BIT .EQU FALSE ; PPIDE 0B (SLAVE): 8 BIT XFER
|
||||
;
|
||||
SDENABLE .EQU FALSE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM)
|
||||
SDMODE .EQU SDMODE_MT ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT]
|
||||
SDPPIBASE .EQU $60 ; SD: BASE I/O ADDRESS OF PPI FOR PPI MODDE
|
||||
SDCNT .EQU 2 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD & SC ONLY
|
||||
SDTRACE .EQU 1 ; SD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
|
||||
SDCSIOFAST .EQU FALSE ; SD: ENABLE TABLE-DRIVEN BIT INVERTER IN CSIO MODE
|
||||
@@ -239,7 +241,7 @@ HDSKENABLE .EQU FALSE ; HDSK: ENABLE SIMH HDSK DISK DRIVER (HDSK.ASM)
|
||||
;
|
||||
PIO_4P .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR ECB 4P BOARD
|
||||
PIO_ZP .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR ECB ZILOG PERIPHERALS BOARD (PIO.ASM)
|
||||
PPI_SBC .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR 8255 CHIP
|
||||
PIO_SBC .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR 8255 CHIP
|
||||
;
|
||||
UFENABLE .EQU FALSE ; UF: ENABLE ECB USB FIFO DRIVER (UF.ASM)
|
||||
;
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
;
|
||||
#DEFINE PLATFORM_NAME "RC2014"
|
||||
;
|
||||
PLATFORM .EQU PLT_RCZ80 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO]
|
||||
PLATFORM .EQU PLT_RCZ80 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO|RCZ280|MBC]
|
||||
CPUFAM .EQU CPU_Z80 ; CPU FAMILY: CPU_[Z80|Z180|Z280]
|
||||
BIOS .EQU BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA]
|
||||
BATCOND .EQU FALSE ; ENABLE LOW BATTERY WARNING MESSAGE
|
||||
@@ -65,6 +65,7 @@ DIAGPORT .EQU $00 ; DIAGNOSTIC PORT ADDRESS
|
||||
DIAGDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON DIAGNOSTIC LEDS
|
||||
;
|
||||
LEDENABLE .EQU FALSE ; ENABLES STATUS LED (SINGLE LED)
|
||||
LEDMODE .EQU LEDMODE_STD ; LEDMODE_[STD|RTC]
|
||||
LEDPORT .EQU $0E ; STATUS LED PORT ADDRESS
|
||||
LEDDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON STATUS LED
|
||||
;
|
||||
@@ -212,6 +213,7 @@ PPIDE2B8BIT .EQU FALSE ; PPIDE 0B (SLAVE): 8 BIT XFER
|
||||
;
|
||||
SDENABLE .EQU FALSE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM)
|
||||
SDMODE .EQU SDMODE_MT ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT]
|
||||
SDPPIBASE .EQU $60 ; SD: BASE I/O ADDRESS OF PPI FOR PPI MODDE
|
||||
SDCNT .EQU 2 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD & SC ONLY
|
||||
SDTRACE .EQU 1 ; SD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
|
||||
SDCSIOFAST .EQU FALSE ; SD: ENABLE TABLE-DRIVEN BIT INVERTER IN CSIO MODE
|
||||
@@ -228,7 +230,7 @@ HDSKENABLE .EQU FALSE ; HDSK: ENABLE SIMH HDSK DISK DRIVER (HDSK.ASM)
|
||||
;
|
||||
PIO_4P .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR ECB 4P BOARD
|
||||
PIO_ZP .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR ECB ZILOG PERIPHERALS BOARD (PIO.ASM)
|
||||
PPI_SBC .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR 8255 CHIP
|
||||
PIO_SBC .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR 8255 CHIP
|
||||
;
|
||||
UFENABLE .EQU FALSE ; UF: ENABLE ECB USB FIFO DRIVER (UF.ASM)
|
||||
;
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
;
|
||||
#DEFINE PLATFORM_NAME "SBC"
|
||||
;
|
||||
PLATFORM .EQU PLT_SBC ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO]
|
||||
PLATFORM .EQU PLT_SBC ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO|RCZ280|MBC]
|
||||
CPUFAM .EQU CPU_Z80 ; CPU FAMILY: CPU_[Z80|Z180|Z280]
|
||||
BIOS .EQU BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA]
|
||||
BATCOND .EQU FALSE ; ENABLE LOW BATTERY WARNING MESSAGE
|
||||
@@ -35,7 +35,6 @@ MPCL_RAM .EQU $78 ; SBC MEM MGR RAM PAGE SELECT REG (WRITE ONLY)
|
||||
MPCL_ROM .EQU $7C ; SBC MEM MGR ROM PAGE SELECT REG (WRITE ONLY)
|
||||
;
|
||||
RTCIO .EQU $70 ; RTC LATCH REGISTER ADR
|
||||
PPIBASE .EQU $60 ; PRIMARY PARALLEL PORT REGISTERS BASE ADR
|
||||
;
|
||||
KIOENABLE .EQU FALSE ; ENABLE ZILOG KIO SUPPORT
|
||||
KIOBASE .EQU $80 ; KIO BASE I/O ADDRESS
|
||||
@@ -60,11 +59,15 @@ DIAGENABLE .EQU FALSE ; ENABLES OUTPUT TO 8 BIT LED DIAGNOSTIC PORT
|
||||
DIAGPORT .EQU $00 ; DIAGNOSTIC PORT ADDRESS
|
||||
DIAGDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON DIAGNOSTIC LEDS
|
||||
;
|
||||
LEDENABLE .EQU FALSE ; ENABLES STATUS LED (SINGLE LED)
|
||||
LEDPORT .EQU $0E ; STATUS LED PORT ADDRESS
|
||||
LEDENABLE .EQU FALSE ; ENABLES STATUS LED
|
||||
LEDMODE .EQU LEDMODE_RTC ; LEDMODE_[STD|RTC]
|
||||
LEDPORT .EQU RTCIO ; STATUS LED PORT ADDRESS
|
||||
LEDDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON STATUS LED
|
||||
;
|
||||
DSKYENABLE .EQU FALSE ; ENABLES DSKY (DO NOT COMBINE WITH PPIDE)
|
||||
DSKYENABLE .EQU FALSE ; ENABLES DSKY
|
||||
DSKYMODE .EQU DSKYMODE_V1 ; DSKY VERSION: DSKYMODE_[V1|NG]
|
||||
DSKYPPIBASE .EQU $60 ; BASE I/O ADDRESS OF DSKY PPI
|
||||
DSKYOSC .EQU 3000000 ; OSCILLATOR FREQ FOR DSKYNG (IN HZ)
|
||||
;
|
||||
BOOTCON .EQU 0 ; BOOT CONSOLE DEVICE
|
||||
CRTACT .EQU FALSE ; ACTIVATE CRT (VDU,CVDU,PROPIO,ETC) AT STARTUP
|
||||
@@ -192,6 +195,7 @@ PPIDE2B8BIT .EQU FALSE ; PPIDE 0B (SLAVE): 8 BIT XFER
|
||||
;
|
||||
SDENABLE .EQU FALSE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM)
|
||||
SDMODE .EQU SDMODE_JUHA ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT]
|
||||
SDPPIBASE .EQU $60 ; SD: BASE I/O ADDRESS OF PPI FOR PPI MODDE
|
||||
SDCNT .EQU 1 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD & SC ONLY
|
||||
SDTRACE .EQU 1 ; SD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
|
||||
SDCSIOFAST .EQU FALSE ; SD: ENABLE TABLE-DRIVEN BIT INVERTER IN CSIO MODE
|
||||
@@ -210,7 +214,8 @@ PIO_4P .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR ECB 4P BOARD
|
||||
PIO4BASE .EQU $90 ; PIO: PIO REGISTERS BASE ADR FOR ECB 4P BOARD
|
||||
PIO_ZP .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR ECB ZILOG PERIPHERALS BOARD (PIO.ASM)
|
||||
PIOZBASE .EQU $88 ; PIO: PIO REGISTERS BASE ADR FOR ECB ZP BOARD
|
||||
PPI_SBC .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR 8255 CHIP
|
||||
PIO_SBC .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR 8255 CHIP
|
||||
PIOSBASE .EQU $60 ; PIO: PIO REGISTERS BASE ADR FOR SBC PPI
|
||||
;
|
||||
UFENABLE .EQU FALSE ; UF: ENABLE ECB USB FIFO DRIVER (UF.ASM)
|
||||
UFBASE .EQU $0C ; UF: REGISTERS BASE ADR
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
;
|
||||
#DEFINE PLATFORM_NAME "SCZ180"
|
||||
;
|
||||
PLATFORM .EQU PLT_SCZ180 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO]
|
||||
PLATFORM .EQU PLT_SCZ180 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO|RCZ280|MBC]
|
||||
CPUFAM .EQU CPU_Z180 ; CPU FAMILY: CPU_[Z80|Z180|Z280]
|
||||
BIOS .EQU BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA]
|
||||
BATCOND .EQU FALSE ; ENABLE LOW BATTERY WARNING MESSAGE
|
||||
@@ -61,6 +61,7 @@ DIAGPORT .EQU $0D ; DIAGNOSTIC PORT ADDRESS
|
||||
DIAGDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON DIAGNOSTIC LEDS
|
||||
;
|
||||
LEDENABLE .EQU FALSE ; ENABLES STATUS LED (SINGLE LED)
|
||||
LEDMODE .EQU LEDMODE_STD ; LEDMODE_[STD|RTC]
|
||||
LEDPORT .EQU $0E ; STATUS LED PORT ADDRESS
|
||||
LEDDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON STATUS LED
|
||||
;
|
||||
@@ -202,6 +203,7 @@ PPIDE2B8BIT .EQU FALSE ; PPIDE 0B (SLAVE): 8 BIT XFER
|
||||
;
|
||||
SDENABLE .EQU TRUE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM)
|
||||
SDMODE .EQU SDMODE_SC ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT]
|
||||
SDPPIBASE .EQU $60 ; SD: BASE I/O ADDRESS OF PPI FOR PPI MODDE
|
||||
SDCNT .EQU 1 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD & SC ONLY
|
||||
SDTRACE .EQU 1 ; SD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
|
||||
SDCSIOFAST .EQU FALSE ; SD: ENABLE TABLE-DRIVEN BIT INVERTER IN CSIO MODE
|
||||
@@ -218,7 +220,7 @@ HDSKENABLE .EQU FALSE ; HDSK: ENABLE SIMH HDSK DISK DRIVER (HDSK.ASM)
|
||||
;
|
||||
PIO_4P .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR ECB 4P BOARD
|
||||
PIO_ZP .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR ECB ZILOG PERIPHERALS BOARD (PIO.ASM)
|
||||
PPI_SBC .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR 8255 CHIP
|
||||
PIO_SBC .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR 8255 CHIP
|
||||
;
|
||||
UFENABLE .EQU FALSE ; UF: ENABLE ECB USB FIFO DRIVER (UF.ASM)
|
||||
;
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
;
|
||||
#DEFINE PLATFORM_NAME "UNA"
|
||||
;
|
||||
PLATFORM .EQU PLT_UNA ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO]
|
||||
PLATFORM .EQU PLT_UNA ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO|RCZ280|MBC]
|
||||
BIOS .EQU BIOS_UNA ; HARDWARE BIOS: BIOS_[WBW|UNA]
|
||||
;
|
||||
BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
;
|
||||
#DEFINE PLATFORM_NAME "ZETA"
|
||||
;
|
||||
PLATFORM .EQU PLT_ZETA ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO]
|
||||
PLATFORM .EQU PLT_ZETA ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO|RCZ280|MBC]
|
||||
CPUFAM .EQU CPU_Z80 ; CPU FAMILY: CPU_[Z80|Z180|Z280]
|
||||
BIOS .EQU BIOS_WBW ; BIOS_[WBW|UNA]: HARDWARE BIOS
|
||||
BATCOND .EQU FALSE ; ENABLE LOW BATTERY WARNING MESSAGE
|
||||
@@ -35,7 +35,6 @@ MPCL_RAM .EQU $78 ; SBC MEM MGR RAM PAGE SELECT REG (WRITE ONLY)
|
||||
MPCL_ROM .EQU $7C ; SBC MEM MGR ROM PAGE SELECT REG (WRITE ONLY)
|
||||
;
|
||||
RTCIO .EQU $70 ; RTC LATCH REGISTER ADR
|
||||
PPIBASE .EQU $60 ; PRIMARY PARALLEL PORT REGISTERS BASE ADR
|
||||
;
|
||||
KIOENABLE .EQU FALSE ; ENABLE ZILOG KIO SUPPORT
|
||||
KIOBASE .EQU $80 ; KIO BASE I/O ADDRESS
|
||||
@@ -52,11 +51,15 @@ DIAGENABLE .EQU FALSE ; ENABLES OUTPUT TO 8 BIT LED DIAGNOSTIC PORT
|
||||
DIAGPORT .EQU $00 ; DIAGNOSTIC PORT ADDRESS
|
||||
DIAGDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON DIAGNOSTIC LEDS
|
||||
;
|
||||
LEDENABLE .EQU FALSE ; ENABLES STATUS LED (SINGLE LED)
|
||||
LEDPORT .EQU $0E ; STATUS LED PORT ADDRESS
|
||||
LEDENABLE .EQU FALSE ; ENABLES STATUS LED
|
||||
LEDMODE .EQU LEDMODE_RTC ; LEDMODE_[STD|RTC]
|
||||
LEDPORT .EQU RTCIO ; STATUS LED PORT ADDRESS
|
||||
LEDDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON STATUS LED
|
||||
;
|
||||
DSKYENABLE .EQU FALSE ; ENABLES DSKY (DO NOT COMBINE WITH PPIDE)
|
||||
DSKYENABLE .EQU FALSE ; ENABLES DSKY
|
||||
DSKYMODE .EQU DSKYMODE_V1 ; DSKY VERSION: DSKYMODE_[V1|NG]
|
||||
DSKYPPIBASE .EQU $60 ; BASE I/O ADDRESS OF DSKY PPI
|
||||
DSKYOSC .EQU 3000000 ; OSCILLATOR FREQ FOR DSKYNG (IN HZ)
|
||||
;
|
||||
BOOTCON .EQU 0 ; BOOT CONSOLE DEVICE
|
||||
CRTACT .EQU FALSE ; ACTIVATE CRT (VDU,CVDU,PROPIO,ETC) AT STARTUP
|
||||
@@ -137,6 +140,7 @@ PPIDE0B8BIT .EQU FALSE ; PPIDE 0B (SLAVE): 8 BIT XFER
|
||||
;
|
||||
SDENABLE .EQU FALSE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM)
|
||||
SDMODE .EQU SDMODE_PPI ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT]
|
||||
SDPPIBASE .EQU $60 ; SD: BASE I/O ADDRESS OF PPI FOR PPI MODDE
|
||||
SDCNT .EQU 1 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD & SC ONLY
|
||||
SDTRACE .EQU 1 ; SD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
|
||||
SDCSIOFAST .EQU FALSE ; SD: ENABLE TABLE-DRIVEN BIT INVERTER IN CSIO MODE
|
||||
@@ -144,6 +148,7 @@ SDCSIOFAST .EQU FALSE ; SD: ENABLE TABLE-DRIVEN BIT INVERTER IN CSIO MODE
|
||||
PRPENABLE .EQU FALSE ; PRP: ENABLE ECB PROPELLER IO BOARD DRIVER (PRP.ASM)
|
||||
;
|
||||
PPPENABLE .EQU FALSE ; PPP: ENABLE ZETA PARALLEL PORT PROPELLER BOARD DRIVER (PPP.ASM)
|
||||
PPPBASE .EQU $60 ; PPP: PPI REGISTERS BASE ADDRESS
|
||||
PPPSDENABLE .EQU TRUE ; PPP: ENABLE PPP DRIVER SD CARD SUPPORT
|
||||
PPPSDTRACE .EQU 1 ; PPP: SD CARD TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
|
||||
PPPCONENABLE .EQU TRUE ; PPP: ENABLE PPP DRIVER VIDEO/KBD SUPPORT
|
||||
@@ -152,7 +157,8 @@ HDSKENABLE .EQU FALSE ; HDSK: ENABLE SIMH HDSK DISK DRIVER (HDSK.ASM)
|
||||
;
|
||||
PIO_4P .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR ECB 4P BOARD
|
||||
PIO_ZP .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR ECB ZILOG PERIPHERALS BOARD (PIO.ASM)
|
||||
PPI_SBC .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR 8255 CHIP
|
||||
PIO_SBC .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR 8255 CHIP
|
||||
PIOSBASE .EQU $60 ; PIO: PIO REGISTERS BASE ADR FOR SBC PPI
|
||||
;
|
||||
UFENABLE .EQU FALSE ; UF: ENABLE ECB USB FIFO DRIVER (UF.ASM)
|
||||
;
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
;
|
||||
#DEFINE PLATFORM_NAME "ZETA V2"
|
||||
;
|
||||
PLATFORM .EQU PLT_ZETA2 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO]
|
||||
PLATFORM .EQU PLT_ZETA2 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCZ180|EZZ80|SCZ180|DYNO|RCZ280|MBC]
|
||||
CPUFAM .EQU CPU_Z80 ; CPU FAMILY: CPU_[Z80|Z180|Z280]
|
||||
BIOS .EQU BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA]
|
||||
BATCOND .EQU FALSE ; ENABLE LOW BATTERY WARNING MESSAGE
|
||||
@@ -38,7 +38,6 @@ MPGSEL_3 .EQU $7B ; Z2 MEM MGR BANK 3 PAGE SELECT REG (WRITE ONLY)
|
||||
MPGENA .EQU $7C ; Z2 MEM MGR PAGING ENABLE REGISTER (BIT 0, WRITE ONLY)
|
||||
;
|
||||
RTCIO .EQU $70 ; RTC LATCH REGISTER ADR
|
||||
PPIBASE .EQU $60 ; PRIMARY PARALLEL PORT REGISTERS BASE ADR
|
||||
;
|
||||
KIOENABLE .EQU FALSE ; ENABLE ZILOG KIO SUPPORT
|
||||
KIOBASE .EQU $80 ; KIO BASE I/O ADDRESS
|
||||
@@ -63,11 +62,15 @@ DIAGENABLE .EQU FALSE ; ENABLES OUTPUT TO 8 BIT LED DIAGNOSTIC PORT
|
||||
DIAGPORT .EQU $00 ; DIAGNOSTIC PORT ADDRESS
|
||||
DIAGDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON DIAGNOSTIC LEDS
|
||||
;
|
||||
LEDENABLE .EQU FALSE ; ENABLES STATUS LED (SINGLE LED)
|
||||
LEDPORT .EQU $0E ; STATUS LED PORT ADDRESS
|
||||
LEDENABLE .EQU FALSE ; ENABLES STATUS LED
|
||||
LEDMODE .EQU LEDMODE_RTC ; LEDMODE_[STD|RTC]
|
||||
LEDPORT .EQU RTCIO ; STATUS LED PORT ADDRESS
|
||||
LEDDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON STATUS LED
|
||||
;
|
||||
DSKYENABLE .EQU FALSE ; ENABLES DSKY (DO NOT COMBINE WITH PPIDE)
|
||||
DSKYENABLE .EQU FALSE ; ENABLES DSKY
|
||||
DSKYMODE .EQU DSKYMODE_V1 ; DSKY VERSION: DSKYMODE_[V1|NG]
|
||||
DSKYPPIBASE .EQU $60 ; BASE I/O ADDRESS OF DSKY PPI
|
||||
DSKYOSC .EQU 3000000 ; OSCILLATOR FREQ FOR DSKYNG (IN HZ)
|
||||
;
|
||||
BOOTCON .EQU 0 ; BOOT CONSOLE DEVICE
|
||||
CRTACT .EQU FALSE ; ACTIVATE CRT (VDU,CVDU,PROPIO,ETC) AT STARTUP
|
||||
@@ -148,6 +151,7 @@ PPIDE0B8BIT .EQU FALSE ; PPIDE 0B (SLAVE): 8 BIT XFER
|
||||
;
|
||||
SDENABLE .EQU FALSE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM)
|
||||
SDMODE .EQU SDMODE_PPI ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT]
|
||||
SDPPIBASE .EQU $60 ; SD: BASE I/O ADDRESS OF PPI FOR PPI MODDE
|
||||
SDCNT .EQU 1 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD & SC ONLY
|
||||
SDTRACE .EQU 1 ; SD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
|
||||
SDCSIOFAST .EQU FALSE ; SD: ENABLE TABLE-DRIVEN BIT INVERTER IN CSIO MODE
|
||||
@@ -155,6 +159,7 @@ SDCSIOFAST .EQU FALSE ; SD: ENABLE TABLE-DRIVEN BIT INVERTER IN CSIO MODE
|
||||
PRPENABLE .EQU FALSE ; PRP: ENABLE ECB PROPELLER IO BOARD DRIVER (PRP.ASM)
|
||||
;
|
||||
PPPENABLE .EQU FALSE ; PPP: ENABLE ZETA PARALLEL PORT PROPELLER BOARD DRIVER (PPP.ASM)
|
||||
PPPBASE .EQU $60 ; PPP: PPI REGISTERS BASE ADDRESS
|
||||
PPPSDENABLE .EQU TRUE ; PPP: ENABLE PPP DRIVER SD CARD SUPPORT
|
||||
PPPSDTRACE .EQU 1 ; PPP: SD CARD TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
|
||||
PPPCONENABLE .EQU TRUE ; PPP: ENABLE PPP DRIVER VIDEO/KBD SUPPORT
|
||||
@@ -163,7 +168,8 @@ HDSKENABLE .EQU FALSE ; HDSK: ENABLE SIMH HDSK DISK DRIVER (HDSK.ASM)
|
||||
;
|
||||
PIO_4P .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR ECB 4P BOARD
|
||||
PIO_ZP .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR ECB ZILOG PERIPHERALS BOARD (PIO.ASM)
|
||||
PPI_SBC .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR 8255 CHIP
|
||||
PIO_SBC .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR 8255 CHIP
|
||||
PIOSBASE .EQU $60 ; PIO: PIO REGISTERS BASE ADR FOR SBC PPI
|
||||
;
|
||||
UFENABLE .EQU FALSE ; UF: ENABLE ECB USB FIFO DRIVER (UF.ASM)
|
||||
;
|
||||
|
||||
@@ -953,8 +953,13 @@ TXT_HELP .TEXT "\r\nMonitor Commands (all values in hex):"
|
||||
;
|
||||
#IF DSKYENABLE
|
||||
;
|
||||
#DEFINE DSKY_KBD
|
||||
#DEFINE DSKY_KBD
|
||||
#IF (DSKYMODE == DSKYMODE_V1)
|
||||
#INCLUDE "dsky.asm"
|
||||
#ENDIF
|
||||
#IF (DSKYMODE == DSKYMODE_NG)
|
||||
#INCLUDE "dskyng.asm"
|
||||
#ENDIF
|
||||
;
|
||||
KY_PR .EQU KY_FW ; USE [FW] FOR [PR] (PORT READ)
|
||||
KY_PW .EQU KY_BK ; USE [BW] FOR [PW] (PORT WRITE)
|
||||
@@ -1352,7 +1357,7 @@ ENCBUF1:
|
||||
INC HL ; BUMP TO NEXT BYTE FOR NEXT PASS
|
||||
PUSH AF ; SAVE IT
|
||||
AND $80 ; ISOLATE HI BIT (DP)
|
||||
XOR $80 ; FLIP IT
|
||||
;XOR $80 ; FLIP IT
|
||||
LD C,A ; SAVE IN C
|
||||
POP AF ; RECOVER ORIGINAL
|
||||
AND $7F ; REMOVE HI BIT (DP)
|
||||
@@ -1373,8 +1378,10 @@ ENCBUF1:
|
||||
POP HL ; RESTORE HL
|
||||
RET
|
||||
;
|
||||
CPUUP .DB $84,$CB,$EE,$BB,$80,$BB,$EE,$84 ; "-CPU UP-" (RAW SEG)
|
||||
MSGBOOT .DB $FF,$9D,$9D,$8F,$20,$80,$80,$80 ; "Boot! " (RAW SEG)
|
||||
#IF (DSKYMODE == DSKYMODE_V1)
|
||||
;
|
||||
CPUUP .DB $04,$4B,$6E,$3B,$00,$3B,$6E,$04 ; "-CPU UP-" (RAW SEG)
|
||||
MSGBOOT .DB $7F,$1D,$1D,$0F,$A0,$00,$00,$00 ; "Boot! " (RAW SEG)
|
||||
ADDR .DB $17,$18,$19,$10,$00,$00,$00,$00 ; "Adr 0000" (ENCODED)
|
||||
PORT .DB $13,$14,$15,$16,$10,$10,$00,$00 ; "Port 00" (ENCODED)
|
||||
GOTO .DB $1A,$14,$10,$10,$00,$00,$00,$00 ; "Go 0000" (ENCODED)
|
||||
@@ -1385,6 +1392,7 @@ GOTO .DB $1A,$14,$10,$10,$00,$00,$00,$00 ; "Go 0000" (ENCODED)
|
||||
;_____________________________________________________________________________
|
||||
;
|
||||
SEGDECODE:
|
||||
;
|
||||
; POS $00 $01 $02 $03 $04 $05 $06 $07
|
||||
; GLYPH '0' '1' '2' '3' '4' '5' '6' '7'
|
||||
.DB $7B, $30, $6D, $75, $36, $57, $5F, $70
|
||||
@@ -1397,6 +1405,37 @@ SEGDECODE:
|
||||
; GLYPH ' ' '-' '.' 'P' 'o' 'r' 't' 'A' 'd' 'r' 'G'
|
||||
.DB $00, $04, $00, $6E, $1D, $0C, $0F, $7E, $3D, $0C, $5B
|
||||
;
|
||||
#ENDIF
|
||||
;
|
||||
#IF (DSKYMODE == DSKYMODE_NG)
|
||||
;
|
||||
CPUUP .DB $40,$39,$73,$3E,$00,$3E,$73,$40 ; "-CPU UP-" (RAW SEG)
|
||||
MSGBOOT .DB $7F,$5C,$5C,$78,$A0,$00,$00,$00 ; "Boot! " (RAW SEG)
|
||||
ADDR .DB $17,$18,$19,$10,$00,$00,$00,$00 ; "Adr 0000" (ENCODED)
|
||||
PORT .DB $13,$14,$15,$16,$10,$10,$00,$00 ; "Port 00" (ENCODED)
|
||||
GOTO .DB $1A,$14,$10,$10,$00,$00,$00,$00 ; "Go 0000" (ENCODED)
|
||||
;
|
||||
;_HEX_7_SEG_DECODE_TABLE______________________________________________________
|
||||
;
|
||||
; SET BIT 7 TO DISPLAY W/ DECIMAL POINT
|
||||
;_____________________________________________________________________________
|
||||
;
|
||||
SEGDECODE:
|
||||
;
|
||||
; POS $00 $01 $02 $03 $04 $05 $06 $07
|
||||
; GLYPH '0' '1' '2' '3' '4' '5' '6' '7'
|
||||
.DB $3F, $06, $58, $4F, $66, $6D, $7D, $07
|
||||
;
|
||||
; POS $08 $09 $0A $0B $0C $0D $0E $0F
|
||||
; GLYPH '8' '9' 'A' 'B' 'C' 'D' 'E' 'F'
|
||||
.DB $7F, $67, $77, $7C, $39, $5E, $79, $71
|
||||
;
|
||||
; POS $10 $11 $12 $13 $14 $15 $16 $17 $18 $19 $1A
|
||||
; GLYPH ' ' '-' '.' 'P' 'o' 'r' 't' 'A' 'd' 'r' 'G'
|
||||
.DB $00, $40, $00, $73, $5C, $50, $78, $77, $5E, $50, $3D
|
||||
;
|
||||
#ENDIF
|
||||
;
|
||||
DISPLAYBUF: .FILL 8,0
|
||||
;
|
||||
#ELSE
|
||||
|
||||
@@ -3,10 +3,13 @@
|
||||
; DSKY ROUTINES
|
||||
;==================================================================================================
|
||||
;
|
||||
PPIA .EQU PPIBASE + 0 ; PORT A
|
||||
PPIB .EQU PPIBASE + 1 ; PORT B
|
||||
PPIC .EQU PPIBASE + 2 ; PORT C
|
||||
PPIX .EQU PPIBASE + 3 ; PPI CONTROL PORT
|
||||
; THE DSKY MAY COSESIDE ON THE SAME PPI BUS AS A PPISD. IT MAY NOT
|
||||
; SHARE A PPI BUS WITH A PPIDE.
|
||||
;
|
||||
PPIA .EQU DSKYPPIBASE + 0 ; PORT A
|
||||
PPIB .EQU DSKYPPIBASE + 1 ; PORT B
|
||||
PPIC .EQU DSKYPPIBASE + 2 ; PORT C
|
||||
PPIX .EQU DSKYPPIBASE + 3 ; PPI CONTROL PORT
|
||||
;
|
||||
; ICM7218A KEYPAD PPISD
|
||||
; -------- -------- --------
|
||||
@@ -26,6 +29,15 @@ PPIX .EQU PPIBASE + 3 ; PPI CONTROL PORT
|
||||
; BITS 7-6 IDENTFY THE COLUMN OF THE KEY PRESSED
|
||||
; BITS 5-0 ARE A BITMAP, WITH A BIT ON TO INDICATE ROW OF KEY PRESSED
|
||||
;
|
||||
;
|
||||
; LED SEGMENTS (BIT VALUES)
|
||||
;
|
||||
; +--40--+
|
||||
; 02 20
|
||||
; +--04--+
|
||||
; 08 10
|
||||
; +--01--+ 80
|
||||
;
|
||||
; ____PC0________PC1________PC2________PC3____
|
||||
; PB5 | $20 [D] $60 [E] $A0 [F] $E0 [BO]
|
||||
; PB4 | $10 [A] $50 [B] $90 [C] $D0 [GO]
|
||||
@@ -278,7 +290,12 @@ DSKY_SHOW:
|
||||
LD B,DSKY_BUFLEN ; NUMBER OF DIGITS
|
||||
LD C,PPIA
|
||||
DSKY_HEXOUT2:
|
||||
OUTI
|
||||
;OUTI
|
||||
LD A,(HL)
|
||||
XOR $80 ; FIX DOT POLARITY
|
||||
OUT (C),A
|
||||
INC HL
|
||||
DEC B
|
||||
JP Z,DSKY_STROBE ; DO FINAL STROBE AND RETURN
|
||||
CALL DSKY_STROBE ; STROBE BYTE VALUE
|
||||
JR DSKY_HEXOUT2
|
||||
@@ -301,22 +318,22 @@ DSKY_COFF:
|
||||
; CLEAR HIGH BIT TO SHOW DECIMAL POINT
|
||||
;
|
||||
DSKY_NUMS:
|
||||
.DB $FB ; 0
|
||||
.DB $B0 ; 1
|
||||
.DB $ED ; 2
|
||||
.DB $F5 ; 3
|
||||
.DB $B6 ; 4
|
||||
.DB $D7 ; 5
|
||||
.DB $DF ; 6
|
||||
.DB $F0 ; 7
|
||||
.DB $FF ; 8
|
||||
.DB $F7 ; 9
|
||||
.DB $FE ; A
|
||||
.DB $9F ; B
|
||||
.DB $CB ; C
|
||||
.DB $BD ; D
|
||||
.DB $CF ; E
|
||||
.DB $CE ; F
|
||||
.DB $7B ; 0
|
||||
.DB $30 ; 1
|
||||
.DB $6D ; 2
|
||||
.DB $75 ; 3
|
||||
.DB $36 ; 4
|
||||
.DB $57 ; 5
|
||||
.DB $5F ; 6
|
||||
.DB $70 ; 7
|
||||
.DB $7F ; 8
|
||||
.DB $77 ; 9
|
||||
.DB $7E ; A
|
||||
.DB $1F ; B
|
||||
.DB $4B ; C
|
||||
.DB $3D ; D
|
||||
.DB $4F ; E
|
||||
.DB $4E ; F
|
||||
;
|
||||
; SEG DISPLAY WORKING STORAGE
|
||||
;
|
||||
|
||||
561
Source/HBIOS/dskyng.asm
Normal file
561
Source/HBIOS/dskyng.asm
Normal file
@@ -0,0 +1,561 @@
|
||||
;
|
||||
;==================================================================================================
|
||||
; DSKY NEXT GEN ROUTINES
|
||||
;==================================================================================================
|
||||
;
|
||||
; A DSKYNG CAN SHARE A PPI BUS WITH EITHER A PPIDE OR PPISD.
|
||||
;
|
||||
; LED SEGMENTS (BIT VALUES)
|
||||
;
|
||||
; +--01--+
|
||||
; 20 02
|
||||
; +--40--+
|
||||
; 10 04
|
||||
; +--08--+ 80
|
||||
;
|
||||
; KEY CODE MAP (KEY CODES) --CCCRRR
|
||||
;
|
||||
; 00 08 10 18
|
||||
; 01 09 11 19
|
||||
; 02 0A 12 1A
|
||||
; 03 0B 13 1B
|
||||
; 04 0C 14 1C
|
||||
; 05 0D 15 1D
|
||||
;
|
||||
; LED BIT MAP (BIT VALUES)
|
||||
;
|
||||
; $08 $09 $0A $0B
|
||||
; --- --- --- ---
|
||||
; 01 01 01 01
|
||||
; 02 02 02 02
|
||||
; 04 04 04 04
|
||||
; 08 08 08 08
|
||||
; 10 10 10 10
|
||||
; 20 20 20 20
|
||||
;
|
||||
PPIA .EQU DSKYPPIBASE + 0 ; PORT A
|
||||
PPIB .EQU DSKYPPIBASE + 1 ; PORT B
|
||||
PPIC .EQU DSKYPPIBASE + 2 ; PORT C
|
||||
PPIX .EQU DSKYPPIBASE + 3 ; PPI CONTROL PORT
|
||||
;
|
||||
DSKY_PPIX_RD: .EQU %10010010 ; PPIX VALUE FOR READS
|
||||
DSKY_PPIX_WR: .EQU %10000010 ; PPIX VALUE FOR WRITES
|
||||
;
|
||||
; PIO CHANNEL C:
|
||||
;
|
||||
; 7 6 5 4 3 2 1 0
|
||||
; RES /RD /WR CS CS 0 0 A0
|
||||
;
|
||||
; SETTING BITS 3 & 4 WILL ASSERT /CS ON 3279
|
||||
; CLEAR BITS 5 OR 6 TO ASSERT READ/WRITE
|
||||
;
|
||||
DSKY_PPI_IDLE: .EQU %01100000
|
||||
;
|
||||
DSKY_CMD_CLR: .EQU %11011111 ; CLEAR (ALL OFF)
|
||||
DSKY_CMD_CLRX: .EQU %11010011 ; CLEAR (ALL ON)
|
||||
DSKY_CMD_WDSP: .EQU %10010000 ; WRITE DISPLAY RAM
|
||||
DSKY_CMD_RDSP: .EQU %01110000 ; READ DISPLAY RAM
|
||||
DSKY_CMD_CLK: .EQU %00100000 ; SET CLK PRESCALE
|
||||
DSKY_CMD_FIFO: .EQU %01000000 ; READ FIFO
|
||||
;
|
||||
DSKY_PRESCL: .EQU DSKYOSC/100000 ; PRESCALER
|
||||
;
|
||||
;__DSKY_INIT_________________________________________________________________________________________
|
||||
;
|
||||
; CONFIGURE PARALLEL PORT AND INITIALIZE 8279
|
||||
;____________________________________________________________________________________________________
|
||||
;
|
||||
;
|
||||
; HARDWARE RESET 8279 BY PULSING RESET LINE
|
||||
;
|
||||
DSKY_INIT:
|
||||
;
|
||||
; SETUP PPI
|
||||
CALL DSKY_PPIRD
|
||||
; INIT 8279 VALUES TO IDLE STATE
|
||||
LD A,DSKY_PPI_IDLE
|
||||
OUT (PPIC),A
|
||||
; PULSE RESET SIGNAL ON 8279
|
||||
SET 7,A
|
||||
OUT (PPIC),A
|
||||
RES 7,A
|
||||
OUT (PPIC),A
|
||||
; DONE
|
||||
;
|
||||
DSKY_REINIT:
|
||||
CALL DSKY_PPIIDLE
|
||||
; SET CLOCK SCALER TO 20
|
||||
LD A,DSKY_CMD_CLK | DSKY_PRESCL
|
||||
CALL DSKY_CMD
|
||||
LD A,%00001000 ; dan
|
||||
CALL DSKY_CMD
|
||||
; FALL THRU
|
||||
;
|
||||
DSKY_RESET:
|
||||
; RESET DSKY
|
||||
LD A,DSKY_CMD_CLR
|
||||
CALL DSKY_CMD
|
||||
RET
|
||||
;
|
||||
#IFDEF DSKY_KBD
|
||||
;
|
||||
KY_0 .EQU $00
|
||||
KY_1 .EQU $01
|
||||
KY_2 .EQU $02
|
||||
KY_3 .EQU $03
|
||||
KY_4 .EQU $04
|
||||
KY_5 .EQU $05
|
||||
KY_6 .EQU $06
|
||||
KY_7 .EQU $07
|
||||
KY_8 .EQU $08
|
||||
KY_9 .EQU $09
|
||||
KY_A .EQU $0A
|
||||
KY_B .EQU $0B
|
||||
KY_C .EQU $0C
|
||||
KY_D .EQU $0D
|
||||
KY_E .EQU $0E
|
||||
KY_F .EQU $0F
|
||||
KY_FW .EQU $10 ; FORWARD
|
||||
KY_BK .EQU $11 ; BACKWARD
|
||||
KY_CL .EQU $12 ; CLEAR
|
||||
KY_EN .EQU $13 ; ENTER
|
||||
KY_DE .EQU $14 ; DEPOSIT
|
||||
KY_EX .EQU $15 ; EXAMINE
|
||||
KY_GO .EQU $16 ; GO
|
||||
KY_BO .EQU $17 ; BOOT
|
||||
;
|
||||
;__DSKY_STAT_________________________________________________________________________________________
|
||||
;
|
||||
; CHECK FOR KEY PRESS, SAVE RAW VALUE, RETURN STATUS
|
||||
;____________________________________________________________________________________________________
|
||||
;
|
||||
DSKY_STAT:
|
||||
CALL DSKY_ST
|
||||
AND $0F ; ISOLATE THE CUR FIFO LEN
|
||||
RET
|
||||
;
|
||||
;__DSKY_GETKEY_____________________________________________________________________________________
|
||||
;
|
||||
; WAIT FOR A DSKY KEYPRESS AND RETURN
|
||||
;____________________________________________________________________________________________________
|
||||
;
|
||||
DSKY_GETKEY:
|
||||
CALL DSKY_STAT
|
||||
JR Z,DSKY_GETKEY ; LOOP IF NOTHING THERE
|
||||
LD A,DSKY_CMD_FIFO
|
||||
CALL DSKY_CMD
|
||||
CALL DSKY_DIN
|
||||
LD B,24 ; SIZE OF DECODE TABLE
|
||||
LD C,0 ; INDEX
|
||||
LD HL,DSKY_KEYMAP ; POINT TO BEGINNING OF TABLE
|
||||
DSKY_GETKEY1:
|
||||
CP (HL) ; MATCH?
|
||||
JR Z,DSKY_GETKEY2 ; FOUND, DONE
|
||||
INC HL
|
||||
INC C ; BUMP INDEX
|
||||
DJNZ DSKY_GETKEY1 ; LOOP UNTIL EOT
|
||||
LD A,$FF ; NOT FOUND ERR, RETURN $FF
|
||||
RET
|
||||
DSKY_GETKEY2:
|
||||
; RETURN THE INDEX POSITION WHERE THE SCAN CODE WAS FOUND
|
||||
LD A,C ; RETURN INDEX VALUE
|
||||
RET
|
||||
;
|
||||
;_KEYMAP_TABLE_____________________________________________________________________________________________________________
|
||||
;
|
||||
DSKY_KEYMAP:
|
||||
; POS $00 $01 $02 $03 $04 $05 $06 $07
|
||||
; KEY [0] [1] [2] [3] [4] [5] [6] [7]
|
||||
.DB $0D, $04, $0C, $14, $03, $0B, $13, $02
|
||||
;
|
||||
; POS $08 $09 $0A $0B $0C $0D $0E $0F
|
||||
; KEY [8] [9] [A] [B] [C] [D] [E] [F]
|
||||
.DB $0A, $12, $01, $09, $11, $00, $08, $10
|
||||
;
|
||||
; POS $10 $11 $12 $13 $14 $15 $16 $17
|
||||
; KEY [FW] [BK] [CL] [EN] [DE] [EX] [GO] [BO]
|
||||
.DB $05, $15, $1D, $1C, $1B, $1A, $19, $18
|
||||
;
|
||||
#ENDIF ; DSKY_KBD
|
||||
;
|
||||
;==================================================================================================
|
||||
; DSKY HEX DISPLAY
|
||||
;==================================================================================================
|
||||
;
|
||||
DSKY_HEXOUT:
|
||||
LD B,DSKY_HEXBUFLEN
|
||||
LD HL,DSKY_BUF
|
||||
LD DE,DSKY_HEXBUF
|
||||
DSKY_HEXOUT1:
|
||||
LD A,(DE) ; FIRST NIBBLE
|
||||
SRL A
|
||||
SRL A
|
||||
SRL A
|
||||
SRL A
|
||||
PUSH HL
|
||||
LD HL,HEXMAP
|
||||
CALL DSKY_ADDHLA
|
||||
LD A,(HL)
|
||||
POP HL
|
||||
LD (HL),A
|
||||
INC HL
|
||||
LD A,(DE) ; SECOND NIBBLE
|
||||
AND 0FH
|
||||
PUSH HL
|
||||
LD HL,HEXMAP
|
||||
CALL DSKY_ADDHLA
|
||||
LD A,(HL)
|
||||
POP HL
|
||||
LD (HL),A
|
||||
INC HL
|
||||
INC DE ; NEXT BYTE
|
||||
DJNZ DSKY_HEXOUT1
|
||||
LD HL,DSKY_BUF
|
||||
JR DSKY_SHOW
|
||||
;
|
||||
;==================================================================================================
|
||||
; DSKY SHOW BUFFER
|
||||
; HL: ADDRESS OF BUFFER
|
||||
; ENTER @ SHOWHEX FOR HEX DECODING
|
||||
; ENTER @ SHOWSEG FOR SEGMENT DECODING
|
||||
;==================================================================================================
|
||||
;
|
||||
DSKY_SHOWHEX:
|
||||
JR DSKY_SHOW
|
||||
;
|
||||
DSKY_SHOWSEG:
|
||||
JR DSKY_SHOW
|
||||
;
|
||||
DSKY_SHOW:
|
||||
; PUSH HL
|
||||
; CALL DSKY_RESET
|
||||
; POP HL
|
||||
LD C,0 ; STARTING DISPLAY POSITION
|
||||
LD B,DSKY_BUFLEN ; NUMBER OF CHARS
|
||||
JP DSKY_PUTSTR
|
||||
;
|
||||
;
|
||||
;
|
||||
;
|
||||
; COMMAND IN A
|
||||
; TRASHES BC
|
||||
;
|
||||
DSKY_CMD:
|
||||
LD B,$01
|
||||
JR DSKY_DOUT2
|
||||
;
|
||||
; DATA VALUE IN A
|
||||
; TRASHES BC
|
||||
;
|
||||
DSKY_DOUT:
|
||||
LD B,$00
|
||||
;
|
||||
DSKY_DOUT2:
|
||||
;
|
||||
; SAVE INCOMING DATA BYTE
|
||||
PUSH AF
|
||||
;
|
||||
; SET PPI LINE CONFIG TO WRITE MODE
|
||||
CALL DSKY_PPIWR
|
||||
;
|
||||
; SETUP
|
||||
LD C,PPIC
|
||||
;
|
||||
; SET ADDRESS FIRST
|
||||
LD A,DSKY_PPI_IDLE
|
||||
OR B
|
||||
OUT (C),A
|
||||
;
|
||||
; ASSERT 8279 /CS
|
||||
SET 3,A
|
||||
SET 4,A
|
||||
OUT (C),A
|
||||
;
|
||||
; PPIC WORKING VALUE TO REG B NOW
|
||||
LD B,A
|
||||
;
|
||||
; ASSERT DATA BYTE VALUE
|
||||
POP AF
|
||||
OUT (PPIA),A
|
||||
;
|
||||
; PULSE /WR
|
||||
RES 5,B
|
||||
OUT (C),B
|
||||
NOP ; MAY NOT BE NEEDED
|
||||
SET 5,B
|
||||
OUT (C),B
|
||||
;
|
||||
; DEASSERT /CS
|
||||
RES 3,B
|
||||
RES 4,B
|
||||
OUT (C),B
|
||||
;
|
||||
; CLEAR ADDRESS BIT
|
||||
RES 0,B
|
||||
OUT (C),B
|
||||
;
|
||||
; DONE
|
||||
CALL DSKY_PPIIDLE
|
||||
RET
|
||||
;
|
||||
; STATUS VALUE IN A
|
||||
; TRASHES BC
|
||||
;
|
||||
DSKY_ST:
|
||||
LD B,$01
|
||||
JR DSKY_DIN2
|
||||
;
|
||||
; DATA VALUE RETURNED IN A
|
||||
; TRASHES BC
|
||||
;
|
||||
DSKY_DIN:
|
||||
LD B,$00
|
||||
;
|
||||
DSKY_DIN2:
|
||||
; SET PPI LINE CONFIG TO WRITE MODE
|
||||
CALL DSKY_PPIRD
|
||||
;
|
||||
; SETUP
|
||||
LD C,PPIC
|
||||
;
|
||||
; SET ADDRESS FIRST
|
||||
LD A,DSKY_PPI_IDLE
|
||||
OR B
|
||||
OUT (C),A
|
||||
;
|
||||
; ASSERT 8279 /CS
|
||||
SET 3,A
|
||||
SET 4,A
|
||||
OUT (C),A
|
||||
;
|
||||
; PPIC WORKING VALUE TO REG B NOW
|
||||
LD B,A
|
||||
;
|
||||
; ASSERT /RD
|
||||
RES 6,B
|
||||
OUT (C),B
|
||||
;
|
||||
; GET VALUE
|
||||
IN A,(PPIA)
|
||||
;
|
||||
; DEASSERT /RD
|
||||
SET 6,B
|
||||
OUT (C),B
|
||||
;
|
||||
; DEASSERT /CS
|
||||
RES 3,B
|
||||
RES 4,B
|
||||
OUT (C),B
|
||||
;
|
||||
; CLEAR ADDRESS BIT
|
||||
RES 0,B
|
||||
OUT (C),B
|
||||
;
|
||||
; DONE
|
||||
CALL DSKY_PPIIDLE
|
||||
RET
|
||||
;
|
||||
; BLANK THE DISPLAY (WITHOUT USING CLEAR)
|
||||
;
|
||||
DSKY_BLANK:
|
||||
LD A,DSKY_CMD_WDSP
|
||||
CALL DSKY_CMD
|
||||
LD B,16
|
||||
DSKY_BLANK1:
|
||||
PUSH BC
|
||||
LD A,$FF
|
||||
CALL DSKY_DOUT
|
||||
POP BC
|
||||
DJNZ DSKY_BLANK1
|
||||
RET
|
||||
;
|
||||
; WRITE A RAW BYTE VALUE TO DSKY DISPLAY RAM
|
||||
; AT LOCATION IN REGISTER C, VALUE IN A.
|
||||
;
|
||||
DSKY_PUTBYTE:
|
||||
PUSH BC
|
||||
PUSH AF
|
||||
LD A,C
|
||||
ADD A,DSKY_CMD_WDSP
|
||||
CALL DSKY_CMD
|
||||
POP AF
|
||||
XOR $FF
|
||||
CALL DSKY_DOUT
|
||||
POP BC
|
||||
RET
|
||||
;
|
||||
; READ A RAW BYTE VALUE FROM DSKY DISPLAY RAM
|
||||
; AT LOCATION IN REGISTER C, VALUE RETURNED IN A
|
||||
;
|
||||
DSKY_GETBYTE:
|
||||
PUSH BC
|
||||
LD A,C
|
||||
ADD A,DSKY_CMD_RDSP
|
||||
CALL DSKY_CMD
|
||||
CALL DSKY_DIN
|
||||
XOR $FF
|
||||
POP BC
|
||||
RET
|
||||
;
|
||||
; WRITE A STRING OF RAW BYTE VALUES TO DSKY DISPLAY RAM
|
||||
; AT LOCATION IN REGISTER C, LENGTH IN B, ADDRESS IN HL.
|
||||
;
|
||||
DSKY_PUTSTR:
|
||||
PUSH BC
|
||||
LD A,C
|
||||
ADD A,DSKY_CMD_WDSP
|
||||
CALL DSKY_CMD
|
||||
POP BC
|
||||
;
|
||||
DSKY_PUTSTR1:
|
||||
LD A,(HL)
|
||||
XOR $FF
|
||||
INC HL
|
||||
PUSH BC
|
||||
CALL DSKY_DOUT
|
||||
POP BC
|
||||
DJNZ DSKY_PUTSTR1
|
||||
RET
|
||||
;
|
||||
; READ A STRING OF RAW BYTE VALUES FROM DSKY DISPLAY RAM
|
||||
; AT LOCATION IN REGISTER C, LENGTH IN B, ADDRESS IN HL.
|
||||
;
|
||||
DSKY_GETSTR:
|
||||
PUSH BC
|
||||
LD A,C
|
||||
ADD A,DSKY_CMD_RDSP
|
||||
CALL DSKY_CMD
|
||||
POP BC
|
||||
;
|
||||
DSKY_GETSTR1:
|
||||
PUSH BC
|
||||
CALL DSKY_DIN
|
||||
POP BC
|
||||
XOR $FF
|
||||
LD (HL),A
|
||||
INC HL
|
||||
DJNZ DSKY_GETSTR1
|
||||
RET
|
||||
;
|
||||
; HL IS ADR OF ENCODED STRING OF BYTES
|
||||
; B IS LEN OF STRING (BYTES)
|
||||
; C IS POSITION IN DISPLAY RAM TO WRITE
|
||||
;
|
||||
DSKY_PUTENCSTR:
|
||||
PUSH BC
|
||||
LD A,C
|
||||
ADD A,DSKY_CMD_WDSP
|
||||
CALL DSKY_CMD
|
||||
POP BC
|
||||
EX DE,HL
|
||||
DSKY_PUTENCSTR1:
|
||||
LD A,(DE)
|
||||
INC DE
|
||||
LD HL,HEXMAP
|
||||
CALL DSKY_ADDHLA
|
||||
LD A,(HL)
|
||||
XOR $FF
|
||||
PUSH BC
|
||||
CALL DSKY_DOUT
|
||||
POP BC
|
||||
DJNZ DSKY_PUTENCSTR1
|
||||
RET
|
||||
;
|
||||
; SETUP PPI FOR WRITING: PUT PPI PORT A IN OUTPUT MODE
|
||||
; AVOID REWRTING PPIX IF ALREADY IN OUTPUT MODE
|
||||
;
|
||||
DSKY_PPIWR:
|
||||
PUSH AF
|
||||
;
|
||||
; CHECK FOR WRITE MODE
|
||||
LD A,(DSKY_PPIX_VAL)
|
||||
CP DSKY_PPIX_WR
|
||||
JR Z,DSKY_PPIWR1
|
||||
;
|
||||
; SET PPI TO WRITE MODE
|
||||
LD A,DSKY_PPIX_WR
|
||||
OUT (PPIX),A
|
||||
LD (DSKY_PPIX_VAL),A
|
||||
;
|
||||
; RESTORE PORT C (MAY NOT BE NEEDED)
|
||||
LD A,DSKY_PPI_IDLE
|
||||
OUT (PPIC),A
|
||||
;
|
||||
DSKY_PPIWR1:
|
||||
;
|
||||
POP AF
|
||||
RET
|
||||
;
|
||||
;
|
||||
;
|
||||
DSKY_ADDHLA:
|
||||
ADD A,L
|
||||
LD L,A
|
||||
RET NC
|
||||
INC H
|
||||
RET
|
||||
;
|
||||
; SETUP PPI FOR READING: PUT PPI PORT A IN INPUT MODE
|
||||
; AVOID REWRTING PPIX IF ALREADY IN INPUT MODE
|
||||
;
|
||||
DSKY_PPIRD:
|
||||
PUSH AF
|
||||
;
|
||||
; CHECK FOR READ MODE
|
||||
LD A,(DSKY_PPIX_VAL)
|
||||
CP DSKY_PPIX_RD
|
||||
JR Z,DSKY_PPIRD1
|
||||
;
|
||||
; SET PPI TO READ MODE
|
||||
LD A,DSKY_PPIX_RD
|
||||
OUT (PPIX),A
|
||||
LD (DSKY_PPIX_VAL),A
|
||||
;
|
||||
; ; DIAGNOSTIC
|
||||
; LD A,'R'
|
||||
; CALL COUT
|
||||
;
|
||||
DSKY_PPIRD1:
|
||||
POP AF
|
||||
RET
|
||||
;
|
||||
; RELEASE USE OF PPI
|
||||
;
|
||||
DSKY_PPIIDLE:
|
||||
JR DSKY_PPIRD ; SAME AS READ MODE
|
||||
;
|
||||
;
|
||||
;
|
||||
|
||||
;
|
||||
; CODES FOR NUMERICS
|
||||
; HIGH BIT ALWAYS SET TO SUPPRESS DECIMAL POINT
|
||||
; CLEAR HIGH BIT TO SHOW DECIMAL POINT
|
||||
;
|
||||
HEXMAP:
|
||||
DSKY_NUMS:
|
||||
.DB $3F ; 0
|
||||
.DB $06 ; 1
|
||||
.DB $5B ; 2
|
||||
.DB $4F ; 3
|
||||
.DB $66 ; 4
|
||||
.DB $6D ; 5
|
||||
.DB $7D ; 6
|
||||
.DB $07 ; 7
|
||||
.DB $7F ; 8
|
||||
.DB $67 ; 9
|
||||
.DB $77 ; A
|
||||
.DB $7C ; B
|
||||
.DB $39 ; C
|
||||
.DB $5E ; D
|
||||
.DB $79 ; E
|
||||
.DB $71 ; F
|
||||
;
|
||||
DSKY_PPIX_VAL: .DB 0
|
||||
;
|
||||
; SEG DISPLAY WORKING STORAGE
|
||||
;
|
||||
DSKY_BUF .FILL 8,0
|
||||
DSKY_BUFLEN .EQU $ - DSKY_BUF
|
||||
DSKY_HEXBUF .FILL 4,0
|
||||
DSKY_HEXBUFLEN .EQU $ - DSKY_HEXBUF
|
||||
@@ -132,12 +132,12 @@ DSRTC_BUFSIZ .EQU 7 ; 7 BYTE BUFFER (YYMMDDHHMMSSWW)
|
||||
;
|
||||
DSRTC_PREINIT:
|
||||
;
|
||||
; SET RELEVANT BITS IN RTC LATCH SHADOW REGISTER
|
||||
; TO THEIR QUIESENT STATE
|
||||
LD A,(DSRTC_OPRVAL) ; GET CURRENT SHADOW REG VAL
|
||||
AND ~DSRTC_MASK ; CLEAR OUR BITS
|
||||
OR DSRTC_IDLE ; SET OUR IDLE BITS
|
||||
LD (DSRTC_OPRVAL),A ; SAVE IT
|
||||
;; SET RELEVANT BITS IN RTC LATCH SHADOW REGISTER
|
||||
;; TO THEIR QUIESENT STATE
|
||||
;LD A,(DSRTC_OPRVAL) ; GET CURRENT SHADOW REG VAL
|
||||
;AND ~DSRTC_MASK ; CLEAR OUR BITS
|
||||
;OR DSRTC_IDLE ; SET OUR IDLE BITS
|
||||
;LD (DSRTC_OPRVAL),A ; SAVE IT
|
||||
;
|
||||
CALL DSRTC_DETECT ; HARDWARE DETECTION
|
||||
LD (DSRTC_STAT),A ; SAVE RESULT
|
||||
@@ -478,6 +478,7 @@ DSRTC_TSTCLK:
|
||||
; E=VALUE (OUTPUT)
|
||||
;
|
||||
DSRTC_RDBYT:
|
||||
CALL DSRTC_START
|
||||
LD E,C
|
||||
CALL DSRTC_CMD
|
||||
CALL DSRTC_GET
|
||||
@@ -489,6 +490,7 @@ DSRTC_RDBYT:
|
||||
; E=VALUE
|
||||
;
|
||||
DSRTC_WRBYT:
|
||||
CALL DSRTC_START
|
||||
PUSH DE ; SAVE VALUE TO WRITE
|
||||
LD E,C ; CMD TO E
|
||||
CALL DSRTC_CMD
|
||||
@@ -525,6 +527,7 @@ DSRTC_WRBYTWP:
|
||||
; BURST READ CLOCK DATA INTO BUFFER AT HL
|
||||
;
|
||||
DSRTC_RDCLK:
|
||||
CALL DSRTC_START
|
||||
LD E,$BF ; COMMAND = $BF TO BURST READ CLOCK
|
||||
CALL DSRTC_CMD ; SEND COMMAND TO RTC
|
||||
LD B,DSRTC_BUFSIZ ; B IS LOOP COUNTER
|
||||
@@ -540,6 +543,7 @@ DSRTC_RDCLK1:
|
||||
; BURST WRITE CLOCK DATA FROM BUFFER AT HL
|
||||
;
|
||||
DSRTC_WRCLK:
|
||||
CALL DSRTC_START
|
||||
LD E,$8E ; COMMAND = $8E TO WRITE CONTROL REGISTER
|
||||
CALL DSRTC_CMD ; SEND COMMAND
|
||||
LD E,$00 ; $00 = UNPROTECT
|
||||
@@ -668,6 +672,25 @@ DSRTC_GET1:
|
||||
CALL DLY1 ; DELAY 27 T-STATES
|
||||
DJNZ DSRTC_GET1 ; LOOP IF NOT DONE (13)
|
||||
RET
|
||||
|
||||
|
||||
;
|
||||
; START A COMMAND SEQUENCE
|
||||
; INITIATES A COMMAND SEQUENCE
|
||||
; DOES NOT DESTROY ANY REGISTERS.
|
||||
;
|
||||
; 1) CAPTURE RTC LATCH BITS
|
||||
;
|
||||
DSRTC_START:
|
||||
; SET RELEVANT BITS IN RTC LATCH SHADOW REGISTER
|
||||
; TO THEIR QUIESENT STATE
|
||||
PUSH AF
|
||||
LD A,(DSRTC_OPRVAL) ; GET CURRENT SHADOW REG VAL
|
||||
AND ~DSRTC_MASK ; CLEAR OUR BITS
|
||||
OR DSRTC_IDLE ; SET OUR IDLE BITS
|
||||
LD (DSRTC_OPRVAL),A ; SAVE IT
|
||||
POP AF
|
||||
RET
|
||||
;
|
||||
; COMPLETE A COMMAND SEQUENCE
|
||||
; FINISHES UP A COMMAND SEQUENCE.
|
||||
@@ -676,8 +699,10 @@ DSRTC_GET1:
|
||||
; 1) SET ALL LINES BACK TO QUIESCENT STATE
|
||||
;
|
||||
DSRTC_END:
|
||||
;PUSH AF
|
||||
LD A,(DSRTC_OPRVAL) ; INIT A WITH QUIESCENT STATE
|
||||
OUT (DSRTC_IO),A ; WRITE TO PORT
|
||||
;POP AF
|
||||
RET ; RETURN
|
||||
;
|
||||
; WORKING VARIABLES
|
||||
|
||||
@@ -1,12 +0,0 @@
|
||||
#INCLUDE "std.asm"
|
||||
;
|
||||
SLACK .EQU ($8000-BAS_SIZ-TBC_SIZ-FTH_SIZ-GAM_SIZ-USR_SIZ)
|
||||
.FILL SLACK,00H
|
||||
;
|
||||
MON_STACK .EQU $
|
||||
;
|
||||
.ECHO "Padspace space created: "
|
||||
.ECHO SLACK
|
||||
.ECHO " bytes.\n"
|
||||
|
||||
.END
|
||||
@@ -929,10 +929,10 @@ DEFPIO(PIO4BASE+12,M_Output,M_Output,M_BitAllOut,M_Output,INT_N,INT_N)
|
||||
DEFPIO(PIOZBASE+0,M_Input,M_Input,M_BitAllOut,M_BitAllOut,INT_N,INT_N)
|
||||
DEFPIO(PIOZBASE+4,M_Output,M_Output,M_BitAllOut,M_BitAllOut,INT_N,INT_N)
|
||||
#ENDIF
|
||||
; PPI_SBC & (PLATFORM == PLT_SBC) & (PPIDEMODE != PPIDEMODE_SBC))
|
||||
; PIO_SBC & (PLATFORM == PLT_SBC) & (PPIDEMODE != PPIDEMODE_SBC))
|
||||
|
||||
#IF PPI_SBC
|
||||
DEFPPI(PPIBASE,M_Output,M_Output,M_Output,M_BitAllOut,M_BitAllOut,M_BitAllOut)
|
||||
#IF PIO_SBC
|
||||
DEFPPI(PIOSBASE,M_Output,M_Output,M_Output,M_BitAllOut,M_BitAllOut,M_BitAllOut)
|
||||
#ENDIF
|
||||
;
|
||||
PIO_CNT .EQU ($ - PIO_CFG) / CFG_SIZ
|
||||
|
||||
@@ -1011,6 +1011,22 @@ PPIDE_RESET:
|
||||
;OUT (PPIDE_IO_PPI),A ; DO IT
|
||||
LD C,(IY+PPIDE_PPI) ; PPI CONTROL WORD
|
||||
OUT (C),A ; WRITE IT
|
||||
;
|
||||
; IF A DSKYNG IS ACTIVE AND IS ON THE SAME PPI PORT AS THE PPISD BEING
|
||||
; RESET, THEN THE DSKYNG WILL ALSO BE RESET. SO, THE RESET CODE IS
|
||||
; BRACKETED WITH CODE TO SAVE AND RESTORE THE STATE OF THE DSKYNG.
|
||||
; THERE IS NO CHECK FOR THE SPECIFIC PPI PORT SINCE IT DOES NO HARM
|
||||
; IF THE DSKYNG IS SAVED AND RESTORED.
|
||||
;
|
||||
#IF (DSKYENABLE)
|
||||
#IF (DSKYMODE == DSKYMODE_NG)
|
||||
; SAVE CONTENTS OF DSKY DISPLAY ACROSS RESET
|
||||
LD B,8
|
||||
LD C,0
|
||||
LD HL,DSKY_BUF
|
||||
CALL DSKY_GETSTR
|
||||
#ENDIF
|
||||
#ENDIF
|
||||
;
|
||||
; PULSE IDE RESET LINE
|
||||
LD A,PPIDE_CTL_RESET
|
||||
@@ -1024,6 +1040,17 @@ PPIDE_RESET:
|
||||
OUT (C),A
|
||||
LD DE,20
|
||||
CALL VDELAY
|
||||
;
|
||||
#IF (DSKYENABLE)
|
||||
#IF (DSKYMODE == DSKYMODE_NG)
|
||||
; REININT DSKY AND RESTORE CONTENTS
|
||||
CALL DSKY_REINIT
|
||||
LD B,8
|
||||
LD C,0
|
||||
LD HL,DSKY_BUF
|
||||
CALL DSKY_PUTSTR
|
||||
#ENDIF
|
||||
#ENDIF
|
||||
;
|
||||
LD A,%00001010 ; SET ~IEN, NO INTERRUPTS
|
||||
;OUT (PPIDE_REG_CTRL),A
|
||||
|
||||
@@ -6,9 +6,9 @@
|
||||
; TODO:
|
||||
; 1) ADD SUPPORT FOR DSKY
|
||||
;
|
||||
PPP_IO .EQU PPIBASE + 0 ; PPP DATA I/O (PPI PORT A)
|
||||
PPP_CTL .EQU PPIBASE + 2 ; PPP CTL LINES (PPI PORT C)
|
||||
PPP_PPICTL .EQU PPIBASE + 3 ; PPI CONTROL PORT
|
||||
PPP_IO .EQU PPPBASE + 0 ; PPP DATA I/O (PPI PORT A)
|
||||
PPP_CTL .EQU PPPBASE + 2 ; PPP CTL LINES (PPI PORT C)
|
||||
PPP_PPICTL .EQU PPPBASE + 3 ; PPI CONTROL PORT
|
||||
;
|
||||
; COMMAND BYTES
|
||||
;
|
||||
@@ -49,7 +49,7 @@ PPP_CMDVER .EQU $F1 ; SEND FIRMWARE VERSION
|
||||
PPP_INIT:
|
||||
CALL NEWLINE ; FORMATTING
|
||||
PRTS("PPP: IO=0x$")
|
||||
LD A,PPIBASE
|
||||
LD A,PPPBASE
|
||||
CALL PRTHEXBYTE
|
||||
;
|
||||
CALL PPP_INITPPP ; INIT PPP BOARD
|
||||
@@ -358,7 +358,7 @@ PPPCON_DEVICE:
|
||||
LD E,0 ; E := DEVICE NUM, ALWAYS 0
|
||||
LD C,$BF ; C := DEVICE TYPE, 0xBF IS PROP TERM
|
||||
LD H,0 ; H := 0, DRIVER HAS NO MODES
|
||||
LD L,PPIBASE ; L := BASE I/O ADDRESS
|
||||
LD L,PPPBASE ; L := BASE I/O ADDRESS
|
||||
XOR A ; SIGNAL SUCCESS
|
||||
RET
|
||||
;
|
||||
@@ -694,7 +694,7 @@ PPPSD_DEVICE:
|
||||
LD E,(IY+PPPSD_DEV) ; E := PHYSICAL DEVICE NUMBER
|
||||
LD C,%01010000 ; C := ATTRIBUTES, REMOVABLE, SD CARD
|
||||
LD H,0 ; H := 0, DRIVER HAS NO MODES
|
||||
LD L,PPIBASE ; L := BASE I/O ADDRESS
|
||||
LD L,PPPBASE ; L := BASE I/O ADDRESS
|
||||
XOR A ; SIGNAL SUCCESS
|
||||
RET
|
||||
;
|
||||
|
||||
@@ -1078,8 +1078,16 @@ clrled:
|
||||
out (DIAGPORT),a ; clear diag leds
|
||||
#endif
|
||||
#if (LEDENABLE)
|
||||
or $FF ; led is inverted
|
||||
#if (LEDMODE == LEDMODE_STD)
|
||||
ld a,$FF ; led is inverted
|
||||
out (LEDPORT),a ; clear led
|
||||
#endif
|
||||
#if (LEDMODE == LEDMODE_RTC)
|
||||
; Only bits 0 and 1 of the RTC latch are for the LEDs. Here,
|
||||
; we assume that it is OK to zero all bits of the RTC latch.
|
||||
xor a ; turn off
|
||||
out (LEDPORT),a ; clear led
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
ret
|
||||
@@ -1903,9 +1911,14 @@ str_err_api .db "Unexpected hardware BIOS API failure",0
|
||||
;
|
||||
#if (DSKYENABLE)
|
||||
#define DSKY_KBD
|
||||
#if (DSKYMODE == DSKYMODE_V1)
|
||||
VDELAY .equ vdelay
|
||||
DLY2 .equ dly2
|
||||
#include "dsky.asm"
|
||||
#endif
|
||||
#if (DSKYMODE == DSKYMODE_NG)
|
||||
#include "dskyng.asm"
|
||||
#endif
|
||||
#endif
|
||||
;
|
||||
;=======================================================================
|
||||
@@ -1957,10 +1970,18 @@ str_help .db "\r\n"
|
||||
.db 0
|
||||
;
|
||||
#if (DSKYENABLE)
|
||||
msg_sel .db $ff,$9d,$9d,$8f,$ec,$80,$80,$80 ; "boot? "
|
||||
msg_boot .db $ff,$9d,$9d,$8f,$00,$00,$00,$80 ; "boot... "
|
||||
msg_load .db $8b,$9d,$fd,$bd,$00,$00,$00,$80 ; "load... "
|
||||
msg_go .db $db,$9d,$00,$00,$00,$80,$80,$80 ; "go... "
|
||||
#if (DSKYMODE == DSKYMODE_V1)
|
||||
msg_sel .db $7f,$1d,$1d,$0f,$6c,$00,$00,$00 ; "boot? "
|
||||
msg_boot .db $7f,$1d,$1d,$0f,$80,$80,$80,$00 ; "boot... "
|
||||
msg_load .db $0b,$1d,$7d,$3d,$80,$80,$80,$00 ; "load... "
|
||||
msg_go .db $5b,$1d,$80,$80,$80,$00,$00,$00 ; "go... "
|
||||
#endif
|
||||
#if (DSKYMODE == DSKYMODE_NG)
|
||||
msg_sel .db $7f,$5c,$5c,$78,$53,$00,$00,$00 ; "boot? "
|
||||
msg_boot .db $7f,$5c,$5c,$78,$80,$80,$80,$00 ; "boot... "
|
||||
msg_load .db $38,$5c,$5f,$5e,$80,$80,$80,$00 ; "load... "
|
||||
msg_go .db $3d,$5c,$80,$80,$80,$00,$00,$00 ; "go... "
|
||||
#endif
|
||||
#endif
|
||||
;
|
||||
;=======================================================================
|
||||
@@ -2050,13 +2071,13 @@ ra_ent(str_fth, 'F', KY_EX, BID_IMG1, $0000, FTH_LOC, FTH_SIZ, FTH_LOC)
|
||||
ra_ent(str_bas, 'B', KY_DE, BID_IMG1, $1700, BAS_LOC, BAS_SIZ, BAS_LOC)
|
||||
ra_ent(str_tbas, 'T', KY_EN, BID_IMG1, $3700, TBC_LOC, TBC_SIZ, TBC_LOC)
|
||||
ra_ent(str_play, 'P', $FF, BID_IMG1, $4000, GAM_LOC, GAM_SIZ, GAM_LOC)
|
||||
ra_ent(str_user, 'U', $FF, BID_IMG1, $7000, USR_LOC, USR_SIZ, USR_LOC)
|
||||
ra_ent(str_egg, 'E'+$80, $FF, BID_IMG1, $4900, EGG_LOC, EGG_SIZ, EGG_LOC)
|
||||
ra_ent(str_user, 'U', $FF, BID_IMG1, $4B00, USR_LOC, USR_SIZ, USR_LOC)
|
||||
ra_ent(str_net, 'N', $FF, BID_IMG2, $0000, NET_LOC, NET_SIZ, NET_LOC)
|
||||
#endif
|
||||
#if (DSKYENABLE)
|
||||
ra_ent(str_dsky, 'Y'+$80, KY_GO, bid_cur, $1000, MON_LOC, MON_SIZ, MON_DSKY)
|
||||
ra_ent(str_dsky, 'Y'+$80, KY_GO, BID_IMG0, $1000, MON_LOC, MON_SIZ, MON_DSKY)
|
||||
#endif
|
||||
ra_ent(str_egg, 'E'+$80, $FF , bid_cur, $0E00, EGG_LOC, EGG_SIZ, EGG_LOC)
|
||||
.dw 0 ; table terminator
|
||||
;
|
||||
ra_tbl_app:
|
||||
@@ -2068,7 +2089,6 @@ ra_ent(str_zsys, 'Z', KY_FW, bid_cur, $2000, CPM_LOC, CPM_SIZ, CPM_ENT)
|
||||
#if (DSKYENABLE)
|
||||
ra_ent(str_dsky, 'Y'+$80, KY_GO, bid_cur, $1000, MON_LOC, MON_SIZ, MON_DSKY)
|
||||
#endif
|
||||
ra_ent(str_egg, 'E'+$80, $FF , bid_cur, $0E00, EGG_LOC, EGG_SIZ, EGG_LOC)
|
||||
.dw 0 ; table terminator
|
||||
;
|
||||
str_mon .db "Monitor",0
|
||||
|
||||
@@ -162,10 +162,10 @@ RTCDEF .SET SD_OPRDEF ; SET DEFAULT IN HBIOS MAINLINE
|
||||
;
|
||||
#IF (SDMODE == SDMODE_PPI) ; PPISD
|
||||
SD_DEVMAX .EQU 1 ; NUMBER OF PHYSICAL UNITS (SOCKETS)
|
||||
SD_PPIBASE .EQU PPIBASE ; BASE IO PORT FOR PPI
|
||||
SD_PPIB .EQU PPIBASE + 1 ; PPI PORT B (INPUT: DOUT)
|
||||
SD_PPIC .EQU PPIBASE + 2 ; PPI PORT C (OUTPUT: CS, CLK, DIN)
|
||||
SD_PPIX .EQU PPIBASE + 3 ; PPI CONTROL PORT
|
||||
SD_PPIBASE .EQU SDPPIBASE ; BASE IO PORT FOR PPI
|
||||
SD_PPIB .EQU SDPPIBASE + 1 ; PPI PORT B (INPUT: DOUT)
|
||||
SD_PPIC .EQU SDPPIBASE + 2 ; PPI PORT C (OUTPUT: CS, CLK, DIN)
|
||||
SD_PPIX .EQU SDPPIBASE + 3 ; PPI CONTROL PORT
|
||||
SD_OPRREG .EQU SD_PPIC ; PPI PORT C IS OPR REG
|
||||
SD_OPRDEF .EQU %00110001 ; CS HI, DI HI
|
||||
SD_INPREG .EQU SD_PPIB ; INPUT REGISTER IS PPI PORT B
|
||||
|
||||
@@ -55,7 +55,7 @@ PLT_EZZ80 .EQU 9 ; EASY Z80
|
||||
PLT_SCZ180 .EQU 10 ; SCZ180
|
||||
PLT_DYNO .EQU 11 ; DYNO MICRO-ATX MOTHERBOARD
|
||||
PLT_RCZ280 .EQU 12 ; RC2014 W/ Z280
|
||||
;
|
||||
PLT_MBC .EQU 13 ; MULTI BOARD COMPUTER
|
||||
;
|
||||
; CPU TYPES
|
||||
;
|
||||
@@ -141,6 +141,18 @@ CONBELL_NONE .EQU 0
|
||||
CONBELL_PSG .EQU 1
|
||||
CONBELL_IOBIT .EQU 2
|
||||
;
|
||||
; LED MODE SELECTIONS
|
||||
;
|
||||
LEDMODE_NONE .EQU 0
|
||||
LEDMODE_STD .EQU 1
|
||||
LEDMODE_RTC .EQU 2
|
||||
;
|
||||
; DSKY MODE SELECTIONS
|
||||
;
|
||||
DSKYMODE_NONE .EQU 0
|
||||
DSKYMODE_V1 .EQU 1
|
||||
DSKYMODE_NG .EQU 2
|
||||
;
|
||||
; FD MODE SELECTIONS
|
||||
;
|
||||
FDMODE_NONE .EQU 0
|
||||
@@ -526,7 +538,7 @@ CBIOS_LOC .EQU CBIOS_END - CBIOS_SIZ ; START OF CBIOS
|
||||
|
||||
CPM_ENT .EQU CBIOS_LOC ; CPM ENTRY POINT (IN CBIOS)
|
||||
|
||||
LDR_SIZ .EQU $0E00
|
||||
LDR_SIZ .EQU $1000
|
||||
|
||||
MON_LOC .EQU $F000 ; LOCATION OF MONITOR FOR RUNNING SYSTEM
|
||||
MON_SIZ .EQU $1000 - HBX_SIZ ; SIZE OF MONITOR BINARY IMAGE
|
||||
@@ -553,7 +565,7 @@ GAM_SIZ .EQU $0900
|
||||
GAM_END .EQU GAM_LOC + GAM_SIZ
|
||||
|
||||
USR_LOC .EQU $0200 ; USER
|
||||
USR_SIZ .EQU $1000
|
||||
USR_SIZ .EQU $8000 - FTH_SIZ - BAS_SIZ - TBC_SIZ - GAM_SIZ - EGG_SIZ
|
||||
USR_END .EQU USR_LOC + USR_SIZ
|
||||
|
||||
NET_LOC .EQU $0100 ; NETWORK BOOT
|
||||
|
||||
@@ -637,6 +637,7 @@ TMS_PUTCHAR:
|
||||
CALL TMS_WR ; SET THE WRITE ADDRESS
|
||||
POP AF ; RECOVER CHARACTER TO WRITE
|
||||
OUT (TMS_DATREG),A ; WRITE THE CHARACTER
|
||||
TMS_IODELAY
|
||||
LD HL,(TMS_POS) ; LOAD CURRENT POSITION INTO HL
|
||||
INC HL
|
||||
LD (TMS_POS),HL
|
||||
|
||||
@@ -2,4 +2,4 @@
|
||||
#DEFINE RMN 1
|
||||
#DEFINE RUP 1
|
||||
#DEFINE RTP 0
|
||||
#DEFINE BIOSVER "3.1.1-pre.83"
|
||||
#DEFINE BIOSVER "3.1.1-pre.86"
|
||||
|
||||
@@ -3,5 +3,5 @@ rmn equ 1
|
||||
rup equ 1
|
||||
rtp equ 0
|
||||
biosver macro
|
||||
db "3.1.1-pre.83"
|
||||
db "3.1.1-pre.86"
|
||||
endm
|
||||
|
||||
Reference in New Issue
Block a user