Merge pull request #127 from wwarthen/dev

Dev
This commit is contained in:
b1ackmai1er
2020-05-15 18:02:11 +08:00
committed by GitHub
31 changed files with 435 additions and 63 deletions

View File

@@ -101,3 +101,23 @@ rem Loader
tasm -t80 -g3 -fFF loader.asm loader.bin loader.lst
copy /b loader.bin + cpmldr.bin cpmldr.sys
rem Copy OS files to Binary directory
copy cpmldr.com ..\..\Binary\CPM3
copy cpmldr.sys ..\..\Binary\CPM3
copy ccp.com ..\..\Binary\CPM3
copy gencpm.com ..\..\Binary\CPM3
copy genres.dat ..\..\Binary\CPM3
copy genbnk.dat ..\..\Binary\CPM3
copy bios3.spr ..\..\Binary\CPM3
copy bnkbios3.spr ..\..\Binary\CPM3
copy bdos3.spr ..\..\Binary\CPM3
copy bnkbdos3.spr ..\..\Binary\CPM3
copy resbdos3.spr ..\..\Binary\CPM3
copy cpm3res.sys ..\..\Binary\CPM3
copy cpm3bnk.sys ..\..\Binary\CPM3
copy gencpm.dat ..\..\Binary\CPM3
copy cpm3.sys ..\..\Binary\CPM3
copy readme.1st ..\..\Binary\CPM3
copy cpm3fix.pat ..\..\Binary\CPM3

View File

@@ -4,11 +4,19 @@
#
# it does this by overriding OBJECTS in an invoked sub-make
#
OBJECTS = cpmldr.com cpmldr.sys cpm3res cpm3bnk zpmbios3 cpm3.sys gencpm.dat
OTHERS = cpmldr.rel biosldr.rel cpm3res.sys cpm3bnk.sys zpmbios3.spr loader.bin cpmldr.bin
OBJECTS = cpmldr.com cpmldr.sys cpm3res.sys cpm3bnk.sys zpmbios3
OBJECTS += ccp.com gencpm.com genres.dat genbnk.dat
OBJECTS += bdos3.spr bnkbdos3.spr resbdos3.spr
OBJECTS += readme.1st cpm3fix.pat cpm3.sys gencpm.dat
NOCOPY = zpmbios3
OTHERS = cpmldr.rel biosldr.rel cpm3res.sys cpm3bnk.sys loader.bin cpmldr.bin
OTHERS += biosldrc.rel biosldrd.rel
NODELETE = ccp.com gencpm.com genres.dat genbnk.dat bdos3.spr bnkbdos3.spr resbdos3.spr
NODELETE += readme.1st cpm3fix.pat
DEST = ../../Binary/CPM3
TOOLS = ../../Tools
include $(TOOLS)/Makefile.inc
export ZXINCDIR = ../
@@ -25,11 +33,11 @@ DEFCPM3 = bnk
clean:: biosclean
@rm -f bios3.spr bnkbios3.spr zpmbios3.spr cpmldr.com gencpm.dat options.lib ldropts.lib
biosclean:
@rm -f $(BIOSOBJS)
cpm3res:
cpm3res.sys:
make biosclean
cp optres.lib options.lib
cp genres.dat gencpm.dat
@@ -38,7 +46,7 @@ cpm3res:
mv cpm3.sys cpm3res.sys
rm gencpm.dat
cpm3bnk:
cpm3bnk.sys:
make biosclean
cp optbnk.lib options.lib
cp genbnk.dat gencpm.dat
@@ -50,9 +58,7 @@ cpm3bnk:
zpmbios3:
make biosclean
cp optzpm.lib options.lib
cp genbnk.dat gencpm.dat
make OBJECTS=zpmbios3.spr
rm gencpm.dat
make OBJECTS=zpmbios3.spr DEST=
cpmldr.bin: biosldrd.rel cpmldr.rel
$(ZXCC) $(TOOLS)/cpm/bin/LINK -CPMLDRD[L100]=CPMLDR,BIOSLDRD
@@ -83,9 +89,12 @@ zpmbios3.spr: $(BIOSOBJS)
cpm3.sys: cpm3$(DEFCPM3).sys
cp cpm3$(DEFCPM3).sys cpm3.sys
rm -f /tmp/casefn.cache
gencpm.dat: gen$(DEFCPM3).dat
cp gen$(DEFCPM3).dat gencpm.dat
rm -f /tmp/casefn.cache
cpmldr.sys: loader.bin cpmldr.bin
cat loader.bin cpmldr.bin > $@

View File

@@ -1114,12 +1114,81 @@ your choice. This process is described below in the Disk Images
section. If you wish to update existing disk media in your system, you
need to perform the following steps.
If the disk is bootable, you need to update the system tracks of the
disk. This is done using a SYSCOPY command such as `SYSCOPY
C:=B:ZSYS.SYS`. For a ZSDOS boot disk, use ZSYS.SYS. For a CP/M 2.2
disk, use CPM.SYS. For a CP/M 3 or ZPM3 disk, use CPMLDR.SYS.
CPMLDR.SYS is not provided on the ROM disk, so you will need to
upload it from the distribution.
If the disk is bootable, you need to update the system image on the
disk using the procedure described below corresponsing to the
operating system on your disk.
* **CP/M 2.2**
Boot to CP/M 2.2 from ROM, then use `SYSCOPY` to update the system
image on **all** CP/M 2.2 boot disks/slices. The CP/M 2.2 system image
is called CPM.SYS and is found on the ROM disk. For example:
`B>SYSCOPY C:=CPM.SYS`
* **ZSDOS**
Boot to Z-System from ROM, then use `SYSCOPY` to update the system
image on **all** ZSDOS boot disks/slices. The ZSDOS system image
is called ZSYS.SYS and is found on the ROM disk. For example:
`B>SYSCOPY C:=ZSYS.SYS`
* **NZCOM**
NZCOM runs on top of either CP/M 2.2 or ZSDOS. By default, the
RomWBW disk image for NZCOM uses ZSDOS. Follow the corresponding
procedure above to update the system image on the NZCOM boot
disks/slices.
* **CP/M 3**
CP/M 3 uses a multi-step boot process involving multiple files.
The CP/M 3 boot files are not included on the ROM disk due to
space constraints. You will need to transfer the files to your
system from the RomWBW distribution directory Binary\\CPM3.
After this is done, you will need to use `SYSCOPY` to place
the CP/M 3 loader image on the boot tracks of all CP/M 3
boot disks/slices. The loader image is called `CPMLDR.SYS`.
You must then copy (at a minimum) `CPM3.SYS` and `CCP.COM`
onto the disk/slice. Assuming you copied the CP/M 3 boot files
onto your RAM disk at A:, you would use:
```
A>B:SYSCOPY C:=CPMLDR.SYS
A>B:COPY CPM3.SYS C:
A>B:COPY CCP.COM C:
```
* **ZPM3**
ZPM3 uses a multi-step boot process involving multiple files.
The ZPM3 boot files are not included on the ROM disk due to
space constraints. You will need to transfer the files to your
system from the RomWBW distribution directory Binary\\ZPM3.
After this is done, you will need to use `SYSCOPY` to place
the ZPM3 loader image on the boot tracks of all ZPM3
boot disks/slices. The loader image is called `CPMLDR.SYS`.
You must then copy (at a minimum) `CPM3.SYS`, `ZCCP.COM`,
`ZINSTAL.ZPM`, and `STARTZPM.COM` onto the disk/slice.
Assuming you copied the ZPM3 boot files onto your RAM disk
at A:, you would use:
```
A>B:SYSCOPY C:=CPMLDR.SYS
A>B:COPY CPM3.SYS C:
A>B:COPY ZCCP.COM C:
A>B:COPY ZINSTAL.ZPM C:
A>B:COPY STARTZPM.COM C:
```
You may be wondering if the references to `CPMLDR.SYS` and
`CPM3.SYS` are typos. They are not. ZPM3 uses the same loader
image as CPM3. The ZPM3 main system code file is called `CPM3.SYS`
which is the same name as CP/M 3 uses, but the file contents are
not the same.
Finally, if you have copies of any of the RomWBW custom applications
on your hard disk, you need to update them with the latest copies. The

View File

@@ -137,10 +137,15 @@ AY_FND: LD IY, AY_IDAT ; SETUP FUNCTION TABLE
LD HL, AY_TIMER ; INSTALL TIMER HOOK HANDLER
LD (VEC_TICK + 1), HL
LD A, $02 ; NOT READY & IN INTERUPT HANDLER
LD (AY_READY), A
#ELSE
CALL LDELAY ; HALF SECOND DELAY
LD E,$00 ; SET VOLUME OFF
CALL AY_SETV ; ON ALL CHANNELS
CALL AY_SETV ; ON ALL CHANNELS
LD A, $01 ; READY & NOT IN INTERUPT HANDLER
LD (AY_READY), A
#ENDIF
;
@@ -154,11 +159,15 @@ AY_TIMER:
LD (AY_TIMTIK), A
JR NZ, AY_TIMER1
LD HL, (AY_TIMHOOK) ; REMOVE US FROM THE TIMER HOOKS LIST
LD (VEC_TICK + 1), HL
LD E,$00 ; SET VOLUME OFF
CALL AY_SETV ; ON ALL CHANNELS
LD A, $01 ; READY & NOT IN INTERUPT HANDLER
LD (AY_READY), A
LD DE, AY_TIMER ; MAKE AY_TIMER A NO_OP HANDLER
LD HL, AY_TIMER1
LD BC, 3
LDIR
AY_TIMER1:
JP 0 ; OVERWRITTEN WITH NEXT HANDLER
@@ -174,8 +183,16 @@ AY_TIMTIK .DB 0 ; COUNT DOWN TO FINISH BOOT BEEP
;
AY_INIT:
LD DE,(AY_R7ENAB*256)+$F8 ; SET MIXER CONTROL / IO ENABLE. $F8 - 11 111 000
CALL AY_WRTPSG ; I/O PORTS = OUTPUT, NOISE CHANNEL C, B, A DISABLE, TONE CHANNEL C, B, A ENABLE
RET
JP AY_WRTPSG ; I/O PORTS = OUTPUT, NOISE CHANNEL C, B, A DISABLE, TONE CHANNEL C, B, A ENABLE
AY_CHKREDY:
LD A, (AY_READY)
BIT 0, A
RET NZ
POP HL ; REMOVE LAST RETURN ADDRESS
OR $FF
RET ; RETURN NZ
;
;======================================================================
; SET VOLUME ALL CHANNELS
@@ -200,7 +217,8 @@ AY_SV: CALL AY_WRTPSG ; CYCLING THROUGH ALL CHANNELS
;
AY_RESET:
AUDTRACE(AYT_INIT)
;
CALL AY_CHKREDY ; RETURNS TO OUR CALLER IF NOT READY
PUSH DE
PUSH HL
CALL AY_INIT ; SET DEFAULT CHIP CONFIGURATION
@@ -227,6 +245,7 @@ AY_VOLUME:
AUDTRACE(AYT_VOL)
AUDTRACE_L
AUDTRACE_CR
LD A,L ; SAVE VOLUME
LD (AY_PENDING_VOLUME), A
;
@@ -283,6 +302,8 @@ AY_PLAY:
AUDTRACE(AYT_PLAY)
AUDTRACE_D
AUDTRACE_CR
CALL AY_CHKREDY ; RETURNS TO OUR CALLER IF NOT READY
;
LD A, (AY_PENDING_PERIOD + 1) ; CHECK THE HIGH BYTE OF THE PERIOD
INC A
@@ -390,6 +411,21 @@ AY_QUERY_DEV:
LD DE, (AY_RSEL*256)+AY_RDAT ; AND ADDRESS AND DATA PORT
XOR A
RET
AY_DI:
LD A, (AY_READY)
BIT 1, A
RET NZ
HB_DI
RET
AY_EI:
LD A, (AY_READY)
BIT 1, A
RET NZ
HB_EI
RET
;
;======================================================================
;
@@ -399,7 +435,7 @@ AY_QUERY_DEV:
;======================================================================
;
AY_WRTPSG:
HB_DI
CALL AY_DI
#IF (SBCV2004)
LD A,8 ; SBC-V2-004 CHANGE
OUT (112),A ; TO HALF CLOCK SPEED
@@ -422,8 +458,7 @@ AY_WRTPSG:
LD A,0 ; SBC-V2-004 CHANGE TO
OUT (112),A ; NORMAL CLOCK SPEED
#ENDIF
HB_EI
RET
JP AY_EI
;
;======================================================================
@@ -431,7 +466,7 @@ AY_WRTPSG:
; READ FROM REGISTER D AND RETURN WITH RESULT IN E
;
AY_RDPSG:
HB_DI
CALL AY_DI
#IF (SBCV2004)
LD A,8 ; SBC-V2-004 CHANGE
OUT (112),A ; TO HALF CLOCK SPEED
@@ -454,13 +489,14 @@ AY_RDPSG:
LD A,0 ; SBC-V2-004 CHANGE TO
OUT (112),A ; NORMAL CLOCK SPEED
#ENDIF
HB_EI
RET
JP AY_EI
;
;======================================================================
;
AY_PENDING_PERIOD .DW 0 ; PENDING PERIOD (12 BITS) ; ORDER
AY_PENDING_VOLUME .DB 0 ; PENDING VOL (8 BITS) ; SIGNIFICANT
AY_READY .DB 0 ; BIT 0 -> NZ DRIVER IS READY TO RECEIVE PLAY COMMAND
; BIT 1 -> NZ EXECUTING WITHIN TIMER HANDLER = DO NOT DIS/ENABLE INT
;
#IF AUDIOTRACE
AYT_INIT .DB "\r\nAY_INIT\r\n$"

View File

@@ -4,19 +4,19 @@
SYSTIMEN .EQU FALSE
#IF (CTCENABLE & INTMODE == 2 & CTCTIMER)
#IF (CTCENABLE & (INTMODE == 2) & (CTCTIMER))
SYSTIMEN .SET TRUE
#ENDIF
#IF (TMSENABLE & INTMODE == 1 & TMSTIMENABLE)
#IF (TMSENABLE & (INTMODE == 1) & TMSTIMENABLE)
SYSTIMEN .SET TRUE
#ENDIF
#IF (INTMODE == 1 & PLATFORM == PLT_SBC & HTIMENABLE)
#IF ((INTMODE == 1) & (PLATFORM == PLT_SBC) & HTIMENABLE)
SYSTIMEN .SET TRUE
#ENDIF
#IF (INTMODE == 2 & CPUFAM == CPU_Z180)
#IF ((INTMODE == 2) & (CPUFAM == CPU_Z180))
SYSTIMEN .SET TRUE
#ENDIF

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -19,7 +19,8 @@ copy ..\CPM3\zpmbios3.spr bnkbios3.spr
copy ..\CPM3\gencpm.com .
copy ..\CPM3\biosldrd.rel .
copy ..\CPM3\biosldrc.rel .
rem copy ..\CPM3\cpmldr.com .
copy ..\CPM3\cpmldr.com .
copy ..\CPM3\cpmldr.sys .
rem ZPM Loader
echo.
@@ -46,3 +47,22 @@ rem Loader
tasm -t80 -g3 -fFF loader.asm loader.bin loader.lst
copy /b loader.bin + zpmldr.bin zpmldr.sys
rem Copy OS files to Binary directory
copy zpmldr.com ..\..\Binary\ZPM3
copy zpmldr.sys ..\..\Binary\ZPM3
copy cpmldr.com ..\..\Binary\ZPM3
copy cpmldr.sys ..\..\Binary\ZPM3
copy autotog.com ..\..\Binary\ZPM3
copy clrhist.com ..\..\Binary\ZPM3
copy setz3.com ..\..\Binary\ZPM3
copy cpm3.sys ..\..\Binary\ZPM3
copy zccp.com ..\..\Binary\ZPM3
copy zinstal.zpm ..\..\Binary\ZPM3
copy startzpm.com ..\..\Binary\ZPM3
copy makedos.com ..\..\Binary\ZPM3
copy gencpm.dat ..\..\Binary\ZPM3
copy bnkbios3.spr ..\..\Binary\ZPM3
copy bnkbdos3.spr ..\..\Binary\ZPM3
copy resbdos3.spr ..\..\Binary\ZPM3

View File

@@ -1,10 +1,12 @@
OBJECTS = zpmldr.com zpmldr.sys cpm3.sys startzpm.com zccp.com
ifdef REBUILD_ZPM_TOOLS
#ifdef REBUILD_ZPM_TOOLS
OBJECTS += setz3.com clrhist.com autotog.com
else
NODELETE = setz3.com clrhist.com autotog.com
endif
OTHERS = zpmldr.bin loader.bin biosldrd.rel biosldrc.rel gencpm.com gencpm.dat bnkbios3.spr
#else
NODELETE = setz3.com clrhist.com autotog.com makedos.com zinstal.zpm bnkbdos3.spr resbdos3.spr
#endif
OBJECTS += cpmldr.com cpmldr.sys zinstal.zpm makedos.com gencpm.dat bnkbios3.spr bnkbdos3.spr resbdos3.spr
OTHERS = zpmldr.bin loader.bin biosldrd.rel biosldrc.rel gencpm.com
DEST = ../../Binary/ZPM3/
TOOLS =../../Tools
include $(TOOLS)/Makefile.inc
@@ -47,8 +49,8 @@ zinstal.zpm: ../ZCCP/zinstal.zpm
startzpm.com: ../ZCCP/startzpm.com
cp $< $@
setz3.com: setz3.z80
cpmldr.com: ../CPM3/cpmldr.com
cp $< $@
clrhist.com: clrhist.z80
autotog.com: autotog.z80
cpmldr.sys: ../CPM3/cpmldr.sys
cp $< $@

View File

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

View File

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