Browse Source

Merge pull request #252 from b1ackmai1er/dev

Dev directory + Speed switching for MBC + ECB
pull/259/head
Wayne Warthen 4 years ago
committed by GitHub
parent
commit
e41f1b7bb5
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 1
      Source/Apps/Build.cmd
  2. 1
      Source/Apps/Clean.cmd
  3. 14
      Source/Apps/Dev/Build.cmd
  4. 7
      Source/Apps/Dev/Clean.cmd
  5. 10
      Source/Apps/Dev/Makefile
  6. 32
      Source/Apps/Dev/dev.asm
  7. 1
      Source/Apps/Dev/dev.txt
  8. 2
      Source/Apps/Makefile
  9. 2
      Source/HBIOS/Config/MBC_std.asm
  10. 2
      Source/HBIOS/cfg_dyno.asm
  11. 2
      Source/HBIOS/cfg_ezz80.asm
  12. 2
      Source/HBIOS/cfg_master.asm
  13. 2
      Source/HBIOS/cfg_mbc.asm
  14. 2
      Source/HBIOS/cfg_mk4.asm
  15. 2
      Source/HBIOS/cfg_n8.asm
  16. 2
      Source/HBIOS/cfg_rcz180.asm
  17. 2
      Source/HBIOS/cfg_rcz280.asm
  18. 2
      Source/HBIOS/cfg_rcz80.asm
  19. 2
      Source/HBIOS/cfg_sbc.asm
  20. 2
      Source/HBIOS/cfg_scz180.asm
  21. 2
      Source/HBIOS/cfg_una.asm
  22. 2
      Source/HBIOS/cfg_zeta.asm
  23. 2
      Source/HBIOS/cfg_zeta2.asm
  24. 95
      Source/HBIOS/dma.asm
  25. 32
      Source/HBIOS/hbios.asm
  26. 2
      Source/HBIOS/hbios.inc
  27. 2
      Source/HBIOS/sn76489.asm
  28. 11
      Source/HBIOS/std.asm
  29. 4
      Source/HBIOS/uart.asm
  30. 2
      Source/HBIOS/updater.asm
  31. 4
      Source/HBIOS/usrrom.asm

1
Source/Apps/Build.cmd

@ -33,6 +33,7 @@ pushd FAT && call Build || exit /b & popd
pushd Test && call Build || exit /b & popd pushd Test && call Build || exit /b & popd
pushd ZMP && call Build || exit /b & popd pushd ZMP && call Build || exit /b & popd
pushd ZMD && call Build || exit /b & popd pushd ZMD && call Build || exit /b & popd
pushd Dev && call Build || exit /b & popd
copy *.com %APPBIN%\ || exit /b copy *.com %APPBIN%\ || exit /b

1
Source/Apps/Clean.cmd

@ -14,3 +14,4 @@ pushd FAT && call Clean || exit /b 1 & popd
pushd Test && call Clean || exit /b 1 & popd pushd Test && call Clean || exit /b 1 & popd
pushd ZMP && call Clean || exit /b 1 & popd pushd ZMP && call Clean || exit /b 1 & popd
pushd ZMD && call Clean || exit /b 1 & popd pushd ZMD && call Clean || exit /b 1 & popd
pushd Dev && call Clean || exit /b 1 & popd

14
Source/Apps/Dev/Build.cmd

@ -0,0 +1,14 @@
@echo off
setlocal
set TOOLS=../../../Tools
set PATH=%TOOLS%\tasm32;%PATH%
set TASMTABS=%TOOLS%\tasm32
echo Building Dev...
tasm -t80 -g3 -fFF dev.asm dev.com %dev.lst || exit /b
copy /Y dev.com ..\..\..\Binary\Apps\ || exit /b
rem copy /Y *.ovr ..\..\..\Binary\Apps\ || exit /b
rem copy /Y *.hlp ..\..\..\Binary\Apps\ || exit /b
rem copy /Y *.doc ..\..\..\Binary\Apps\ || exit /b

7
Source/Apps/Dev/Clean.cmd

@ -0,0 +1,7 @@
@echo off
setlocal
if exist dev.com del dev.com
if exist *.hex del *.hex
if exist *.lst del *.lst
if exist *.zip del *.zip

10
Source/Apps/Dev/Makefile

@ -0,0 +1,10 @@
OBJECTS = dev.com
DOCS = dev.txt
DEST = ../../../Binary/Apps
DOCDEST = ../../../Binary/Apps
TOOLS = ../../../Tools
include $(TOOLS)/Makefile.inc
%.com: USETASM=1

32
Source/Apps/Dev/dev.asm

@ -0,0 +1,32 @@
;===============================================================================
; Dev - Developement Stub
;===============================================================================
;
; AUTHOR:
;
; Usage:
;
;_______________________________________________________________________________
;
; Change Log:
;
;_______________________________________________________________________________
;
; ToDo:
;
;_______________________________________________________________________________
;
;===============================================================================
; Definitions
;===============================================================================
;
;
;===============================================================================
; Code Section
;===============================================================================
;
;
.org $100
ret
.end

1
Source/Apps/Dev/dev.txt

@ -0,0 +1 @@
THE DEV DIRECTORY IS A SKELETON DIRECTORY TO AID SETTING UP A BUILD PROCESS FOR A NEW PROGRAM

2
Source/Apps/Makefile

@ -1,7 +1,7 @@
OBJECTS = sysgen.com survey.com \ OBJECTS = sysgen.com survey.com \
syscopy.com assign.com format.com talk.com mode.com rtc.com \ syscopy.com assign.com format.com talk.com mode.com rtc.com \
timer.com rtchb.com timer.com rtchb.com
SUBDIRS = XM FDU FAT Tune Test ZMP ZMD
SUBDIRS = XM FDU FAT Tune Test ZMP ZMD Dev
DEST = ../../Binary/Apps DEST = ../../Binary/Apps
TOOLS =../../Tools TOOLS =../../Tools

2
Source/HBIOS/Config/MBC_std.asm

@ -34,4 +34,4 @@ FDENABLE .SET TRUE ; FD: ENABLE FLOPPY DISK DRIVER (FD.ASM)
PPIDEENABLE .SET TRUE ; PPIDE: ENABLE PARALLEL PORT IDE DISK DRIVER (PPIDE.ASM) PPIDEENABLE .SET TRUE ; PPIDE: ENABLE PARALLEL PORT IDE DISK DRIVER (PPIDE.ASM)
; ;
DSKYENABLE .SET FALSE ; ENABLES DSKY DSKYENABLE .SET FALSE ; ENABLES DSKY
DSKYMODE .SET DSKYMODE_NG ; DSKY VERTSION: DSKYMODE_[V1|NG]
DSKYMODE .SET DSKYMODE_NG ; DSKY VERSION: DSKYMODE_[V1|NG]

2
Source/HBIOS/cfg_dyno.asm

@ -23,6 +23,8 @@ TICKFREQ .EQU 50 ; DESIRED PERIODIC TIMER INTERRUPT FREQUENCY (HZ)
; ;
BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE
; ;
CPUSPDCAP .EQU SPD_FIXED ; CPU SPEED CHANGE CAPABILITY SPD_FIXED|SPD_HILO
CPUSPDDEF .EQU SPD_HIGH ; CPU SPEED DEFAULT SPD_UNSUP|SPD_HIGH|SPD_LOW
CPUOSC .EQU 18432000 ; CPU OSC FREQ IN MHZ CPUOSC .EQU 18432000 ; CPU OSC FREQ IN MHZ
INTMODE .EQU 2 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280) INTMODE .EQU 2 ; 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) DEFSERCFG .EQU SER_38400_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM)

2
Source/HBIOS/cfg_ezz80.asm

@ -23,6 +23,8 @@ TICKFREQ .EQU 50 ; DESIRED PERIODIC TIMER INTERRUPT FREQUENCY (HZ)
; ;
BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE
; ;
CPUSPDCAP .EQU SPD_FIXED ; CPU SPEED CHANGE CAPABILITY SPD_FIXED|SPD_HILO
CPUSPDDEF .EQU SPD_HIGH ; CPU SPEED DEFAULT SPD_UNSUP|SPD_HIGH|SPD_LOW
CPUOSC .EQU 10000000 ; CPU OSC FREQ IN MHZ CPUOSC .EQU 10000000 ; CPU OSC FREQ IN MHZ
INTMODE .EQU 2 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280) INTMODE .EQU 2 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280)
DEFSERCFG .EQU SER_115200_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM) DEFSERCFG .EQU SER_115200_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM)

2
Source/HBIOS/cfg_master.asm

@ -20,6 +20,8 @@ TICKFREQ .EQU 50 ; DESIRED PERIODIC TIMER INTERRUPT FREQUENCY (HZ)
; ;
BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE
; ;
CPUSPDCAP .EQU SPD_FIXED ; CPU SPEED CHANGE CAPABILITY SPD_FIXED|SPD_HILO
CPUSPDDEF .EQU SPD_HIGH ; CPU SPEED DEFAULT SPD_UNSUP|SPD_HIGH|SPD_LOW
CPUOSC .EQU 8000000 ; CPU OSC FREQ IN MHZ CPUOSC .EQU 8000000 ; CPU OSC FREQ IN MHZ
INTMODE .EQU 0 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280) 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) DEFSERCFG .EQU SER_38400_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM)

2
Source/HBIOS/cfg_mbc.asm

@ -23,6 +23,8 @@ TICKFREQ .EQU 50 ; DESIRED PERIODIC TIMER INTERRUPT FREQUENCY (HZ)
; ;
BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE
; ;
CPUSPDCAP .EQU SPD_FIXED ; CPU SPEED CHANGE CAPABILITY SPD_FIXED|SPD_HILO
CPUSPDDEF .EQU SPD_HIGH ; CPU SPEED DEFAULT SPD_UNSUP|SPD_HIGH|SPD_LOW
CPUOSC .EQU 8000000 ; CPU OSC FREQ IN MHZ CPUOSC .EQU 8000000 ; CPU OSC FREQ IN MHZ
INTMODE .EQU 0 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280) 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) DEFSERCFG .EQU SER_38400_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM)

2
Source/HBIOS/cfg_mk4.asm

@ -23,6 +23,8 @@ TICKFREQ .EQU 50 ; DESIRED PERIODIC TIMER INTERRUPT FREQUENCY (HZ)
; ;
BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE
; ;
CPUSPDCAP .EQU SPD_FIXED ; CPU SPEED CHANGE CAPABILITY SPD_FIXED|SPD_HILO
CPUSPDDEF .EQU SPD_HIGH ; CPU SPEED DEFAULT SPD_UNSUP|SPD_HIGH|SPD_LOW
CPUOSC .EQU 18432000 ; CPU OSC FREQ IN MHZ CPUOSC .EQU 18432000 ; CPU OSC FREQ IN MHZ
INTMODE .EQU 2 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280) INTMODE .EQU 2 ; 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) DEFSERCFG .EQU SER_38400_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM)

2
Source/HBIOS/cfg_n8.asm

@ -23,6 +23,8 @@ TICKFREQ .EQU 50 ; DESIRED PERIODIC TIMER INTERRUPT FREQUENCY (HZ)
; ;
BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE
; ;
CPUSPDCAP .EQU SPD_FIXED ; CPU SPEED CHANGE CAPABILITY SPD_FIXED|SPD_HILO
CPUSPDDEF .EQU SPD_HIGH ; CPU SPEED DEFAULT SPD_UNSUP|SPD_HIGH|SPD_LOW
CPUOSC .EQU 18432000 ; CPU OSC FREQ IN MHZ CPUOSC .EQU 18432000 ; CPU OSC FREQ IN MHZ
INTMODE .EQU 2 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280) INTMODE .EQU 2 ; 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) DEFSERCFG .EQU SER_38400_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM)

2
Source/HBIOS/cfg_rcz180.asm

@ -23,6 +23,8 @@ TICKFREQ .EQU 50 ; DESIRED PERIODIC TIMER INTERRUPT FREQUENCY (HZ)
; ;
BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE
; ;
CPUSPDCAP .EQU SPD_FIXED ; CPU SPEED CHANGE CAPABILITY SPD_FIXED|SPD_HILO
CPUSPDDEF .EQU SPD_HIGH ; CPU SPEED DEFAULT SPD_UNSUP|SPD_HIGH|SPD_LOW
CPUOSC .EQU 18432000 ; CPU OSC FREQ IN MHZ CPUOSC .EQU 18432000 ; CPU OSC FREQ IN MHZ
INTMODE .EQU 2 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280) INTMODE .EQU 2 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280)
DEFSERCFG .EQU SER_115200_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM) DEFSERCFG .EQU SER_115200_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM)

2
Source/HBIOS/cfg_rcz280.asm

@ -23,6 +23,8 @@ TICKFREQ .EQU 50 ; DESIRED PERIODIC TIMER INTERRUPT FREQUENCY (HZ)
; ;
BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE
; ;
CPUSPDCAP .EQU SPD_FIXED ; CPU SPEED CHANGE CAPABILITY SPD_FIXED|SPD_HILO
CPUSPDDEF .EQU SPD_HIGH ; CPU SPEED DEFAULT SPD_UNSUP|SPD_HIGH|SPD_LOW
CPUOSC .EQU 24000000 ; CPU OSC FREQ IN MHZ CPUOSC .EQU 24000000 ; CPU OSC FREQ IN MHZ
INTMODE .EQU 0 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280) INTMODE .EQU 0 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280)
DEFSERCFG .EQU SER_115200_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM) DEFSERCFG .EQU SER_115200_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM)

2
Source/HBIOS/cfg_rcz80.asm

@ -23,6 +23,8 @@ TICKFREQ .EQU 50 ; DESIRED PERIODIC TIMER INTERRUPT FREQUENCY (HZ)
; ;
BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE
; ;
CPUSPDCAP .EQU SPD_FIXED ; CPU SPEED CHANGE CAPABILITY SPD_FIXED|SPD_HILO
CPUSPDDEF .EQU SPD_HIGH ; CPU SPEED DEFAULT SPD_UNSUP|SPD_HIGH|SPD_LOW
CPUOSC .EQU 7372800 ; CPU OSC FREQ IN MHZ CPUOSC .EQU 7372800 ; CPU OSC FREQ IN MHZ
INTMODE .EQU 1 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280) INTMODE .EQU 1 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280)
DEFSERCFG .EQU SER_115200_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM) DEFSERCFG .EQU SER_115200_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM)

2
Source/HBIOS/cfg_sbc.asm

@ -23,6 +23,8 @@ TICKFREQ .EQU 50 ; DESIRED PERIODIC TIMER INTERRUPT FREQUENCY (HZ)
; ;
BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE
; ;
CPUSPDCAP .EQU SPD_FIXED ; CPU SPEED CHANGE CAPABILITY SPD_FIXED|SPD_HILO
CPUSPDDEF .EQU SPD_HIGH ; CPU SPEED DEFAULT SPD_UNSUP|SPD_HIGH|SPD_LOW
CPUOSC .EQU 8000000 ; CPU OSC FREQ IN MHZ CPUOSC .EQU 8000000 ; CPU OSC FREQ IN MHZ
INTMODE .EQU 0 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280) 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) DEFSERCFG .EQU SER_38400_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM)

2
Source/HBIOS/cfg_scz180.asm

@ -23,6 +23,8 @@ TICKFREQ .EQU 50 ; DESIRED PERIODIC TIMER INTERRUPT FREQUENCY (HZ)
; ;
BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE
; ;
CPUSPDCAP .EQU SPD_FIXED ; CPU SPEED CHANGE CAPABILITY SPD_FIXED|SPD_HILO
CPUSPDDEF .EQU SPD_HIGH ; CPU SPEED DEFAULT SPD_UNSUP|SPD_HIGH|SPD_LOW
CPUOSC .EQU 18432000 ; CPU OSC FREQ IN MHZ CPUOSC .EQU 18432000 ; CPU OSC FREQ IN MHZ
INTMODE .EQU 2 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280) INTMODE .EQU 2 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280)
DEFSERCFG .EQU SER_115200_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM) DEFSERCFG .EQU SER_115200_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM)

2
Source/HBIOS/cfg_una.asm

@ -18,6 +18,8 @@ BIOS .EQU BIOS_UNA ; HARDWARE BIOS: BIOS_[WBW|UNA]
; ;
BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE
; ;
CPUSPDCAP .EQU SPD_FIXED ; CPU SPEED CHANGE CAPABILITY SPD_FIXED|SPD_HILO
CPUSPDDEF .EQU SPD_HIGH ; CPU SPEED DEFAULT SPD_UNSUP|SPD_HIGH|SPD_LOW
CPUOSC .EQU 18432000 ; CPU OSC FREQ IN MHZ CPUOSC .EQU 18432000 ; CPU OSC FREQ IN MHZ
INTMODE .EQU 0 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280) INTMODE .EQU 0 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280)
; ;

2
Source/HBIOS/cfg_zeta.asm

@ -23,6 +23,8 @@ TICKFREQ .EQU 50 ; DESIRED PERIODIC TIMER INTERRUPT FREQUENCY (HZ)
; ;
BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE
; ;
CPUSPDCAP .EQU SPD_FIXED ; CPU SPEED CHANGE CAPABILITY SPD_FIXED|SPD_HILO
CPUSPDDEF .EQU SPD_HIGH ; CPU SPEED DEFAULT SPD_UNSUP|SPD_HIGH|SPD_LOW
CPUOSC .EQU 20000000 ; CPU OSC FREQ IN MHZ CPUOSC .EQU 20000000 ; CPU OSC FREQ IN MHZ
INTMODE .EQU 0 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280) 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) DEFSERCFG .EQU SER_38400_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM)

2
Source/HBIOS/cfg_zeta2.asm

@ -23,6 +23,8 @@ TICKFREQ .EQU 50 ; DESIRED PERIODIC TIMER INTERRUPT FREQUENCY (HZ)
; ;
BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE
; ;
CPUSPDCAP .EQU SPD_FIXED ; CPU SPEED CHANGE CAPABILITY SPD_FIXED|SPD_HILO
CPUSPDDEF .EQU SPD_HIGH ; CPU SPEED DEFAULT SPD_UNSUP|SPD_HIGH|SPD_LOW
CPUOSC .EQU 20000000 ; CPU OSC FREQ IN MHZ CPUOSC .EQU 20000000 ; CPU OSC FREQ IN MHZ
INTMODE .EQU 2 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280) INTMODE .EQU 2 ; 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) DEFSERCFG .EQU SER_38400_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM)

95
Source/HBIOS/dma.asm

@ -25,15 +25,32 @@ DMA_RESET .equ $c3
DMA_FBACK .equ TRUE ; ALLOW FALLBACK TO SOFTWARE DMA_FBACK .equ TRUE ; ALLOW FALLBACK TO SOFTWARE
DMA_USEHS .equ TRUE ; USE CLOCK DIVIDER DMA_USEHS .equ TRUE ; USE CLOCK DIVIDER
; ;
#IF (DMAMODE=DMAMODE_MBC)
DMA_RDY .EQU %00000000
DMA_FORCE .EQU 1
;DMA_USEHS .SET FALSE
#ENDIF
#IF (DMAMODE=DMAMODE_ECB)
DMA_RDY .EQU %00001000 DMA_RDY .EQU %00001000
DMA_FORCE .EQU 0 DMA_FORCE .EQU 0
DMA_USEHS .SET TRUE
#IF (DMA_USEHS & (DMAMODE=DMAMODE_MBC))
#IF (CPUSPDDEF=SPD_HIGH)
#DEFINE DMAIOSLO LD A,(HB_RTCVAL) \ AND %11110111 \ OUT (RTCIO),A
#DEFINE DMAIONOR PUSH AF \ LD A,(HB_RTCVAL) \ OR %00001000 \ OUT (RTCIO),A \ POP AF
#ELSE
#DEFINE DMAIOSLO \;
#DEFINE DMAIONOR \;
#ENDIF
#ENDIF
;
#IF (DMA_USEHS & (DMAMODE=DMAMODE_ECB))
#IF (CPUSPDDEF=SPD_HIGH)
#DEFINE DMAIOSLO LD A,(HB_RTCVAL) \ OR %00001000 \ OUT (RTCIO),A
#DEFINE DMAIONOR PUSH AF \ LD A,(HB_RTCVAL) \ AND %11110111 \ OUT (RTCIO),A \ POP AF
#ELSE
#DEFINE DMAIOSLO \;
#DEFINE DMAIONOR \;
#ENDIF
#ENDIF
#IF (!DMA_USEHS)
#DEFINE DMAIOSLO \;
#DEFINE DMAIONOR \;
#ENDIF #ENDIF
; ;
;================================================================================================== ;==================================================================================================
@ -49,11 +66,7 @@ DMA_INIT:
LD A,DMA_FORCE LD A,DMA_FORCE
out (DMABASE+1),a ; force ready off out (DMABASE+1),a ; force ready off
; ;
#IF (DMA_USEHS)
ld a,(HB_RTCVAL)
or %00001000 ; half
out (RTCIO),a ; clock
#ENDIF
DMAIOSLO
; ;
call DMAProbe ; do we have a dma? call DMAProbe ; do we have a dma?
jr nz,DMA_NOTFOUND jr nz,DMA_NOTFOUND
@ -68,13 +81,8 @@ DMA_INIT:
xor a ; set status xor a ; set status
; ;
DMA_EXIT: DMA_EXIT:
#IF (DMA_USEHS)
push af
ld a,(HB_RTCVAL)
and %11110111 ; full
out (RTCIO),a ; clock
pop af
#ENDIF
DMAIONOR
ret ret
; ;
DMA_NOTFOUND: DMA_NOTFOUND:
@ -163,11 +171,8 @@ DMALDIR:
ld b,DMACopy_Len ; dma command ld b,DMACopy_Len ; dma command
ld c,DMABASE ; block ld c,DMABASE ; block
; ;
#IF (DMA_USEHS)
ld a,(HB_RTCVAL)
or %00001000 ; half
out (RTCIO),a ; clock
#ENDIF
DMAIOSLO
;
di di
otir ; load and execute dma otir ; load and execute dma
ei ei
@ -177,13 +182,9 @@ DMALDIR:
in a,(DMABASE) ; set non-zero in a,(DMABASE) ; set non-zero
and %00111011 ; if failed and %00111011 ; if failed
sub %00011011 sub %00011011
#IF (DMA_USEHS)
push af
ld a,(HB_RTCVAL)
and %11110111 ; full
out (RTCIO),a ; clock
pop af
#ENDIF
DMAIONOR
ret ret
; ;
DMACopy ;.db DMA_DISABLE ; R6-Command Disable DMA DMACopy ;.db DMA_DISABLE ; R6-Command Disable DMA
@ -216,11 +217,8 @@ DMAOTIR:
ld b,DMAOut_Len ; dma command ld b,DMAOut_Len ; dma command
ld c,DMABASE ; block ld c,DMABASE ; block
; ;
#IF (DMA_USEHS)
ld a,(HB_RTCVAL)
or %00001000 ; half
out (RTCIO),a ; clock
#ENDIF
DMAIOSLO
di di
otir ; load and execute dma otir ; load and execute dma
ei ei
@ -231,13 +229,8 @@ DMAOTIR:
and %00111011 ; if failed and %00111011 ; if failed
sub %00011011 sub %00011011
; ;
#IF (DMA_USEHS)
push af
ld a,(HB_RTCVAL)
and %11110111 ; full
out (RTCIO),a ; clock
pop af
#ENDIF
DMAIONOR
ret ret
; ;
DMAOutCode ;.db DMA_DISABLE ; R6-Command Disable DMA DMAOutCode ;.db DMA_DISABLE ; R6-Command Disable DMA
@ -275,11 +268,8 @@ DMAINIR:
ld b,DMAIn_Len ; dma command ld b,DMAIn_Len ; dma command
ld c,DMABASE ; block ld c,DMABASE ; block
; ;
#IF (DMA_USEHS)
ld a,(HB_RTCVAL)
or %00001000 ; half
out (RTCIO),a ; clock
#ENDIF
DMAIOSLO
;
di di
otir ; load and execute dma otir ; load and execute dma
ei ei
@ -290,13 +280,8 @@ DMAINIR:
and %00111011 ; if failed and %00111011 ; if failed
sub %00011011 sub %00011011
; ;
#IF (DMA_USEHS)
push af
ld a,(HB_RTCVAL)
and %11110111 ; full
out (RTCIO),a ; clock
pop af
#ENDIF
DMAIONOR
;
ret ret
; ;
DMAInCode ;.db DMA_DISABLE ; R6-Command Disable DMA DMAInCode ;.db DMA_DISABLE ; R6-Command Disable DMA

32
Source/HBIOS/hbios.asm

@ -187,6 +187,22 @@ RTCDEF .EQU 0 ; ALLOWS DRIVERS TO SET BITS
RTCDEF .SET RTCDEF | %00000001 ; SC128 I2C SCL BIT RTCDEF .SET RTCDEF | %00000001 ; SC128 I2C SCL BIT
#ENDIF #ENDIF
; ;
#IF (!(CPUSPDCAP==SPD_FIXED) & (PLATFORM==PLT_MBC))
#IF (CPUSPDDEF==SPD_HIGH)
RTCDEF .SET RTCDEF | %00001000 ; DEFAULT SPEED HIGH
#ELSE
RTCDEF .SET RTCDEF | %00000000 ; DEFAULT SPEED LOW
#ENDIF
#ENDIF
;
#IF (!(CPUSPDCAP==SPD_FIXED) & (PLATFORM==PLT_SBC))
#IF (CPUSPDDEF==SPD_HIGH)
RTCDEF .SET RTCDEF | %00000000 ; DEFAULT SPEED HIGH
#ELSE
RTCDEF .SET RTCDEF | %00001000 ; DEFAULT SPEED LOW
#ENDIF
#ENDIF
;
; ;
; ;
#IFNDEF APPBOOT #IFNDEF APPBOOT
@ -1068,6 +1084,11 @@ Z280_BOOTERR .TEXT "\r\n\r\n*** Application mode boot not supported under Z280 n
; ;
DI ; NO INTERRUPTS DI ; NO INTERRUPTS
IM 1 ; INTERRUPT MODE 1 IM 1 ; INTERRUPT MODE 1
#IF ((PLATFORM=PLT_MBC) | (PLATFORM=PLT_SBC))
LD A,(HB_RTCVAL) ; SET DEFAULT
OUT (RTCIO),A ; SPEED
#ENDIF
; ;
#IF (DIAGENABLE) #IF (DIAGENABLE)
LD A,%00000001 LD A,%00000001
@ -1078,7 +1099,8 @@ Z280_BOOTERR .TEXT "\r\n\r\n*** Application mode boot not supported under Z280 n
XOR A ; LED IS INVERTED, TURN IT ON XOR A ; LED IS INVERTED, TURN IT ON
#ENDIF #ENDIF
#IF (LEDMODE == LEDMODE_RTC) #IF (LEDMODE == LEDMODE_RTC)
LD A,%00000001 ; LED 0
LD A,(HB_RTCVAL)
OR %00000001 ; LED 0
LD (HB_RTCVAL),A ; SAVE TO SHADOW REGISTER LD (HB_RTCVAL),A ; SAVE TO SHADOW REGISTER
#ENDIF #ENDIF
OUT (LEDPORT),A OUT (LEDPORT),A
@ -2327,14 +2349,6 @@ HB_WDZ:
PRTX(STR_BANNER) PRTX(STR_BANNER)
#ENDIF #ENDIF
; ;
; EXPERIMENTAL!!!
; ENGAGE TURBO...
;
; LD A,(HB_RTCVAL)
; SET 3,A
; OUT (RTCIO),A
; LD (HB_RTCVAL),A
;
INITSYS3: INITSYS3:
CALL PRTSUM ; PRINT UNIT/DEVICE SUMMARY TABLE CALL PRTSUM ; PRINT UNIT/DEVICE SUMMARY TABLE
; ;

2
Source/HBIOS/hbios.inc

@ -190,7 +190,7 @@ RTCDEV_DS .EQU $00 ; DS1302
RTCDEV_BQ .EQU $10 ; BQ4845P RTCDEV_BQ .EQU $10 ; BQ4845P
RTCDEV_SIMH .EQU $20 ; SIMH RTCDEV_SIMH .EQU $20 ; SIMH
RTCDEV_INT .EQU $30 ; PERIODIC INT TIMER RTCDEV_INT .EQU $30 ; PERIODIC INT TIMER
RTCDEV_DS7 .EQU $40 ; DS1302 (I2C)
RTCDEV_DS7 .EQU $40 ; DS1307 (I2C)
RTCDEV_RP5 .EQU $50 ; RP5C01 RTCDEV_RP5 .EQU $50 ; RP5C01
; ;
; VIDEO DEVICE IDS ; VIDEO DEVICE IDS

2
Source/HBIOS/sn76489.asm

@ -93,7 +93,7 @@ SN7_VOLUME_OFF:
#IFDEF SBCV2004 #IFDEF SBCV2004
LD A,(HB_RTCVAL) LD A,(HB_RTCVAL)
OR %11110111 ; SBC-V2-004+ CHANGE TO
AND %11110111 ; SBC-V2-004+ CHANGE TO
OUT (RTCIO),A ; NORMAL CLOCK SPEED OUT (RTCIO),A ; NORMAL CLOCK SPEED
#ENDIF #ENDIF

11
Source/HBIOS/std.asm

@ -384,6 +384,17 @@ WDOG_NONE .EQU 0 ; NONE
WDOG_EZZ80 .EQU 1 ; EASY Z80 WATCHDOG WDOG_EZZ80 .EQU 1 ; EASY Z80 WATCHDOG
WDOG_SKZ .EQU 2 ; SK Z80 CPU W/ 512K WDOG_SKZ .EQU 2 ; SK Z80 CPU W/ 512K
; ;
; SYSTEM SPEED CAPABILITIES
;
SPD_FIXED .EQU 0 ; PLATFORM SPEED FIXED AND CANNOT CHANGE SPEEDS
SPD_HILO .EQU 1 ; PLATFORM CAN CHANGE BETWEEN TWO SPEEDS
;
; SYSTEM SPEED CHARACTERISTICS
;
SPD_UNSUP .EQU 0 ; PLATFORM CAN CHANGE SPEEDS BUT IS UNSUPPORTED
SPD_HIGH .EQU 1 ; PLATFORM CAN CHANGE SPEED, STARTS HIGH
SPD_LOW .EQU 2 ; PLATFORM CAN CHANGE SPEED, STARTS LOW
;
#INCLUDE "build.inc" ; INCLUDE USER CONFIG, ADD VARIANT, TIMESTAMP, & ROMSIZE #INCLUDE "build.inc" ; INCLUDE USER CONFIG, ADD VARIANT, TIMESTAMP, & ROMSIZE
; ;
#IF (BIOS == BIOS_WBW) #IF (BIOS == BIOS_WBW)

4
Source/HBIOS/uart.asm

@ -81,7 +81,7 @@ UART_PREINIT:
; INIT UART4 BOARD CONFIG REGISTER (NO HARM IF IT IS NOT THERE) ; INIT UART4 BOARD CONFIG REGISTER (NO HARM IF IT IS NOT THERE)
; ;
LD A,$80 ; SELECT 7.3728MHZ OSC & LOCK CONFIG REGISTER LD A,$80 ; SELECT 7.3728MHZ OSC & LOCK CONFIG REGISTER
OUT ($CF),A ; DO IT
OUT (UART4BASE+$0F),A ; DO IT
; ;
; SETUP THE DISPATCH TABLE ENTRIES ; SETUP THE DISPATCH TABLE ENTRIES
; ;
@ -518,7 +518,7 @@ UART_INITDEV1:
; FOR 750+, WE ENABLE THE 64-BYTE FIFO ; FOR 750+, WE ENABLE THE 64-BYTE FIFO
; DLAB MUST STILL BE ON FOR ACCESS TO BIT 5 ; DLAB MUST STILL BE ON FOR ACCESS TO BIT 5
; WE DO *NOT* ENABLE ANY OTHER FCR BITS HERE ; WE DO *NOT* ENABLE ANY OTHER FCR BITS HERE
; BEACAUSE IT WILL SCREW UP THE 2552!!!
; BECAUSE IT WILL SCREW UP THE 2552!!!
LD A,%00100000 LD A,%00100000
UART_OUTP(UART_FCR) ; DO IT UART_OUTP(UART_FCR) ; DO IT
; ;

2
Source/HBIOS/updater.asm

@ -1467,7 +1467,7 @@ BAUDTBL:.DB "75$" ; 0 0
;====================================================================== ;======================================================================
; ;
CLKTBL: .DB 6 ; 1 4800 CLKTBL: .DB 6 ; 1 4800
.DB 7 ; 2 9600
.DB 6 ; 2 4800
.DB 7 ; 3 9600 .DB 7 ; 3 9600
.DB 8 ; 4 19200 .DB 8 ; 4 19200
.DB 8 ; 5 19200 .DB 8 ; 5 19200

4
Source/HBIOS/usrrom.asm

@ -44,7 +44,7 @@ COUT: PUSH AF
PUSH DE PUSH DE
PUSH HL PUSH HL
LD B,01H LD B,01H
LD C,0
LD C,80H
LD E,A LD E,A
RST 08 RST 08
POP HL POP HL
@ -59,7 +59,7 @@ CIN: PUSH BC
PUSH DE PUSH DE
PUSH HL PUSH HL
LD B,00H LD B,00H
LD C,00H
LD C,80H
RST 08 RST 08
LD A,E LD A,E
POP HL POP HL

Loading…
Cancel
Save