Browse Source

Merge pull request #188 from wwarthen/dev

Dev
patch
b1ackmai1er 5 years ago
committed by GitHub
parent
commit
9da722d5e2
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 2
      Doc/ChangeLog.txt
  2. 1
      Source/Apps/Clean.cmd
  3. 2
      Source/Apps/I2C/Makefile
  4. 2
      Source/Apps/Makefile
  5. 15
      Source/Apps/rtc.asm
  6. 74
      Source/Apps/tstdskng.asm
  7. 4
      Source/HBIOS/cfg_mbc.asm
  8. 72
      Source/HBIOS/dskyng.asm
  9. 9
      Source/HBIOS/hbios.asm
  10. BIN
      Source/Images/Common/FLASH.COM
  11. BIN
      Source/RomDsk/ROM_1024KB/FLASH.COM
  12. BIN
      Source/RomDsk/ROM_512KB/FLASH.COM
  13. 2
      Source/ver.inc
  14. 2
      Source/ver.lib
  15. 2
      Tools/unix/bin2asm/Makefile
  16. 2
      Tools/unix/bst/Makefile
  17. 2
      Tools/unix/cpmtools/Makefile
  18. 2
      Tools/unix/lzsa/Makefile
  19. 2
      Tools/unix/uz80as/Makefile
  20. 2
      Tools/unix/zx/Makefile

2
Doc/ChangeLog.txt

@ -39,6 +39,8 @@ Version 3.1.1
- WBW: Added preliminary support for DSKYng
- WBW: Elevated MBC to a platform
- WBW: Added support for MBC user LEDs
- PMS: Early DMA support
- W?S: Updated FLASH software to v1.3.5 (supports 128KB A29010B, 512KB A29040B)
Version 3.1
-----------

1
Source/Apps/Clean.cmd

@ -11,3 +11,4 @@ setlocal & cd XM && call Clean || exit /b 1 & endlocal
setlocal & cd FDU && call Clean || exit /b 1 & endlocal
setlocal & cd Tune && call Clean || exit /b 1 & endlocal
setlocal & cd FAT && call Clean || exit /b 1 & endlocal
setlocal & cd I2C && call Clean || exit /b 1 & endlocal

2
Source/Apps/I2C/Makefile

@ -1,4 +1,4 @@
OBJECTS = i2cscan.com, rtcds7.com, i2clcd.com
OBJECTS = i2cscan.com rtcds7.com i2clcd.com
DEST = ../../../Binary/Apps
TOOLS = ../../../Tools

2
Source/Apps/Makefile

@ -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 ppidetst.com tstdskng.com
timer.com inttest.com rtchb.com ppidetst.com tstdskng.com
OTHERS = *.hex *.com
SUBDIRS = XM FDU FAT Tune I2C
DEST = ../../Binary/Apps

15
Source/Apps/rtc.asm

@ -27,6 +27,8 @@
;
;[2020/05/15] v1.6 Added Warm Start option
;
;[2021/07/10] v1.7 Support MBC (AJL)
;
; Constants
;
mask_data .EQU %10000000 ; RTC data line
@ -43,6 +45,7 @@ PORT_EZZ80 .EQU $C0 ; RTC port for EZZ80 (actually does not have one!!!)
PORT_SCZ180 .EQU $0C ; RTC port for SCZ180
PORT_DYNO .EQU $0C ; RTC port for DYNO
PORT_RCZ280 .EQU $C0 ; RTC port for RCZ280
PORT_MBC .EQU $70 ; RTC port for MBC
BDOS .EQU 5 ; BDOS invocation vector
@ -1046,9 +1049,9 @@ RTC_HELP
RTC_INIT:
CALL IDBIO ; Id BIOS, 1=HBIOS, 2=UBIOS
DEC A ; Test for HBIOS
JR Z,HINIT ; Do HBIOS setup
JP Z,HINIT ; Do HBIOS setup
DEC A ; Test for UBIOS
JR Z,UINIT ; Do UBIOS setup
JP Z,UINIT ; Do UBIOS setup
;
; Neither UNA nor RomWBW
LD DE,BIOERR ; BIOS error message
@ -1118,6 +1121,11 @@ HINIT:
LD DE,PLT_RCZ280
CP 12 ; RCZ280
JR Z,RTC_INIT2
;
LD C,PORT_MBC
LD DE,PLT_MBC
CP 13 ; MBC
JR Z,RTC_INIT2
;
; Unknown platform
LD DE,PLTERR ; BIOS error message
@ -1614,7 +1622,7 @@ TESTING_BIT_DELAY_OVER:
RTC_HELP_MSG:
.DB 0Ah, 0Dh ; line feed and carriage return
.TEXT "RTC: Version 1.5"
.TEXT "RTC: Version 1.7"
.DB 0Ah, 0Dh ; line feed and carriage return
.TEXT "Commands: E)xit T)ime st(A)rt S)et R)aw L)oop C)harge N)ocharge D)elay I)nit G)et P)ut B)oot W)arm-start H)elp"
.DB 0Ah, 0Dh ; line feed and carriage return
@ -1742,6 +1750,7 @@ PLT_EZZ80 .TEXT ", Easy Z80 RTC Module Latch Port 0xC0\r\n$"
PLT_SCZ180 .TEXT ", SC Z180 RTC Module Latch Port 0x0C\r\n$"
PLT_DYNO .TEXT ", DYNO RTC Module Latch Port 0x0C\r\n$"
PLT_RCZ280 .TEXT ", RC2014 Z280 RTC Module Latch Port 0xC0\r\n$"
PLT_MBC .TEXT ", MBC RTC Latch Port 0x70\r\n$"
;
; Generic FOR-NEXT loop algorithm

74
Source/Apps/tstdskng.asm

@ -16,7 +16,7 @@
FALSE: .EQU 0
TRUE: .EQU !FALSE
;
DSKY_OSC: .EQU 2000000 ; OSCILLATOR FREQ IN HZ
DSKY_OSC: .EQU 1000000 ; OSCILLATOR FREQ IN HZ
;
BDOS: .EQU FALSE ; BDOS OR DIRECT TO 8250ISH
;
@ -31,25 +31,25 @@ PPI_BASE: .EQU $60 ; PPI BASE IO PORT
; 10 04
; +--08--+ 80
;
; KEY CODE MAP (KEY CODES) --CCCRRR
; 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
; 00 08 10 18 23
; 01 09 11 19 22
; 02 0A 12 1A 21
; 03 0B 13 1B 20
; 04 0C 14 1C SHIFT
; 05 0D 15 1D CONTROL
;
; 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
; $08 $09 $0A $0B $0C
; --- --- --- --- ---
; 01 01 01 01 01
; 02 02 02 02 02
; 04 04 04 04 04
; 08 08 08 08 08
; 10 10 10 10 10
; 20 20 20 20 20
;
PPIA: .EQU PPI_BASE + 0 ; PORT A
PPIB: .EQU PPI_BASE + 1 ; PORT B
@ -62,12 +62,12 @@ 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
; RES 0 0 CS CS /RD /WR A0
;
; SETTING BITS 3 & 4 WILL ASSERT /CS ON 3279
; CLEAR BITS 5 OR 6 TO ASSERT READ/WRITE
; CLEAR BITS 1 OR 2 TO ASSERT READ/WRITE
;
DSKY_PPI_IDLE: .EQU %01100000
DSKY_PPI_IDLE: .EQU %00000110
;
DSKY_CMD_CLR: .EQU %11011111 ; CLEAR (ALL OFF)
DSKY_CMD_CLRX: .EQU %11010011 ; CLEAR (ALL ON)
@ -176,7 +176,7 @@ M1:
LD C,0
LD HL,DSPBUF
CALL DSKY_PUTENCSTR
;
;
M2:
CALL CST ; CONSOLE STATUS
JR NZ,M4 ; ABORT IF KEY PRESSED
@ -243,12 +243,18 @@ M4:
; DANCING LIGHTS
CALL PRTSTRD
.DB "\r\nDance, Baby, Dance (console key to end)...$"
LD A,DSKY_CMD_CLR
CALL DSKY_CMD
;
LD E,$01 ; STARTING VALUE
M5:
CALL CST ; CONSOLE STATUS
JR NZ,M8 ; ABORT IF KEY PRESSED
LD B,12 ; NUMBER OF BYTES
LD B,16 ; NUMBER OF BYTES
LD C,$00 ; STARTING LOCATION (BYTE)
M6:
LD A,E
@ -268,14 +274,14 @@ M8:
LD A,DSKY_CMD_CLR
CALL DSKY_CMD
;
EXIT:
EXIT:
; GOODBYE
CALL PRTSTRD
.DB "\r\nThank you, please call again\r\n$"
;
; CLEAN UP AND RETURN TO OS
LD SP,(STACKSAV)
;
;
RET
;
; SETUP PPI FOR WRITING: PUT PPI PORT A IN OUTPUT MODE
@ -288,7 +294,7 @@ DSKY_PPIWR:
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
@ -317,7 +323,7 @@ DSKY_PPIRD:
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
@ -409,10 +415,10 @@ DSKY_DOUT2:
OUT (PPIA),A
;
; PULSE /WR
RES 5,B
RES 1,B
OUT (C),B
NOP ; MAY NOT BE NEEDED
SET 5,B
SET 1,B
OUT (C),B
;
; DEASSERT /CS
@ -462,14 +468,14 @@ DSKY_DIN2:
LD B,A
;
; ASSERT /RD
RES 6,B
RES 2,B
OUT (C),B
;
; GET VALUE
IN A,(PPIA)
;
; DEASSERT /RD
SET 6,B
SET 2,B
OUT (C),B
;
; DEASSERT /CS
@ -536,7 +542,7 @@ DSKY_PUTSTR:
ADD A,DSKY_CMD_WDSP
CALL DSKY_CMD
POP BC
;
;
DSKY_PUTSTR1:
LD A,(HL)
XOR $FF
@ -556,7 +562,7 @@ DSKY_GETSTR:
ADD A,DSKY_CMD_RDSP
CALL DSKY_CMD
POP BC
;
;
DSKY_GETSTR1:
PUSH BC
CALL DSKY_DIN
@ -623,7 +629,7 @@ DSKY_READ:
CALL DSKY_GETSTR
LD B,$10
LD HL,DSPBUF
DSKY_READ1:
DSKY_READ1:
LD A,(HL)
INC HL
CALL PC_SPACE
@ -639,7 +645,7 @@ COUT:
PUSH DE ;
PUSH HL ;
#IF BDOS
#IF BDOS
LD C,2 ; BDOS FUNC: CONSOLE OUTPUT
LD E,A ; CHARACTER TO E
CALL $0005 ; CALL BDOS
@ -984,7 +990,7 @@ DSKY_PPIX_VAL: .DB 0
DSPBUF: .FILL 16,0
;
PAT1: .DB $01,$02,$04,$08,$10,$20,$40,$80
.DB $11,$22,$44,$88,$FF,$FF,$FF,$FF
.DB $11,$22,$44,$88,$00,$00,$00,$00
PAT1LN: .EQU $ - PAT1
PAT2: .DB $01,$03,$07,$0F,$1F,$3F,$7F,$FF
.DB $11,$33,$77,$FF,$00,$00,$00,$00

4
Source/HBIOS/cfg_mbc.asm

@ -229,3 +229,7 @@ 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)
;
DMAENABLE .EQU FALSE ; DMA: ENABLE DMA DRIVER (DMA.ASM)
DMABASE .EQU $E0 ; DMA: DMA BASE ADDRESS
DMAMODE .EQU DMAMODE_NONE ; DMA: DMA MODE (NONE|ECB|Z180|Z280|RC)

72
Source/HBIOS/dskyng.asm

@ -13,25 +13,25 @@
; 10 04
; +--08--+ 80
;
; KEY CODE MAP (KEY CODES) --CCCRRR
; 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
; 00 08 10 18 23
; 01 09 11 19 22
; 02 0A 12 1A 21
; 03 0B 13 1B 20
; 04 0C 14 1C SHIFT
; 05 0D 15 1D CTRL
;
; 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
; $08 $09 $0A $0B $0C
; --- --- --- --- ---
; 01 01 01 01 01
; 02 02 02 02 02
; 04 04 04 04 04
; 08 08 08 08 08
; 10 10 10 10 10
; 20 20 20 20 10
;
PPIA .EQU DSKYPPIBASE + 0 ; PORT A
PPIB .EQU DSKYPPIBASE + 1 ; PORT B
@ -44,12 +44,12 @@ 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
; RES 0 0 CS CS /RD /WR A0
;
; SETTING BITS 3 & 4 WILL ASSERT /CS ON 3279
; CLEAR BITS 5 OR 6 TO ASSERT READ/WRITE
; CLEAR BITS 1 OR 2 TO ASSERT READ/WRITE
;
DSKY_PPI_IDLE: .EQU %01100000
DSKY_PPI_IDLE: .EQU %00000110
;
DSKY_CMD_CLR: .EQU %11011111 ; CLEAR (ALL OFF)
DSKY_CMD_CLRX: .EQU %11010011 ; CLEAR (ALL ON)
@ -87,8 +87,8 @@ DSKY_REINIT:
; SET CLOCK SCALER TO 20
LD A,DSKY_CMD_CLK | DSKY_PRESCL
CALL DSKY_CMD
LD A,%00001000 ; dan
CALL DSKY_CMD
; LD A,%00001000 ; dan
; CALL DSKY_CMD
; FALL THRU
;
DSKY_RESET:
@ -123,6 +123,10 @@ KY_DE .EQU $14 ; DEPOSIT
KY_EX .EQU $15 ; EXAMINE
KY_GO .EQU $16 ; GO
KY_BO .EQU $17 ; BOOT
KY_F4 .EQU $18 ; F4
KY_F3 .EQU $19 ; F3
KY_F2 .EQU $20 ; F2
KY_F1 .EQU $21 ; F1
;
;__DSKY_STAT_________________________________________________________________________________________
;
@ -145,7 +149,8 @@ DSKY_GETKEY:
LD A,DSKY_CMD_FIFO
CALL DSKY_CMD
CALL DSKY_DIN
LD B,24 ; SIZE OF DECODE TABLE
AND $3F ; STRIP OFF SHIFT AND CONTROL KEYS (FOR NOW)
LD B,28 ; SIZE OF DECODE TABLE
LD C,0 ; INDEX
LD HL,DSKY_KEYMAP ; POINT TO BEGINNING OF TABLE
DSKY_GETKEY1:
@ -167,14 +172,19 @@ 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
; POS $18 $19 $20 $21
; KEY [F4] [F3] [F2] [F1]
.DB $23, $22, $21, $20
;
#ENDIF ; DSKY_KBD
;
@ -279,10 +289,10 @@ DSKY_DOUT2:
OUT (PPIA),A
;
; PULSE /WR
RES 5,B
RES 1,B
OUT (C),B
NOP ; MAY NOT BE NEEDED
SET 5,B
SET 1,B
OUT (C),B
;
; DEASSERT /CS
@ -332,14 +342,14 @@ DSKY_DIN2:
LD B,A
;
; ASSERT /RD
RES 6,B
RES 2,B
OUT (C),B
;
; GET VALUE
IN A,(PPIA)
;
; DEASSERT /RD
SET 6,B
SET 2,B
OUT (C),B
;
; DEASSERT /CS
@ -406,7 +416,7 @@ DSKY_PUTSTR:
ADD A,DSKY_CMD_WDSP
CALL DSKY_CMD
POP BC
;
;
DSKY_PUTSTR1:
LD A,(HL)
XOR $FF
@ -426,7 +436,7 @@ DSKY_GETSTR:
ADD A,DSKY_CMD_RDSP
CALL DSKY_CMD
POP BC
;
;
DSKY_GETSTR1:
PUSH BC
CALL DSKY_DIN
@ -471,7 +481,7 @@ DSKY_PPIWR:
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
@ -505,7 +515,7 @@ DSKY_PPIRD:
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

9
Source/HBIOS/hbios.asm

@ -1225,6 +1225,15 @@ Z280_INITZ:
OUT (EIPC_SCDP),A ; SET SYSTEM CONTROL DATA PORT (SCDP)
#ENDIF
;
#IF ((MEMMGR == MM_SBC) | (MEMMGR == MM_MBC))
; SET PAGING REGISTERS
#IFDEF ROMBOOT
XOR A
OUT (MPCL_RAM),A ; REMOVE RAM FIRST!
OUT (MPCL_ROM),A ; SELECT ROM PAGE 0
#ENDIF
#ENDIF
;
#IF (MEMMGR == MM_Z2)
; SET PAGING REGISTERS
#IFDEF ROMBOOT

BIN
Source/Images/Common/FLASH.COM

Binary file not shown.

BIN
Source/RomDsk/ROM_1024KB/FLASH.COM

Binary file not shown.

BIN
Source/RomDsk/ROM_512KB/FLASH.COM

Binary file not shown.

2
Source/ver.inc

@ -2,4 +2,4 @@
#DEFINE RMN 1
#DEFINE RUP 1
#DEFINE RTP 0
#DEFINE BIOSVER "3.1.1-pre.86"
#DEFINE BIOSVER "3.1.1-pre.87"

2
Source/ver.lib

@ -3,5 +3,5 @@ rmn equ 1
rup equ 1
rtp equ 0
biosver macro
db "3.1.1-pre.86"
db "3.1.1-pre.87"
endm

2
Tools/unix/bin2asm/Makefile

@ -8,7 +8,7 @@ SRC_FILES = $(wildcard *.c)
OBJ_FILES = $(SRC_FILES:.c=.o)
all: $(BINARY) $(DEST)
cp $(BINARY) $(DEST)
cp -p $(BINARY) $(DEST)
$(DEST):
mkdir -p $(DEST)

2
Tools/unix/bst/Makefile

@ -14,7 +14,7 @@ DEST = ../../$(UNAME)
all: $(DEST)
-for i in *.$(SUFFIX) ; do \
chmod +x $$i ; \
cp $$i $(DEST)/$$(basename $$i .$(SUFFIX)) ; \
cp -p $$i $(DEST)/$$(basename $$i .$(SUFFIX)) ; \
done
$(DEST):

2
Tools/unix/cpmtools/Makefile

@ -23,7 +23,7 @@ DEVICEOBJ = device_posix.o
OBJECTS = cpmls cpmrm cpmcp cpmchmod cpmchattr mkfs.cpm fsck.cpm fsed.cpm
all: $(OBJECTS) $(DEST)
cp $(OBJECTS) $(DEST)
cp -p $(OBJECTS) $(DEST)
cpmls: cpmls.o cpmfs.o getopt.o getopt1.o $(DEVICEOBJ)
$(CC) $(LDFLAGS) -o $@ cpmls.o cpmfs.o getopt.o getopt1.o $(DEVICEOBJ)

2
Tools/unix/lzsa/Makefile

@ -33,7 +33,7 @@ OBJS += $(OBJDIR)/src/libdivsufsort/lib/trsort.o
UNAME := $(shell uname)
all: $(APP)
cp $(APP) ../../$(UNAME)
cp -p $(APP) ../../$(UNAME)
$(APP): $(OBJS)
@mkdir -p ../../bin/posix

2
Tools/unix/uz80as/Makefile

@ -44,7 +44,7 @@ SOURCES = \
mc6800.c
all: uz80as $(DEST)
cp uz80as $(DEST)
cp -p uz80as $(DEST)
$(DEST):
mkdir -p $(DEST)

2
Tools/unix/zx/Makefile

@ -17,7 +17,7 @@ OBJECTS = zx.o cpmdrv.o cpmglob.o cpmparse.o cpmredir.o \
UNUSED = dirent.o
all: zx $(DEST)
cp bios.bin zx $(DEST)
cp -p bios.bin zx $(DEST)
$(DEST):
mkdir -p $(DEST)

Loading…
Cancel
Save