From be1fb0836ffb4e37c4653bfd96e564ef71ddbfd9 Mon Sep 17 00:00:00 2001 From: b1ackmai1er Date: Thu, 21 Oct 2021 23:14:35 +0800 Subject: [PATCH 1/5] dma updates --- {Source/HBIOS => Doc/Contrib}/PPI_Bus.txt | 0 Source/Apps/Test/DMAmon/std.asm | 56 +++++++++++++++-------- Source/Apps/Test/DMAmon/ver.inc | 4 +- Source/HBIOS/dma.asm | 3 ++ Source/HBIOS/md.asm | 4 +- Source/HBIOS/rf.asm | 4 +- 6 files changed, 46 insertions(+), 25 deletions(-) rename {Source/HBIOS => Doc/Contrib}/PPI_Bus.txt (100%) diff --git a/Source/HBIOS/PPI_Bus.txt b/Doc/Contrib/PPI_Bus.txt similarity index 100% rename from Source/HBIOS/PPI_Bus.txt rename to Doc/Contrib/PPI_Bus.txt diff --git a/Source/Apps/Test/DMAmon/std.asm b/Source/Apps/Test/DMAmon/std.asm index 95e5283e..3c25f7bb 100644 --- a/Source/Apps/Test/DMAmon/std.asm +++ b/Source/Apps/Test/DMAmon/std.asm @@ -384,6 +384,17 @@ WDOG_NONE .EQU 0 ; NONE WDOG_EZZ80 .EQU 1 ; EASY Z80 WATCHDOG 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 ; #IF (BIOS == BIOS_WBW) @@ -488,33 +499,40 @@ SYSTIM .SET TM_Z280 ; ; MEMORY BANK CONFIGURATION ; +WBW_ROM_R .EQU 128 ; 128K ; RESERVED ROM REQUIRED FOR ROMWBW +WBW_RAM_R .EQU 256 ; 256K ; RESERVED RAM REQUIRED FOR ROMWBW +TOT_ROM_RB .EQU (PLT_ROM_R + WBW_ROM_R)/32 ; TOTAL ROM BANKS RESERVED +TOT_RAM_RB .EQU (PLT_RAM_R + WBW_RAM_R)/32 ; TOTAL RAM BANKS RESERVED +; #IF (BIOS == BIOS_UNA) -BID_ROM0 .EQU $0000 + (ROM_RESERVE / 32) -BID_RAM0 .EQU $8000 + (RAM_RESERVE / 32) +BID_ROM0 .EQU $0000 + (PLT_ROM_R / 32) +BID_RAM0 .EQU $8000 + (PLT_RAM_R / 32) #ENDIF ; #IF (BIOS == BIOS_WBW) -BID_ROM0 .EQU $00 + (ROM_RESERVE / 32) -BID_RAM0 .EQU $80 + (RAM_RESERVE / 32) +BID_ROM0 .EQU $00 + (PLT_ROM_R / 32) +BID_RAM0 .EQU $80 + (PLT_RAM_R / 32) #ENDIF BID_ROMN .EQU (BID_ROM0 + ((ROMSIZE / 32) - 1)) BID_RAMN .EQU (BID_RAM0 + ((RAMSIZE / 32) - 1)) - -BID_BOOT .EQU BID_ROM0 ; BOOT BANK -BID_IMG0 .EQU BID_ROM0 + 1 ; ROM LOADER AND FIRST IMAGES BANK -BID_IMG1 .EQU BID_ROM0 + 2 ; SECOND IMAGES BANK -;BID_FSFAT .EQU BID_ROM0 + 3 ; FAT FILESYSTEM DRIVER BANK -BID_IMG2 .EQU BID_ROM0 + 3 ; NETWORK BOOT -BID_ROMD0 .EQU BID_ROM0 + 4 ; FIRST ROM DRIVE BANK -BID_ROMDN .EQU BID_ROMN ; LAST ROM DRIVE BANK - -BID_RAMD0 .EQU BID_RAM0 ; FIRST RAM DRIVE BANK -BID_RAMDN .EQU BID_RAMN - 4 ; LAST RAM DRIVE BANK -BID_AUX .EQU BID_RAMN - 3 ; AUX BANK (BPBIOS, ETC.) -BID_BIOS .EQU BID_RAMN - 2 ; BIOS BANK -BID_USR .EQU BID_RAMN - 1 ; USER BANK (CP/M TPA, ETC.) -BID_COM .EQU BID_RAMN ; COMMON BANK, UPPER 32K +; +BID_RAMD0 .EQU BID_RAM0 ; FIRST RAM DRIVE BANK ^ RAM +BID_RAMDN .EQU BID_RAMN - TOT_RAM_RB ; LAST RAM DRIVE BANK | DRIVE +; ; OS BUFFERS CP/M3? -+ THESE +; ; OS BUFFERS CP/M3? | MAKE +; ; OS BUFFERS CP/M3? | UP +; ; OS BUFFERS CP/M3? | THE +BID_AUX .EQU BID_RAMN - 3 ; AUX BANK (BPBIOS, ETC.) | 256KB +BID_BIOS .EQU BID_RAMN - 2 ; BIOS BANK | RESERVED +BID_USR .EQU BID_RAMN - 1 ; USER BANK (CP/M TPA, ETC.) | RAM +BID_COM .EQU BID_RAMN - 0 ; COMMON BANK, UPPER 32K -+ BANKS +BID_BOOT .EQU BID_ROM0 + 0 ; BOOT BANK -+ THESE MAKE +BID_IMG0 .EQU BID_ROM0 + 1 ; ROM LOADER AND FIRST IMAGES BANK | UP THE 128KB +BID_IMG1 .EQU BID_ROM0 + 2 ; SECOND IMAGES BANK | RESERVED +BID_IMG2 .EQU BID_ROM0 + 3 ; NETWORK BOOT -+ ROM BANKS +BID_ROMD0 .EQU BID_ROM0 + 4 ; FIRST ROM DRIVE BANK | ROM +BID_ROMDN .EQU BID_ROMN ; LAST ROM DRIVE BANK V DRIVE ; ; MEMORY LAYOUT ; diff --git a/Source/Apps/Test/DMAmon/ver.inc b/Source/Apps/Test/DMAmon/ver.inc index 8338aafc..202747a4 100644 --- a/Source/Apps/Test/DMAmon/ver.inc +++ b/Source/Apps/Test/DMAmon/ver.inc @@ -1,5 +1,5 @@ #DEFINE RMJ 3 #DEFINE RMN 1 #DEFINE RUP 1 -#DEFINE RTP 03 -#DEFINE BIOSVER "3.1.1-pre.111" +#DEFINE RTP 0 +#DEFINE BIOSVER "3.1.1-pre.128" diff --git a/Source/HBIOS/dma.asm b/Source/HBIOS/dma.asm index a7eaf7d6..52e0bed8 100644 --- a/Source/HBIOS/dma.asm +++ b/Source/HBIOS/dma.asm @@ -165,6 +165,7 @@ DMACode_Len .equ $-DMACode DMALDIR: ld (DMASource),hl ; populate the dma ld (DMADest),de ; register template + dec bc ld (DMALength),bc ; ld hl,DMACopy ; program the @@ -211,6 +212,7 @@ DMACopy_Len .equ $-DMACopy DMAOTIR: ld (DMAOutSource),hl ; populate the dma ld (DMAOutDest),a ; register template + dec bc ld (DMAOutLength),bc ; ld hl,DMAOutCode ; program the @@ -262,6 +264,7 @@ DMAOut_Len .equ $-DMAOutCode DMAINIR: ld (DMAInDest),hl ; populate the dma ld (DMAInSource),a ; register template + dec bc ld (DMAInLength),bc ; ld hl,DMAInCode ; program the diff --git a/Source/HBIOS/md.asm b/Source/HBIOS/md.asm index 10e08d07..6a92d206 100644 --- a/Source/HBIOS/md.asm +++ b/Source/HBIOS/md.asm @@ -382,7 +382,7 @@ MD_SECM: OR A JR NZ,MD_NODMA #ENDIF - LD BC,512-1 ; COPY ONE 512B SECTOR FROM THE + LD BC,512 ; COPY ONE 512B SECTOR FROM THE JP DMALDIR ; 4K SECTOR TO THE DISK BUFFER #ENDIF MD_NODMA: @@ -516,7 +516,7 @@ MD_SECM1: ; DESIRED SECTOR IS IN BUFFER OR A JR NZ,MD_NODMA1 #ENDIF - LD BC,512-1 ; COPY ONE 512B SECTOR FROM THE + LD BC,512 ; COPY ONE 512B SECTOR FROM THE CALL DMALDIR ; THE DISK BUFFER TO 4K SECTOR RET NZ ; EXIT IF DMA COPY ERROR JR MD_NODMAERR diff --git a/Source/HBIOS/rf.asm b/Source/HBIOS/rf.asm index 47d78238..caf54546 100644 --- a/Source/HBIOS/rf.asm +++ b/Source/HBIOS/rf.asm @@ -273,7 +273,7 @@ RF_RDSEC: LD HL,(RF_DSKBUF) ; HL := DISK BUFFER ADDRESS LD A,(RF_IO) ; GET IO PORT BASE #IF (DMAENABLE & (DMAMODE=DMAMODE_ECB)) - LD BC,512-1 ; READ 512 BYTES + LD BC,512 ; READ 512 BYTES CALL DMAINIR ; USING DMA #ELSE OR RF_DAT ; OFFSET TO DAT PORT @@ -293,7 +293,7 @@ RF_WRSEC: LD A,(RF_IO) ; GET IO PORT BASE OR RF_DAT ; OFFSET TO DAT PORT #IF (DMAENABLE & (DMAMODE=DMAMODE_ECB)) - LD BC,512-1 ; WRITE 512 BYTES + LD BC,512 ; WRITE 512 BYTES CALL DMAOTIR ; USING DMA #ELSE LD C,A ; PUT IN C FOR PORT IO From 84edfeee28b74d11cb7978cb588467254a448cb1 Mon Sep 17 00:00:00 2001 From: b1ackmai1er Date: Fri, 22 Oct 2021 19:12:12 +0800 Subject: [PATCH 2/5] Update updater.asm Fixup option 3 --- Source/HBIOS/updater.asm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/HBIOS/updater.asm b/Source/HBIOS/updater.asm index 44191b42..2abceb46 100644 --- a/Source/HBIOS/updater.asm +++ b/Source/HBIOS/updater.asm @@ -256,7 +256,7 @@ MENULP: LD DE,$0000 ; ENSURE WE ARE STARTING CP '2' ; CALCULATE JP Z,OPTION2 ; CRC FLASH #2 ; - CP '2' ; CALCULATE + CP '3' ; CALCULATE JP Z,OPTION3 ; CRC 1024K FLASH ; #IF (XFUDBG) From bf9361b26b0f20e6c5a436f8b38ee7ab060d76f5 Mon Sep 17 00:00:00 2001 From: b1ackmai1er Date: Fri, 22 Oct 2021 21:45:14 +0800 Subject: [PATCH 3/5] Revert --- Source/HBIOS/dma.asm | 3 --- Source/HBIOS/md.asm | 4 ++-- Source/HBIOS/rf.asm | 4 ++-- 3 files changed, 4 insertions(+), 7 deletions(-) diff --git a/Source/HBIOS/dma.asm b/Source/HBIOS/dma.asm index 52e0bed8..a7eaf7d6 100644 --- a/Source/HBIOS/dma.asm +++ b/Source/HBIOS/dma.asm @@ -165,7 +165,6 @@ DMACode_Len .equ $-DMACode DMALDIR: ld (DMASource),hl ; populate the dma ld (DMADest),de ; register template - dec bc ld (DMALength),bc ; ld hl,DMACopy ; program the @@ -212,7 +211,6 @@ DMACopy_Len .equ $-DMACopy DMAOTIR: ld (DMAOutSource),hl ; populate the dma ld (DMAOutDest),a ; register template - dec bc ld (DMAOutLength),bc ; ld hl,DMAOutCode ; program the @@ -264,7 +262,6 @@ DMAOut_Len .equ $-DMAOutCode DMAINIR: ld (DMAInDest),hl ; populate the dma ld (DMAInSource),a ; register template - dec bc ld (DMAInLength),bc ; ld hl,DMAInCode ; program the diff --git a/Source/HBIOS/md.asm b/Source/HBIOS/md.asm index 6a92d206..10e08d07 100644 --- a/Source/HBIOS/md.asm +++ b/Source/HBIOS/md.asm @@ -382,7 +382,7 @@ MD_SECM: OR A JR NZ,MD_NODMA #ENDIF - LD BC,512 ; COPY ONE 512B SECTOR FROM THE + LD BC,512-1 ; COPY ONE 512B SECTOR FROM THE JP DMALDIR ; 4K SECTOR TO THE DISK BUFFER #ENDIF MD_NODMA: @@ -516,7 +516,7 @@ MD_SECM1: ; DESIRED SECTOR IS IN BUFFER OR A JR NZ,MD_NODMA1 #ENDIF - LD BC,512 ; COPY ONE 512B SECTOR FROM THE + LD BC,512-1 ; COPY ONE 512B SECTOR FROM THE CALL DMALDIR ; THE DISK BUFFER TO 4K SECTOR RET NZ ; EXIT IF DMA COPY ERROR JR MD_NODMAERR diff --git a/Source/HBIOS/rf.asm b/Source/HBIOS/rf.asm index caf54546..47d78238 100644 --- a/Source/HBIOS/rf.asm +++ b/Source/HBIOS/rf.asm @@ -273,7 +273,7 @@ RF_RDSEC: LD HL,(RF_DSKBUF) ; HL := DISK BUFFER ADDRESS LD A,(RF_IO) ; GET IO PORT BASE #IF (DMAENABLE & (DMAMODE=DMAMODE_ECB)) - LD BC,512 ; READ 512 BYTES + LD BC,512-1 ; READ 512 BYTES CALL DMAINIR ; USING DMA #ELSE OR RF_DAT ; OFFSET TO DAT PORT @@ -293,7 +293,7 @@ RF_WRSEC: LD A,(RF_IO) ; GET IO PORT BASE OR RF_DAT ; OFFSET TO DAT PORT #IF (DMAENABLE & (DMAMODE=DMAMODE_ECB)) - LD BC,512 ; WRITE 512 BYTES + LD BC,512-1 ; WRITE 512 BYTES CALL DMAOTIR ; USING DMA #ELSE LD C,A ; PUT IN C FOR PORT IO From 0480bf19cf8d939604f16f1762ccb458c3c2a77f Mon Sep 17 00:00:00 2001 From: b1ackmai1er Date: Fri, 22 Oct 2021 22:40:42 +0800 Subject: [PATCH 4/5] dmamon cleanup --- Source/Apps/Test/DMAmon/MBC_std.asm | 41 -- Source/Apps/Test/DMAmon/build.inc | 8 - Source/Apps/Test/DMAmon/cfg_mbc.asm | 235 ---------- Source/Apps/Test/DMAmon/dmamon.asm | 250 ++++++---- Source/Apps/Test/DMAmon/dmamon.bat | 2 - Source/Apps/Test/DMAmon/hbios.inc | 267 ----------- Source/Apps/Test/DMAmon/std.asm | 693 ---------------------------- Source/Apps/Test/DMAmon/ver.inc | 5 - Source/HBIOS/ROM Layout.txt | 2 +- 9 files changed, 164 insertions(+), 1339 deletions(-) delete mode 100644 Source/Apps/Test/DMAmon/MBC_std.asm delete mode 100644 Source/Apps/Test/DMAmon/build.inc delete mode 100644 Source/Apps/Test/DMAmon/cfg_mbc.asm delete mode 100644 Source/Apps/Test/DMAmon/dmamon.bat delete mode 100644 Source/Apps/Test/DMAmon/hbios.inc delete mode 100644 Source/Apps/Test/DMAmon/std.asm delete mode 100644 Source/Apps/Test/DMAmon/ver.inc diff --git a/Source/Apps/Test/DMAmon/MBC_std.asm b/Source/Apps/Test/DMAmon/MBC_std.asm deleted file mode 100644 index 2d3a6be2..00000000 --- a/Source/Apps/Test/DMAmon/MBC_std.asm +++ /dev/null @@ -1,41 +0,0 @@ -; -;================================================================================================== -; MBC CONFIGURATION -;================================================================================================== -; -; THE COMPLETE SET OF DEFAULT CONFIGURATION SETTINGS FOR THIS PLATFORM ARE FOUND IN THE -; CFG_.ASM INCLUDED FILE WHICH IS FOUND IN THE PARENT DIRECTORY. THIS FILE CONTAINS -; COMMON CONFIGURATION SETTINGS THAT OVERRIDE THE DEFAULTS. IT IS INTENDED THAT YOU MAKE -; YOUR CUSTOMIZATIONS IN THIS FILE AND JUST INHERIT ALL OTHER SETTINGS FROM THE DEFAULTS. -; EVEN BETTER, YOU CAN MAKE A COPY OF THIS FILE WITH A NAME LIKE _XXX.ASM AND SPECIFY -; YOUR FILE IN THE BUILD PROCESS. -; -; THE SETTINGS BELOW ARE THE SETTINGS THAT ARE MOST COMMONLY MODIFIED FOR THIS PLATFORM. -; MANY OF THEM ARE EQUAL TO THE SETTINGS IN THE INCLUDED FILE, SO THEY DON'T REALLY DO -; ANYTHING AS IS. THEY ARE LISTED HERE TO MAKE IT EASY FOR YOU TO ADJUST THE MOST COMMON -; SETTINGS. -; -; N.B., SINCE THE SETTINGS BELOW ARE REDEFINING VALUES ALREADY SET IN THE INCLUDED FILE, -; TASM INSISTS THAT YOU USE THE .SET OPERATOR AND NOT THE .EQU OPERATOR BELOW. ATTEMPTING -; TO REDEFINE A VALUE WITH .EQU BELOW WILL CAUSE TASM ERRORS! -; -; PLEASE REFER TO THE CUSTOM BUILD INSTRUCTIONS (README.TXT) IN THE SOURCE DIRECTORY (TWO -; DIRECTORIES ABOVE THIS ONE). -; -#DEFINE PLATFORM_NAME "Multi Board Computer" -#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON OR AUTO BOOT -; -#include "cfg_mbc.asm" -; -BATCOND .SET FALSE -; -FDENABLE .SET TRUE ; FD: ENABLE FLOPPY DISK DRIVER (FD.ASM) -; -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] -; -DMAENABLE .SET TRUE ; DMA: ENABLE DMA DRIVER (DMA.ASM) -DMABASE .SET $E0 ; DMA: DMA BASE ADDRESS -DMAMODE .SET DMAMODE_MBC ; DMA: DMA MODE (NONE|ECB|Z180|Z280|RC) diff --git a/Source/Apps/Test/DMAmon/build.inc b/Source/Apps/Test/DMAmon/build.inc deleted file mode 100644 index 52a30b62..00000000 --- a/Source/Apps/Test/DMAmon/build.inc +++ /dev/null @@ -1,8 +0,0 @@ -; RomWBW Configured for MBC std, 2021-09-03T14:52:50 -; -#DEFINE TIMESTAMP "2021-09-03" -; -ROMSIZE .EQU 512 -; -#INCLUDE "MBC_std.asm" -; diff --git a/Source/Apps/Test/DMAmon/cfg_mbc.asm b/Source/Apps/Test/DMAmon/cfg_mbc.asm deleted file mode 100644 index c5d10367..00000000 --- a/Source/Apps/Test/DMAmon/cfg_mbc.asm +++ /dev/null @@ -1,235 +0,0 @@ -; -;================================================================================================== -; 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_MBC ; FD: DRIVER MODE: FDMODE_[DIO|ZETA|ZETA2|DIDE|N8|DIO3|RCSMC|RCWDC|DYNO|EPFDC|MBC] -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|MSX|LINC] -; -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) diff --git a/Source/Apps/Test/DMAmon/dmamon.asm b/Source/Apps/Test/DMAmon/dmamon.asm index 604fefe5..7ff33ffc 100644 --- a/Source/Apps/Test/DMAmon/dmamon.asm +++ b/Source/Apps/Test/DMAmon/dmamon.asm @@ -1,9 +1,45 @@ ;================================================================================================== -; Z80 DMA DRIVER +; Z80 DMA TEST UTILITY ;================================================================================================== ; -#INCLUDE "std.asm" +FALSE .EQU 0 +TRUE .EQU ~FALSE ; +; HELPER MACROS +; +#DEFINE PRTC(C) CALL PRTCH \ .DB C ; PRINT CHARACTER C TO CONSOLE - PRTC('X') +#DEFINE PRTS(S) CALL PRTSTRD \ .TEXT S ; PRINT STRING S TO CONSOLE - PRTD("HELLO") +#DEFINE PRTX(X) CALL PRTSTRI \ .DW X ; PRINT STRING AT ADDRESS X TO CONSOLE - PRTI(STR_HELLO) +; +; 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 +; +; DMA MODE SELECTIONS +; +DMAMODE_NONE .EQU 0 +DMAMODE_ECB .EQU 1 ; ECB-DMA WOLFGANG KABATZKE'S Z80 DMA ECB BOARD +DMAMODE_Z180 .EQU 2 ; Z180 INTEGRATED DMA +DMAMODE_Z280 .EQU 3 ; Z280 INTEGRATED DMA +DMAMODE_RC .EQU 4 ; RC2014 Z80 DMA +DMAMODE_MBC .EQU 5 ; MBC +; +DMABASE .EQU $E0 ; DMA: DMA BASE ADDRESS +RTCIO .EQU $70 ; RTC / SPEED PORT +HB_RTCVAL .EQU $FFEE ; HB_RTCVAL +; +CPUSPDCAP .EQU SPD_HILO ; CPU SPEED CHANGE CAPABILITY SPD_FIXED|SPD_HILO +CPUSPDDEF .EQU SPD_HIGH ; SPD_UNSUP|SPD_HIGH|SPD_LOW +; +DMAMODE .EQU DMAMODE_MBC +DMA_USEHS .EQU TRUE ; USE CLOCK DIVIDER ; DMA_CONTINUOUS .equ %10111101 ; + Pulse DMA_BYTE .equ %10011101 ; + Pulse @@ -25,27 +61,39 @@ DMA_RESET .equ $c3 ;DMA_ENABLE_AFTER_RETI .equ $b7 ;DMA_REINIT_STATUS_BYTE .equ $8b ; -DMA_FBACK .equ TRUE ; ALLOW FALLBACK TO SOFTWARE -DMA_USEHS .equ TRUE ; USE CLOCK DIVIDER -; -;DMAMODE .SET DMAMODE_ECB -; -#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_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 ; ;================================================================================================== ; MAIN DMA MONITOR ROUTINE ;================================================================================================== ; - .ORG $0100 + .ORG $0100 ; MAIN: LD (SAVSTK),SP ; SETUP LOCAL @@ -58,17 +106,21 @@ MENULP: CALL DISPM ; DISPLAY MENU CALL CIN ; GET SELECTION ; CP 'D' - JP Z,DMATST_D + JP Z,DMATST_D ; DUMP REGISTERS CP 'I' - JP Z,DMATST_I + JP Z,DMATST_I ; INITIALIZE CP 'M' - JP Z,DMATST_M + JP Z,DMATST_M ; MEMORY MOVE + CP '0' + JP Z,DMATST_01 + CP '1' + JR Z,DMATST_01 CP 'R' - JP Z,DMATST_R + JP Z,DMATST_R ; TOGGLE RESET CP 'Y' - JP Z,DMATST_Y + JP Z,DMATST_Y ; TOGGLE READY CP 'X' - JR Z,DMABYE + JR Z,DMABYE ; EXIT ; JR MENULP ; @@ -87,6 +139,12 @@ DMATST_M: CALL DMAMemMove JP MENULP ; +DMATST_01: + call PRTSTRD + .db "\n\TOGGLE PORT\n\r$" + CALL DMA_Port01 + JP MENULP +; DMATST_D: call PRTSTRD .db "\n\rSTART DMARegDump\n\r$" @@ -95,8 +153,8 @@ DMATST_D: ; DMATST_Y: call PRTSTRD - .db "\n\rY READY\n\r$" -; CALL + .db "\n\rTEST READY\n\r$" + CALL DMA_ReadyT JP MENULP ; DMATST_R: @@ -104,12 +162,14 @@ DMATST_R: .db "R RESET\n\r$" ; CALL JP MENULP - +;================================================================================================== +; DISPLAY MENU +;================================================================================================== ; DISPM: call PRTSTRD .db "\n\rDMA DEVICE: $" - LD C,DMAMODE_MBC ; DISPLAY - LD A,00000011B ; TARGET + LD C,DMAMODE ; DISPLAY + LD A,00000111B ; TARGET LD DE,DMA_DEV_STR ; DEVICE CALL PRTIDXMSK CALL NEWLINE @@ -140,11 +200,7 @@ DMA_INIT: LD A,DMA_FORCE 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? jr nz,DMA_NOTFOUND @@ -162,26 +218,13 @@ DMA_INIT: xor a ; set status ; DMA_EXIT: -#IF (DMA_USEHS) - push af - ld a,(HB_RTCVAL) - and %11110111 ; full - out (RTCIO),a ; clock - pop af -#ENDIF + DMAIONOR ret ; DMA_NOTFOUND: push af call PRTSTRD .db " NOT PRESENT$" - -#IF (DMA_FBACK) - call PRTSTRD - .db ". USING SOFTWARE$" - LD A,ERR_NOHW - LD (DMA_FAIL_FLAG),A -#ENDIF pop af jr DMA_EXIT ; @@ -191,22 +234,82 @@ DMA_FAIL_FLAG: DMA_DEV_STR: .TEXT "NONE$" .TEXT "ECB$" - .TEXT "Z180" + .TEXT "Z180$" .TEXT "Z280$" + .TEXT "RC2014$" .TEXT "MBC$" ; MENU_OPT: .TEXT "\n\r" .TEXT "I) Initialize DMA\n\r" .TEXT "M) Memory to Memory test\n\r" - .TEXT "P) Port select test\n\r" - .TEXT "R) Reset bit test\n\r" + .TEXT "0) DMA Port select test\n\r" + .TEXT "1) DMA Latch Port select test\n\r" .TEXT "Y) Ready bit test\n\r" .TEXT "X) Exit\n\r" .TEXT ">$" ; ;================================================================================================== +; TOGGLE A PORT ON AND OFF +;================================================================================================== +; +DMA_Port01: + sub '0' ; Calculate + add a,DMABASE ; Port to + ld c,a ; toggle + ld b,0 +portlp: push bc + call PRTSTRD + .db "\n\rON ...$" + call PRTHEXWORD + push bc + ld b,0 + ld a,0 +portlp1:out (c),a + djnz portlp1 + pop bc + call PRTSTRD + .db " OFF$" + call delay + pop bc + djnz portlp + JP MENULP +; +delay: push bc + ld bc,0 +dlylp: dec bc + ld a,b + or c + jr nz,dlylp + pop bc + ret +; +;================================================================================================== +; TOGGLE READY BIT +;================================================================================================== +; +DMA_ReadyT: + ld c,DMABASE+1 ; toggle + ld b,0 +portlp2:push bc + call PRTSTRD + .db "\n\rON ...$" + call PRTHEXWORD + ld a,$FF + ld c,DMABASE+1 + out (c),a + call PRTSTRD + .db " OFF$" + call delay + ld c,DMABASE+1 + ld a,0 + out (c),a + pop bc + djnz portlp2 + ret +; +;================================================================================================== ; DMA MEMORY MOVE ;================================================================================================== ; @@ -321,11 +424,7 @@ DMALDIR: ld b,DMACopy_Len ; dma command ld c,DMABASE ; block ; -#IF (DMA_USEHS) - ld a,(HB_RTCVAL) - or %00001000 ; half - out (RTCIO),a ; clock -#ENDIF + DMAIOSLO di otir ; load and execute dma ei @@ -335,13 +434,7 @@ DMALDIR: in a,(DMABASE) ; set non-zero and %00111011 ; if failed sub %00011011 -#IF (DMA_USEHS) - push af - ld a,(HB_RTCVAL) - and %11110111 ; full - out (RTCIO),a ; clock - pop af -#ENDIF + DMAIONOR ret ; DMACopy ;.db DMA_DISABLE ; R6-Command Disable DMA @@ -374,11 +467,7 @@ DMAOTIR: ld b,DMAOut_Len ; dma command ld c,DMABASE ; block ; -#IF (DMA_USEHS) - ld a,(HB_RTCVAL) - or %00001000 ; half - out (RTCIO),a ; clock -#ENDIF + DMAIOSLO di otir ; load and execute dma ei @@ -389,13 +478,7 @@ DMAOTIR: and %00111011 ; if failed sub %00011011 ; -#IF (DMA_USEHS) - push af - ld a,(HB_RTCVAL) - and %11110111 ; full - out (RTCIO),a ; clock - pop af -#ENDIF + DMAIONOR ret ; DMAOutCode ;.db DMA_DISABLE ; R6-Command Disable DMA @@ -433,11 +516,7 @@ DMAINIR: ld b,DMAIn_Len ; dma command ld c,DMABASE ; block ; -#IF (DMA_USEHS) - ld a,(HB_RTCVAL) - or %00001000 ; half - out (RTCIO),a ; clock -#ENDIF + DMAIOSLO di otir ; load and execute dma ei @@ -448,13 +527,7 @@ DMAINIR: and %00111011 ; if failed sub %00011011 ; -#IF (DMA_USEHS) - push af - ld a,(HB_RTCVAL) - and %11110111 ; full - out (RTCIO),a ; clock - pop af -#ENDIF + DMAIONOR ret ; DMAInCode ;.db DMA_DISABLE ; R6-Command Disable DMA @@ -514,8 +587,11 @@ DMARegDump: call NEWLINE ret ;#ENDIF - - +; +CIO_CONSOLE .EQU $80 ; CONSOLE UNIT TO C +BF_CIOOUT .EQU $01 ; HBIOS FUNC: OUTPUT CHAR +BF_CIOIN .EQU $00 ; HBIOS FUNC: INPUT CHAR +BF_CIOIST .EQU $02 ; HBIOS FUNC: INPUT CHAR STATUS ; ;__COUT_______________________________________________________________________ ; @@ -592,4 +668,4 @@ SAVSTK: .DW 2 STACK: .EQU $ PROEND: .EQU $ ; - .end + .END diff --git a/Source/Apps/Test/DMAmon/dmamon.bat b/Source/Apps/Test/DMAmon/dmamon.bat deleted file mode 100644 index 97c65ae2..00000000 --- a/Source/Apps/Test/DMAmon/dmamon.bat +++ /dev/null @@ -1,2 +0,0 @@ -tasm -t80 -b dmamon.asm dmamon.com - diff --git a/Source/Apps/Test/DMAmon/hbios.inc b/Source/Apps/Test/DMAmon/hbios.inc deleted file mode 100644 index b88012db..00000000 --- a/Source/Apps/Test/DMAmon/hbios.inc +++ /dev/null @@ -1,267 +0,0 @@ -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; -; HBIOS FUNCTIONS -; -BF_CIO .EQU $00 -BF_CIOIN .EQU BF_CIO + 0 ; CHARACTER INPUT -BF_CIOOUT .EQU BF_CIO + 1 ; CHARACTER OUTPUT -BF_CIOIST .EQU BF_CIO + 2 ; CHARACTER INPUT STATUS -BF_CIOOST .EQU BF_CIO + 3 ; CHARACTER OUTPUT STATUS -BF_CIOINIT .EQU BF_CIO + 4 ; INIT/RESET DEVICE/LINE CONFIG -BF_CIOQUERY .EQU BF_CIO + 5 ; REPORT DEVICE/LINE CONFIG -BF_CIODEVICE .EQU BF_CIO + 6 ; REPORT DEVICE INFO -; -BF_DIO .EQU $10 -BF_DIOSTATUS .EQU BF_DIO + 0 ; DISK STATUS -BF_DIORESET .EQU BF_DIO + 1 ; DISK RESET -BF_DIOSEEK .EQU BF_DIO + 2 ; DISK SEEK -BF_DIOREAD .EQU BF_DIO + 3 ; DISK READ SECTORS -BF_DIOWRITE .EQU BF_DIO + 4 ; DISK WRITE SECTORS -BF_DIOVERIFY .EQU BF_DIO + 5 ; DISK VERIFY SECTORS -BF_DIOFORMAT .EQU BF_DIO + 6 ; DISK FORMAT TRACK -BF_DIODEVICE .EQU BF_DIO + 7 ; DISK DEVICE INFO REPORT -BF_DIOMEDIA .EQU BF_DIO + 8 ; DISK MEDIA REPORT -BF_DIODEFMED .EQU BF_DIO + 9 ; DEFINE DISK MEDIA -BF_DIOCAP .EQU BF_DIO + 10 ; DISK CAPACITY REPORT -BF_DIOGEOM .EQU BF_DIO + 11 ; DISK GEOMETRY REPORT -; -BF_RTC .EQU $20 -BF_RTCGETTIM .EQU BF_RTC + 0 ; GET TIME -BF_RTCSETTIM .EQU BF_RTC + 1 ; SET TIME -BF_RTCGETBYT .EQU BF_RTC + 2 ; GET NVRAM BYTE BY INDEX -BF_RTCSETBYT .EQU BF_RTC + 3 ; SET NVRAM BYTE BY INDEX -BF_RTCGETBLK .EQU BF_RTC + 4 ; GET NVRAM DATA BLOCK -BF_RTCSETBLK .EQU BF_RTC + 5 ; SET NVRAM DATA BLOCK -BF_RTCGETALM .EQU BF_RTC + 6 ; GET ALARM -BF_RTCSETALM .EQU BF_RTC + 7 ; SET ALARM -BF_RTCDEVICE .EQU BF_RTC + 8 ; RTC DEVICE INFO REPORT -; -BF_EMU .EQU $30 ; DEPRECATED -; -BF_VDA .EQU $40 -BF_VDAINI .EQU BF_VDA + 0 ; INITIALIZE VDU -BF_VDAQRY .EQU BF_VDA + 1 ; QUERY VDU STATUS -BF_VDARES .EQU BF_VDA + 2 ; SOFT RESET VDU -BF_VDADEV .EQU BF_VDA + 3 ; DEVICE INFO -BF_VDASCS .EQU BF_VDA + 4 ; SET CURSOR STYLE -BF_VDASCP .EQU BF_VDA + 5 ; SET CURSOR POSITION -BF_VDASAT .EQU BF_VDA + 6 ; SET CHARACTER ATTRIBUTE -BF_VDASCO .EQU BF_VDA + 7 ; SET CHARACTER COLOR -BF_VDAWRC .EQU BF_VDA + 8 ; WRITE CHARACTER -BF_VDAFIL .EQU BF_VDA + 9 ; FILL -BF_VDACPY .EQU BF_VDA + 10 ; COPY -BF_VDASCR .EQU BF_VDA + 11 ; SCROLL -BF_VDAKST .EQU BF_VDA + 12 ; GET KEYBOARD STATUS -BF_VDAKFL .EQU BF_VDA + 13 ; FLUSH KEYBOARD BUFFER -BF_VDAKRD .EQU BF_VDA + 14 ; READ KEYBOARD -; -BF_SND .EQU $50 -BF_SNDRESET .EQU BF_SND + 0 ; RESET SOUND SYSTEM -BF_SNDVOL .EQU BF_SND + 1 ; REQUEST SOUND VOL - L CONTAINS VOLUME (255 MAX, 0 SILENT) - SCALED AS REQUIRED BY DRIVER (EG: MAPS TO JUST 4 BIT RESOLUTION FOR SN76489) -BF_SNDPRD .EQU BF_SND + 2 ; REQUEST SOUND PERIOD - HL CONTAINS DRIVER SPECIFIC VALUE -BF_SNDNOTE .EQU BF_SND + 3 ; REQUEST NOTE - L CONTAINS NOTE - EACH VALUE IS QUARTER NOTE -BF_SNDPLAY .EQU BF_SND + 4 ; INITIATE THE REQUESTED SOUND COMMAND -BF_SNDQUERY .EQU BF_SND + 5 ; E IS SUBFUNCTION -BF_SNDDURATION .EQU BF_SND + 6 ; REQUEST DURATION HL MILLISECONDS -BF_SNDDEVICE .EQU BF_SND + 7 ; SOUND DEVICE INFO REQUEST -; -; BF_SNDQUERY SUBCOMMANDS -BF_SNDQ_STATUS .EQU 0 -BF_SNDQ_CHCNT .EQU BF_SNDQ_STATUS + 1 ; RETURN COUNT OF CHANNELS -BF_SNDQ_VOLUME .EQU BF_SNDQ_STATUS + 2 ; 8 BIT NUMBER -BF_SNDQ_PERIOD .EQU BF_SNDQ_STATUS + 3 ; 16 BIT NUMBER -BF_SNDQ_DEV .EQU BF_SNDQ_STATUS + 4 ; RETURN DEVICE TYPE CODE AND IO PORTS - TYPE IN B, PORTS IN DE, HL -; -BF_SYS .EQU $F0 -BF_SYSRESET .EQU BF_SYS + 0 ; SOFT RESET HBIOS -BF_SYSVER .EQU BF_SYS + 1 ; GET HBIOS VERSION -BF_SYSSETBNK .EQU BF_SYS + 2 ; SET CURRENT BANK -BF_SYSGETBNK .EQU BF_SYS + 3 ; GET CURRENT BANK -BF_SYSSETCPY .EQU BF_SYS + 4 ; BANK MEMORY COPY SETUP -BF_SYSBNKCPY .EQU BF_SYS + 5 ; BANK MEMORY COPY -BF_SYSALLOC .EQU BF_SYS + 6 ; ALLOC HBIOS HEAP MEMORY -BF_SYSFREE .EQU BF_SYS + 7 ; FREE HBIOS HEAP MEMORY -BF_SYSGET .EQU BF_SYS + 8 ; GET HBIOS INFO -BF_SYSSET .EQU BF_SYS + 9 ; SET HBIOS PARAMETERS -BF_SYSPEEK .EQU BF_SYS + 10 ; GET A BYTE VALUE FROM ALT BANK -BF_SYSPOKE .EQU BF_SYS + 11 ; SET A BYTE VALUE IN ALT BANK -BF_SYSINT .EQU BF_SYS + 12 ; MANAGE INTERRUPT VECTORS -; -BF_SYSRES_INT .EQU $00 ; RESET HBIOS INTERNAL -BF_SYSRES_WARM .EQU $01 ; WARM START (RESTART BOOT LOADER) -BF_SYSRES_COLD .EQU $02 ; COLD START -BF_SYSRES_USER .EQU $03 ; USER RESET REQUEST -; -BF_SYSGET_CIOCNT .EQU $00 ; GET CHAR UNIT COUNT -BF_SYSGET_CIOFN .EQU $01 ; GET CIO UNIT FN/DATA ADR -BF_SYSGET_DIOCNT .EQU $10 ; GET DISK UNIT COUNT -BF_SYSGET_DIOFN .EQU $11 ; GET DIO UNIT FN/DATA ADR -BF_SYSGET_RTCCNT .EQU $20 ; GET RTC UNIT COUNT -BF_SYSGET_VDACNT .EQU $40 ; GET VDA UNIT COUNT -BF_SYSGET_VDAFN .EQU $41 ; GET VDA UNIT FN/DATA ADR -BF_SYSGET_SNDCNT .EQU $50 ; GET VDA UNIT COUNT -BF_SYSGET_SNDFN .EQU $51 ; GET SND UNIT FN/DATA ADR -BF_SYSGET_TIMER .EQU $D0 ; GET CURRENT TIMER VALUE -BF_SYSGET_SECS .EQU $D1 ; GET CURRENT SECONDS VALUE -BF_SYSGET_BOOTINFO .EQU $E0 ; GET BOOT INFORMATION -BF_SYSGET_CPUINFO .EQU $F0 ; GET CPU INFORMATION -BF_SYSGET_MEMINFO .EQU $F1 ; GET MEMORY CAPACTITY INFO -BF_SYSGET_BNKINFO .EQU $F2 ; GET BANK ASSIGNMENT INFO -; -BF_SYSSET_TIMER .EQU $D0 ; SET TIMER VALUE -BF_SYSSET_SECS .EQU $D1 ; SET SECONDS VALUE -BF_SYSSET_BOOTINFO .EQU $E0 ; SET BOOT INFORMATION -; -BF_SYSINT_INFO .EQU $00 ; GET INTERRUPT SYSTEM INFO -BF_SYSINT_GET .EQU $10 ; GET INT VECTOR ADDRESS -BF_SYSINT_SET .EQU $20 ; SET INT VECTOR ADDRESS -; -CIO_CONSOLE .EQU $80 ; CIO UNIT NUM FOR CUR CON -; -; HBIOS GLOBAL ERROR RETURN VALUES -; -ERR_NONE .EQU 0 ; SUCCESS -; -ERR_UNDEF .EQU -1 ; UNDEFINED ERROR -ERR_NOTIMPL .EQU -2 ; FUNCTION NOT IMPLEMENTED -ERR_NOFUNC .EQU -3 ; INVALID FUNCTION -ERR_NOUNIT .EQU -4 ; INVALID UNIT NUMBER -ERR_NOMEM .EQU -5 ; OUT OF MEMORY -ERR_RANGE .EQU -6 ; PARAMETER OUT OF RANGE -ERR_NOMEDIA .EQU -7 ; MEDIA NOT PRESENT -ERR_NOHW .EQU -8 ; HARDWARE NOT PRESENT -ERR_IO .EQU -9 ; I/O ERROR -ERR_READONLY .EQU -10 ; WRITE REQUEST TO READ-ONLY MEDIA -ERR_TIMEOUT .EQU -11 ; DEVICE TIMEOUT -ERR_BADCFG .EQU -12 ; INVALID CONFIGURATION -ERR_INTERNAL .EQU -13 ; INTERNAL ERROR -; -; MEDIA ID VALUES -; -MID_NONE .EQU 0 -MID_MDROM .EQU 1 -MID_MDRAM .EQU 2 -MID_RF .EQU 3 -MID_HD .EQU 4 -MID_FD720 .EQU 5 -MID_FD144 .EQU 6 -MID_FD360 .EQU 7 -MID_FD120 .EQU 8 -MID_FD111 .EQU 9 -MID_HDNEW .EQU 10 -; -; CHAR DEVICE IDS -; -CIODEV_UART .EQU $00 -CIODEV_ASCI .EQU $10 -CIODEV_TERM .EQU $20 -CIODEV_PRPCON .EQU $30 -CIODEV_PPPCON .EQU $40 -CIODEV_SIO .EQU $50 -CIODEV_ACIA .EQU $60 -CIODEV_PIO .EQU $70 -CIODEV_UF .EQU $80 -CIODEV_DUART .EQU $90 -CIODEV_Z2U .EQU $A0 -; -; SUB TYPES OF CHAR DEVICES -; -;00 RS-232 -;01 TERMINAL -;02 PARALLEL PORT -;03 UNUSED -; -; DISK DEVICE IDS -; -DIODEV_MD .EQU $00 -DIODEV_FD .EQU $10 -DIODEV_RF .EQU $20 -DIODEV_IDE .EQU $30 -DIODEV_ATAPI .EQU $40 -DIODEV_PPIDE .EQU $50 -DIODEV_SD .EQU $60 -DIODEV_PRPSD .EQU $70 -DIODEV_PPPSD .EQU $80 -DIODEV_HDSK .EQU $90 -; -; RTC DEVICE IDS -; -RTCDEV_DS .EQU $00 ; DS1302 -RTCDEV_BQ .EQU $10 ; BQ4845P -RTCDEV_SIMH .EQU $20 ; SIMH -RTCDEV_INT .EQU $30 ; PERIODIC INT TIMER -RTCDEV_DS7 .EQU $40 ; DS1302 (I2C) -RTCDEV_RP5 .EQU $50 ; RP5C01 -; -; VIDEO DEVICE IDS -; -VDADEV_VDU .EQU $00 ; ECB VDU - MOTOROLA 6545 -VDADEV_CVDU .EQU $10 ; ECB COLOR VDU - MOS 8563 -VDADEV_NEC .EQU $20 ; ECB UPD7220 - NEC UPD7220 -VDADEV_TMS .EQU $30 ; N8 ONBOARD VDA SUBSYSTEM - TMS 9918 -VDADEV_VGA .EQU $40 ; ECB VGA3 - HITACHI HD6445 -;VDADEV_V9958 .EQU $50 ; V9958 VDU -; -; SOUND DEVICE IDS -; -SNDDEV_SN76489 .EQU $00 -SNDDEV_AY38910 .EQU $10 -SNDDEV_BITMODE .EQU $20 -; -; HBIOS CONTROL BLOCK OFFSETS -; WARNING: THESE OFFSETS WILL CHANGE SIGNIFICANTLY BETWEEN RELEASES -; IT IS STRONGLY RECOMMENDED THAT YOU DO NOT USE THEM! -; -HCB_LOC .EQU $100 ; LOCATION OF HCB IN HBIOS BANK -HCB_SIZ .EQU $100 ; SIZE OF HCB DATA BLOCK -; -HCB_MARKER .EQU $03 ; MARKER ('W',~'W') (WORD) -HCB_VERSION .EQU $05 ; HBIOS VERSION NUM -HCB_PLATFORM .EQU $07 ; PLATFORM ID -HCB_CPUMHZ .EQU $08 ; CPU SPEED IN MHZ (BYTE) -HCB_CPUKHZ .EQU $09 ; CPU SPEED IN KHZ (WORD) -HCB_RAMBANKS .EQU $0B ; TOTAL SIZE OF RAM IN 32K BANKS (BYTE) -HCB_ROMBANKS .EQU $0C ; TOTAL SIZE OF ROM IN 32K BANKS (BYTE) -HCB_BOOTVOL .EQU $0D ; BOOT VOLUME, MSB=DEV/UNIT, LSB=LU (WORD) -HCB_BOOTBID .EQU $0F ; BANK ID OF ROM PAGE BOOTED (BYTE) -HCB_SERDEV .EQU $10 ; PRIMARY SERIAL DEVICE/UNIT (BYTE) -HCB_CRTDEV .EQU $11 ; CRT DISPLAY DEVICE/UNIT (BYTE) -HCB_CONDEV .EQU $12 ; ACTIVE CONSOLE DEVICE/UNIT (BYTE) -HCB_DIAGLVL .EQU $13 ; HBIOS DIAGNOSTIC LEVEL (BYTE) -; -HCB_HEAP .EQU $20 ; DWORD ADDRESS OF START OF HEAP -HCB_HEAPTOP .EQU $22 ; DWORD ADDRESS OF TOP OF HEAP -; -; MEMORY BANK IDS (ONE BYTE EACH) -HCB_BIDCOM .EQU $D8 ; COMMON BANK (UPPER 32K) -HCB_BIDUSR .EQU $D9 ; USER BANK (TPA) -HCB_BIDBIOS .EQU $DA ; BIOS BANK (HBIOS, UBIOS) -HCB_BIDAUX .EQU $DB ; AUX BANK (BPBIOS) -HCB_BIDRAMD0 .EQU $DC ; FIRST BANK OF RAM DRIVE -HCB_BIDRAMDN .EQU $DD ; LAST BANK OF RAM DRIVE -HCB_BIDROMD0 .EQU $DE ; FIRST BANK OF ROM DRIVE -HCB_BIDROMDN .EQU $DF ; LAST BANK OF ROM DRIVE -; -; HBIOS PROXY COMMON DATA BLOCK -; EXACTLY 32 BYTES AT $FFE0-$FFFF -; -HBX_XFC .EQU $10000 - $20 ; HBIOS PROXY INTERFACE AREA, 32 BYTES FIXED -; -HBX_XFCDAT .EQU HBX_XFC ; DATA PORTION OF HBIOS PROXY INTERFACE AREA -HB_CURBNK .EQU HBX_XFCDAT + 0 ; CURRENTLY ACTIVE LOW MEMORY BANK ID -HB_INVBNK .EQU HBX_XFCDAT + 1 ; BANK ACTIVE AT TIME OF HBIOS CALL INVOCATION -HB_SRCADR .EQU HBX_XFCDAT + 2 ; BNKCPY: DESTINATION BANK ID -HB_SRCBNK .EQU HBX_XFCDAT + 4 ; BNKCPY: SOURCE BANK ID -HB_DSTADR .EQU HBX_XFCDAT + 5 ; BNKCPY: DESTINATION ADDRESS -HB_DSTBNK .EQU HBX_XFCDAT + 7 ; BNKCPY: SOURCE ADDRESS -HB_CPYLEN .EQU HBX_XFCDAT + 8 ; BNKCPY: COPY LENGTH -HB_RTCVAL .EQU HBX_XFCDAT + 14 ; RTC LATCH SHADOW VALUE -HB_LOCK .EQU HBX_XFCDAT + 15 ; INVOKE: HBIOS MUTEX LOCK -; -HBX_XFCFNS .EQU HBX_XFC + $10 ; JUMP TABLE PORTION OF HBIOS PROXY INTERFACE AREA -HB_INVOKE .EQU HBX_XFCFNS + (0 * 3) ; INVOKE HBIOS FUNCTION -HB_BNKSEL .EQU HBX_XFCFNS + (1 * 3) ; SELECT LOW MEMORY BANK ID -HB_BNKCPY .EQU HBX_XFCFNS + (2 * 3) ; INTERBANK MEMORY COPY -HB_BNKCALL .EQU HBX_XFCFNS + (3 * 3) ; INTERBANK FUNCTION CALL -;HB_LOC .EQU HBX_XFCFNS + 12 ; ADDRESS OF HBIOS PROXY START (DEPRECATED) -HB_IDENT .EQU HBX_XFCFNS + 14 ; POINTER TO HBIOS IDENT DATA BLOCK diff --git a/Source/Apps/Test/DMAmon/std.asm b/Source/Apps/Test/DMAmon/std.asm deleted file mode 100644 index 3c25f7bb..00000000 --- a/Source/Apps/Test/DMAmon/std.asm +++ /dev/null @@ -1,693 +0,0 @@ -; The purpose of this file is to define generic symbols and to include -; the requested build configuraton file to bring in platform specifics. - -; There are several hardware platforms supported by SBC. -; 1. SBC Z80 SBC (v1 or v2) w/ ECB interface -; 2. ZETA Standalone Z80 SBC w/ SBC compatibility -; 3. ZETA2 Second version of ZETA with enhanced memory bank switching -; 4. N8 MSX-ish Z180 SBC w/ onboard video and sound -; 5. MK4 Mark IV Z180 based SBC w/ ECB interface -; 6. UNA Any Z80/Z180 computer with UNA BIOS -; 7. RCZ80 RC2014 based system with 512K banked RAM/ROM card -; 8. RCZ180 RC2014 based system with Z180 CPU -; 9. EZZ80 Easy Z80, Z80 SBC w/ RC2014 bus and CTC -; 10. SCZ180 Steve Cousins Z180 based system -; 11. DYNO Steve Garcia's Dyno Micro-ATX Motherboard -; 12. RCZ280 Z280 CPU on RC2014 or ZZ80MB -; 13. MBC Andrew Lynch's Multi Board Computer - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; -; INCLUDE VERSION -; -#INCLUDE "ver.inc" ; ADD BIOSVER -; -FALSE .EQU 0 -TRUE .EQU ~FALSE -; -; DEBUGGING OPTIONS -; -USENONE .EQU 0 ; NO DEBUG -USEXIO .EQU 1 ; BASIC SERIAL DRIVER -USEMIO .EQU 2 ; MEMORY BUFFER DRIVER -WBWDEBUG .EQU USENONE -; -; DIAGNOSTIC LEVEL OPTIONS -; -DL_NONE .EQU 0 ; HBIOS DISPLAY NO MESSAGES -DL_CRITICAL .EQU 4 ; HBIOS DISPLAY CRITICAL ERROR MESSAGES -DL_ERROR .EQU 8 ; HBIOS DISPLAYS ALL ERROR MESSAGES -DL_WARNING .EQU 12 ; HBIOS DISPLAYS WARNING MESSAGES -DL_INFO .EQU 16 ; HBIOS DISPLAYS INFORMATIONAL MESSAGES -DL_DETAIL .EQU 20 ; HBIOS DISPLAYS DETAILED DIAGNOSTIC MESSAGES -DL_VERBOSE .EQU 24 ; HBIOS DISPLAYS ANYTHING IT KNOWS HOW TO -; -; PRIMARY HARDWARE PLATFORMS -; -PLT_SBC .EQU 1 ; SBC ECB Z80 SBC -PLT_ZETA .EQU 2 ; ZETA Z80 SBC -PLT_ZETA2 .EQU 3 ; ZETA Z80 V2 SBC -PLT_N8 .EQU 4 ; N8 (HOME COMPUTER) Z180 SBC -PLT_MK4 .EQU 5 ; MARK IV -PLT_UNA .EQU 6 ; UNA BIOS -PLT_RCZ80 .EQU 7 ; RC2014 W/ Z80 -PLT_RCZ180 .EQU 8 ; RC2014 W/ Z180 -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 -; -CPU_NONE .EQU 0 ; NO CPU TYPE DEFINED -CPU_Z80 .EQU 1 ; Z80 FAMILY -CPU_Z180 .EQU 2 ; Z180 FAMILY -CPU_Z280 .EQU 3 ; Z280 FAMILY -; -; BIOS MODE -; -BIOS_NONE .EQU 0 ; NO BIOS TYPE DEFINED -BIOS_WBW .EQU 1 ; ROMWBW HBIOS -BIOS_UNA .EQU 2 ; UNA UBIOS -; -; DEFAULT HBIOS DIAGNOSTIC LEVEL -; WILL ULTIMATELY BE MOVED TO CONFIG FILE -; -DIAGLVL .EQU DL_CRITICAL -; -; MEMORY MANAGERS -; -MM_NONE .EQU 0 -MM_SBC .EQU 1 ; ORIGINAL N8VEM/RBC Z80 SBC BANKED MEMORY -MM_Z2 .EQU 2 ; 16K X 4 BANKED MEMORY INTRODUCED ON ZETA2 -MM_N8 .EQU 3 ; Z180 CUSTOMIZED FOR N8 MEMORY EXTENSIONS -MM_Z180 .EQU 4 ; Z180 NATIVE MEMORY MANAGER -MM_Z280 .EQU 5 ; Z280 NATIVE MEMORY MANAGER -MM_ZRC .EQU 6 ; ZRC BANK SWITCHING -MM_MBC .EQU 7 ; MBC MEMORY MANAGER -; -; BOOT STYLE -; -BT_MENU .EQU 1 ; WAIT FOR MENU SELECTION AT LOADER PROMPT -BT_AUTO .EQU 2 ; AUTO SELECT BOOT_DEFAULT AFTER BOOT_TIMEOUT -; -; BOOT RECOVERY METHODS -; -BT_REC_NONE .EQU 0 ; NO RECOVERY MODE -BT_REC_FORCE .EQU 1 ; FORCE BOOT RECOVERY MODE -BT_REC_SBC01 .EQU 2 ; ECB-SBCV2 - BIT 1 RTC HIGH -BT_REC_SBC1B .EQU 3 ; ECB-SBCV2 - 1-BIT IO PORT -BT_REC_SBCRI .EQU 4 ; ECB-SBCV2 - 16550 UART RING INDICATOR LINE -; -BT_REC_TYPE .EQU BT_REC_NONE ; BOOT RECOVERY METHOD TO USE -; -; FLOPPY DISK MEDIA SELECTIONS (ID'S MUST BE INDEX OF ENTRY IN FCD_TBL) -; -FDM720 .EQU 0 ; 3.5" FLOPPY, 720KB, 2 SIDES, 80 TRKS, 9 SECTORS -FDM144 .EQU 1 ; 3.5" FLOPPY, 1.44MB, 2 SIDES, 80 TRKS, 18 SECTORS -FDM360 .EQU 2 ; 5.25" FLOPPY, 360KB, 2 SIDES, 40 TRKS, 9 SECTORS -FDM120 .EQU 3 ; 5.25" FLOPPY, 1.2MB, 2 SIDES, 80 TRKS, 15 SECTORS -FDM111 .EQU 4 ; 8" FLOPPY, 1.11MB, 2 SIDES, 74 TRKS, 15 SECTORS -; -; ZILOG CTC MODE SELECTIONS -; -CTCMODE_NONE .EQU 0 ; NO CTC -CTCMODE_CTR .EQU 1 ; CTC COUNTER -CTCMODE_TIM16 .EQU 2 ; CTC TIMER W/ DIV 16 -CTCMODE_TIM256 .EQU 3 ; CTC TIMER W/ DIV 256 -; -; DS1302 RTC MODE SELECTIONS -; -DSRTCMODE_NONE .EQU 0 ; NO DSRTC -DSRTCMODE_STD .EQU 1 ; ORIGINAL DSRTC CIRCUIT (SBC, ZETA, MK4) -DSRTCMODE_MFPIC .EQU 2 ; MF/PIC VARIANT -; -; DS1307 RTC MODE SELECTIONS -; -DS7RTCMODE_NONE .EQU 0 ; NO DSRTC -DS7RTCMODE_PCF .EQU 1 ; PCF8584 I2C -; -; SIO MODE SELECTIONS -; -SIOMODE_NONE .EQU 0 -SIOMODE_STD .EQU 1 ; STD SIO REG CFG (EZZ80, KIO) -SIOMODE_RC .EQU 2 ; RC2014 SIO MODULE (SPENCER OWEN) -SIOMODE_SMB .EQU 3 ; RC2014 SIO MODULE (SCOTT BAKER) -SIOMODE_ZP .EQU 4 ; ECB-ZILOG PERIPHERALS BOARD -; -; TYPE OF CONSOLE BELL TO USE -; -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 -FDMODE_DIO .EQU 1 ; DISKIO V1 -FDMODE_ZETA .EQU 2 ; ZETA -FDMODE_ZETA2 .EQU 3 ; ZETA V2 -FDMODE_DIDE .EQU 4 ; DUAL IDE -FDMODE_N8 .EQU 5 ; N8 -FDMODE_DIO3 .EQU 6 ; DISKIO V3 -FDMODE_RCSMC .EQU 7 ; RC2014 SMC 9266 @ $40 (SCOTT BAKER) -FDMODE_RCWDC .EQU 8 ; RC2014 WDC 37C65 @ $40 (SCOTT BAKER) -FDMODE_DYNO .EQU 9 ; DYNO WDC 37C65 @ $84 -FDMODE_EPFDC .EQU 10 ; RC2014 ETCHED PIXELS FDC -FDMODE_MBC .EQU 11 ; MULTI-BOARD COMPUTER FDC -; -; IDE MODE SELECTIONS -; -IDEMODE_NONE .EQU 0 -IDEMODE_DIO .EQU 1 ; DISKIO V1 -IDEMODE_DIDE .EQU 2 ; DUAL IDE -IDEMODE_MK4 .EQU 3 ; MARK IV ONBOARD IDE (8 BIT ONLY) -IDEMODE_RC .EQU 4 ; RC2014 CF MODULE (8 BIT ONLY) -; -; PPIDE MODE SELECTIONS -; -PPIDEMODE_NONE .EQU 0 -PPIDEMODE_SBC .EQU 1 ; STANDARD SBC PARALLEL PORT -PPIDEMODE_DIO3 .EQU 2 ; DISKIO V3 PARALLEL PORT -PPIDEMODE_MFP .EQU 3 ; MULTIFUNCTION / PIC -PPIDEMODE_N8 .EQU 4 ; MULTIFUNCTION / PIC -PPIDEMODE_RC .EQU 5 ; RC2014 PPIDE MODULE @ $20 (ED BRINDLEY) -PPIDEMODE_DYNO .EQU 6 ; DYNO PPIDE @ $4C -; -; SD MODE SELECTIONS -; -SDMODE_NONE .EQU 0 -SDMODE_JUHA .EQU 1 ; JUHA MINI BOARD -SDMODE_N8 .EQU 2 ; N8-2511, UNMODIFIED -SDMODE_CSIO .EQU 3 ; N8-2312 OR N8-2511 MODIFIED -SDMODE_PPI .EQU 4 ; PPISD MINI BOARD -SDMODE_UART .EQU 5 ; SD INTERFACE VIA UART -SDMODE_DSD .EQU 6 ; DUAL SD -SDMODE_MK4 .EQU 7 ; MARK IV -SDMODE_SC .EQU 8 ; SC (Steve Cousins) -SDMODE_MT .EQU 9 ; MT (Shift register SPI WIZNET for RC2014) -; -; SOUND CHIP MODE SELECTIONS -; -AYMODE_NONE .EQU 0 -AYMODE_N8 .EQU 1 ; N8 BUILT-IN SOUND -AYMODE_SCG .EQU 2 ; SCG ECB BOARD -AYMODE_RCZ80 .EQU 3 ; RC2014 SOUND MODULE BY ED BRINDLEY ON Z80 -AYMODE_RCZ180 .EQU 4 ; RC2014 SOUND MODULE BY ED BRINDLEY ON Z180 -AYMODE_MSX .EQU 5 ; RC2014 SOUND MODULE REV6 BY ED BRINDLEY ON Z80/Z180 AT MSX PORTS -AYMODE_LINC .EQU 6 ; LINC Z50 AY SOUND CARD -; -; TMS VIDEO MODE SELECTIONS -; -TMSMODE_NONE .EQU 0 -TMSMODE_SCG .EQU 1 ; SCG ECB BOARD -TMSMODE_N8 .EQU 2 ; N8 BUILT-IN VIDEO -TMSMODE_RC .EQU 3 ; RC2014 TMS9918 VIDEO BOARD -TMSMODE_RCV9958 .EQU 4 ; RC2014 V9958 VIDEO BOARD -; -; DMA MODE SELECTIONS -; -DMAMODE_NONE .EQU 0 -DMAMODE_ECB .EQU 1 ; ECB-DMA WOLFGANG KABATZKE'S Z80 DMA ECB BOARD -DMAMODE_Z180 .EQU 2 ; Z180 INTEGRATED DMA -DMAMODE_Z280 .EQU 3 ; Z280 INTEGRATED DMA -DMAMODE_RC .EQU 4 ; RC2014 Z80 DMA -DMAMODE_MBC .EQU 5 ; MBC -; -; SERIAL DEVICE CONFIGURATION CONSTANTS -; -SER_DATA5 .EQU 0 << 0 -SER_DATA6 .EQU 1 << 0 -SER_DATA7 .EQU 2 << 0 -SER_DATA8 .EQU 3 << 0 -; -SER_PARNONE .EQU 0 << 3 -SER_PARODD .EQU 1 << 3 -SER_PAREVEN .EQU 3 << 3 -SER_PARMARK .EQU 5 << 3 -SER_PARSPACE .EQU 7 << 3 -; -SER_STOP1 .EQU 0 << 2 -SER_STOP2 .EQU 1 << 2 -; -; SERIAL BAUD RATES ENCODED AS V = 75 * 2^X * 3^Y -; AND STORED AS 5 BITS: YXXXX -; -SER_BAUD75 .EQU $00 << 8 -SER_BAUD150 .EQU $01 << 8 -SER_BAUD300 .EQU $02 << 8 -SER_BAUD600 .EQU $03 << 8 -SER_BAUD1200 .EQU $04 << 8 -SER_BAUD2400 .EQU $05 << 8 -SER_BAUD4800 .EQU $06 << 8 -SER_BAUD9600 .EQU $07 << 8 -SER_BAUD19200 .EQU $08 << 8 -SER_BAUD38400 .EQU $09 << 8 -SER_BAUD76800 .EQU $0A << 8 -SER_BAUD153600 .EQU $0B << 8 -SER_BAUD307200 .EQU $0C << 8 -SER_BAUD614400 .EQU $0D << 8 -SER_BAUD1228800 .EQU $0E << 8 -SER_BAUD2457600 .EQU $0F << 8 -SER_BAUD225 .EQU $10 << 8 -SER_BAUD450 .EQU $11 << 8 -SER_BAUD900 .EQU $12 << 8 -SER_BAUD1800 .EQU $13 << 8 -SER_BAUD3600 .EQU $14 << 8 -SER_BAUD7200 .EQU $15 << 8 -SER_BAUD14400 .EQU $16 << 8 -SER_BAUD28800 .EQU $17 << 8 -SER_BAUD57600 .EQU $18 << 8 -SER_BAUD115200 .EQU $19 << 8 -SER_BAUD230400 .EQU $1A << 8 -SER_BAUD460800 .EQU $1B << 8 -SER_BAUD921600 .EQU $1C << 8 -SER_BAUD1843200 .EQU $1D << 8 -SER_BAUD3686400 .EQU $1E << 8 -SER_BAUD7372800 .EQU $1F << 8 -; -; UART DIVIDER VALUES -; STORED AS 5 BITS: YXXXX -; -DIV_1 .EQU $00 -DIV_2 .EQU $01 -DIV_4 .EQU $02 -DIV_8 .EQU $03 -DIV_16 .EQU $04 -DIV_32 .EQU $05 -DIV_64 .EQU $06 -DIV_128 .EQU $07 -DIV_256 .EQU $08 -DIV_512 .EQU $09 -DIV_1024 .EQU $0A -DIV_2048 .EQU $0B -DIV_4096 .EQU $0C -DIV_8192 .EQU $0D -DIV_16384 .EQU $0E -DIV_32768 .EQU $0F -DIV_3 .EQU $10 -DIV_6 .EQU $11 -DIV_12 .EQU $12 -DIV_24 .EQU $13 -DIV_48 .EQU $14 -DIV_96 .EQU $15 -DIV_192 .EQU $16 -DIV_384 .EQU $17 -DIV_768 .EQU $18 -DIV_1536 .EQU $19 -DIV_3072 .EQU $1A -DIV_6144 .EQU $1B -DIV_12288 .EQU $1C -DIV_24576 .EQU $1D -DIV_49152 .EQU $1E -DIV_98304 .EQU $1F -; -SER_XON .EQU 1 << 6 -SER_DTR .EQU 1 << 7 -SER_RTS .EQU 1 << 13 -; -SER_75_8N1 .EQU SER_BAUD75 | SER_DATA8 | SER_PARNONE | SER_STOP1 -SER_150_8N1 .EQU SER_BAUD150 | SER_DATA8 | SER_PARNONE | SER_STOP1 -SER_300_8N1 .EQU SER_BAUD300 | SER_DATA8 | SER_PARNONE | SER_STOP1 -SER_600_8N1 .EQU SER_BAUD600 | SER_DATA8 | SER_PARNONE | SER_STOP1 -SER_1200_8N1 .EQU SER_BAUD1200 | SER_DATA8 | SER_PARNONE | SER_STOP1 -SER_2400_8N1 .EQU SER_BAUD2400 | SER_DATA8 | SER_PARNONE | SER_STOP1 -SER_4800_8N1 .EQU SER_BAUD4800 | SER_DATA8 | SER_PARNONE | SER_STOP1 -SER_9600_8N1 .EQU SER_BAUD9600 | SER_DATA8 | SER_PARNONE | SER_STOP1 -SER_19200_8N1 .EQU SER_BAUD19200 | SER_DATA8 | SER_PARNONE | SER_STOP1 -SER_38400_8N1 .EQU SER_BAUD38400 | SER_DATA8 | SER_PARNONE | SER_STOP1 -SER_76800_8N1 .EQU SER_BAUD76800 | SER_DATA8 | SER_PARNONE | SER_STOP1 -SER_153600_8N1 .EQU SER_BAUD153600 | SER_DATA8 | SER_PARNONE | SER_STOP1 -SER_307200_8N1 .EQU SER_BAUD307200 | SER_DATA8 | SER_PARNONE | SER_STOP1 -SER_614400_8N1 .EQU SER_BAUD614400 | SER_DATA8 | SER_PARNONE | SER_STOP1 -SER_1228800_8N1 .EQU SER_BAUD1228800 | SER_DATA8 | SER_PARNONE | SER_STOP1 -SER_2457600_8N1 .EQU SER_BAUD2457600 | SER_DATA8 | SER_PARNONE | SER_STOP1 -SER_225_8N1 .EQU SER_BAUD225 | SER_DATA8 | SER_PARNONE | SER_STOP1 -SER_450_8N1 .EQU SER_BAUD450 | SER_DATA8 | SER_PARNONE | SER_STOP1 -SER_900_8N1 .EQU SER_BAUD900 | SER_DATA8 | SER_PARNONE | SER_STOP1 -SER_1800_8N1 .EQU SER_BAUD1800 | SER_DATA8 | SER_PARNONE | SER_STOP1 -SER_3600_8N1 .EQU SER_BAUD3600 | SER_DATA8 | SER_PARNONE | SER_STOP1 -SER_7200_8N1 .EQU SER_BAUD7200 | SER_DATA8 | SER_PARNONE | SER_STOP1 -SER_14400_8N1 .EQU SER_BAUD14400 | SER_DATA8 | SER_PARNONE | SER_STOP1 -SER_28800_8N1 .EQU SER_BAUD28800 | SER_DATA8 | SER_PARNONE | SER_STOP1 -SER_57600_8N1 .EQU SER_BAUD57600 | SER_DATA8 | SER_PARNONE | SER_STOP1 -SER_115200_8N1 .EQU SER_BAUD115200 | SER_DATA8 | SER_PARNONE | SER_STOP1 -SER_230400_8N1 .EQU SER_BAUD230400 | SER_DATA8 | SER_PARNONE | SER_STOP1 -SER_460800_8N1 .EQU SER_BAUD460800 | SER_DATA8 | SER_PARNONE | SER_STOP1 -SER_921600_8N1 .EQU SER_BAUD921600 | SER_DATA8 | SER_PARNONE | SER_STOP1 -SER_1843200_8N1 .EQU SER_BAUD1843200 | SER_DATA8 | SER_PARNONE | SER_STOP1 -SER_3686400_8N1 .EQU SER_BAUD3686400 | SER_DATA8 | SER_PARNONE | SER_STOP1 -SER_7372800_8N1 .EQU SER_BAUD7372800 | SER_DATA8 | SER_PARNONE | SER_STOP1 -; -; TERMENABLE CONTROLS INCLUSION OF TERMINAL PSEUDO-DEVICE DRIVER -; IT IS SET TO TRUE BY THE INCLUSION OF ANY VDA DRIVER. -; -TERMENABLE .EQU FALSE ; TERM PSEUDO DEVICE, WILL AUTO-ENABLE IF A VDA IS ENABLED -; -; VIDEO MODES -; -V80X24 .EQU 0 ; ECB-VDU -V80X25 .EQU 1 ; ECB-VDU, ECB-VGA3 -V80X30 .EQU 2 ; ECB-VDU, ECB-VGA3 -V80X25B .EQU 3 ; ECB-VDU -V80X24B .EQU 4 ; ECB-VDU -V80X43 .EQU 5 ; ECB-VGA3 -V80X60 .EQU 6 ; ECB-VGA3 -; -; KEYBOARD LAYOUTS -; -KBD_US .EQU 0 ; US ENGLISH -KBD_DE .EQU 1 ; GERMAN -; -; EMULATION TYPES -; -EMUTYP_NONE .EQU 0 ; NONE -EMUTYP_TTY .EQU 1 ; TTY -EMUTYP_ANSI .EQU 2 ; ANSI -; -; WATCHDOG TYPES -; -WDOG_NONE .EQU 0 ; NONE -WDOG_EZZ80 .EQU 1 ; EASY Z80 WATCHDOG -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 -; -#IF (BIOS == BIOS_WBW) -#INCLUDE "hbios.inc" -#ENDIF -; -#IF (BIOS == BIOS_UNA) -#INCLUDE "../UBIOS/ubios.inc" -#ENDIF -; -; -; INCLUDE Z180 REGISTER DEFINITIONS -; -#IF (BIOS == BIOS_WBW) - #IF (CPUFAM == CPU_Z180) - #INCLUDE "z180.inc" - #ENDIF - #IF (CPUFAM == CPU_Z280) - #INCLUDE "z280.inc" - #ENDIF - #IF (EIPCENABLE) - #INCLUDE "eipc.inc" - #ENDIF -#ENDIF -; -; SETUP DEFAULT CPU SPEED VALUES -; -CPUKHZ .EQU CPUOSC / 1000 ; CPU FREQ IN KHZ -; -#IF (BIOS == BIOS_WBW) - #IF (CPUFAM == CPU_Z180) - #IF (Z180_CLKDIV == 0) -CPUKHZ .SET CPUKHZ / 2 ; ADJUST FOR HALF SPEED OPERATION - #ENDIF - #IF (Z180_CLKDIV == 2) -CPUKHZ .SET CPUKHZ * 2 ; ADJUST FOR DOUBLE SPEED OPERATION - #ENDIF - #ENDIF - #IF (CPUFAM == CPU_Z280) -CPUKHZ .SET CPUKHZ / 2 ; Z180 PHI IS ALWAYS 1/2 OSC - #ENDIF -#ENDIF -; -CPUMHZ .EQU CPUKHZ / 1000 ; CPU FREQ IN MHZ -; -; SYSTEM PERIODIC TIMER MODE -; -#IF (BIOS == BIOS_WBW) -; -TM_NONE .EQU 0 -TM_CTC .EQU 1 -TM_TMS .EQU 2 -TM_SIMH .EQU 3 -TM_Z180 .EQU 4 -TM_Z280 .EQU 5 -; - .ECHO "SYSTEM TIMER:" -SYSTIM .EQU TM_NONE -; - #IF (CTCENABLE & (INTMODE == 2)) - #IF (CTCTIMER) -SYSTIM .SET TM_CTC - .ECHO " CTC" - #ENDIF - #ENDIF -; - #IF (TMSENABLE & (INTMODE == 1)) - #IF (TMSTIMENABLE) -SYSTIM .SET TM_TMS - .ECHO " TMS9918/V9958" - #ENDIF - #ENDIF -; - #IF ((PLATFORM == PLT_SBC) & (INTMODE == 1)) - #IF (HTIMENABLE) -SYSTIM .SET TM_SIMH - .ECHO " SIMH" - #ENDIF - #ENDIF -; - #IF ((CPUFAM == CPU_Z180) & (INTMODE == 2)) - #IF (Z180_TIMER) -SYSTIM .SET TM_Z180 - .ECHO " Z180" - #ENDIF - #ENDIF -; - #IF ((CPUFAM == CPU_Z280) & (MEMMGR == MM_Z280)) - #IF (Z280_TIMER) -SYSTIM .SET TM_Z280 - .ECHO " Z280" - #ENDIF - #ENDIF -; - #IF SYSTIM == TM_NONE - .ECHO " NONE" - #ENDIF -; - .ECHO "\n" -; -#ENDIF -; -; MEMORY BANK CONFIGURATION -; -WBW_ROM_R .EQU 128 ; 128K ; RESERVED ROM REQUIRED FOR ROMWBW -WBW_RAM_R .EQU 256 ; 256K ; RESERVED RAM REQUIRED FOR ROMWBW -TOT_ROM_RB .EQU (PLT_ROM_R + WBW_ROM_R)/32 ; TOTAL ROM BANKS RESERVED -TOT_RAM_RB .EQU (PLT_RAM_R + WBW_RAM_R)/32 ; TOTAL RAM BANKS RESERVED -; -#IF (BIOS == BIOS_UNA) -BID_ROM0 .EQU $0000 + (PLT_ROM_R / 32) -BID_RAM0 .EQU $8000 + (PLT_RAM_R / 32) -#ENDIF -; -#IF (BIOS == BIOS_WBW) -BID_ROM0 .EQU $00 + (PLT_ROM_R / 32) -BID_RAM0 .EQU $80 + (PLT_RAM_R / 32) -#ENDIF - -BID_ROMN .EQU (BID_ROM0 + ((ROMSIZE / 32) - 1)) -BID_RAMN .EQU (BID_RAM0 + ((RAMSIZE / 32) - 1)) -; -BID_RAMD0 .EQU BID_RAM0 ; FIRST RAM DRIVE BANK ^ RAM -BID_RAMDN .EQU BID_RAMN - TOT_RAM_RB ; LAST RAM DRIVE BANK | DRIVE -; ; OS BUFFERS CP/M3? -+ THESE -; ; OS BUFFERS CP/M3? | MAKE -; ; OS BUFFERS CP/M3? | UP -; ; OS BUFFERS CP/M3? | THE -BID_AUX .EQU BID_RAMN - 3 ; AUX BANK (BPBIOS, ETC.) | 256KB -BID_BIOS .EQU BID_RAMN - 2 ; BIOS BANK | RESERVED -BID_USR .EQU BID_RAMN - 1 ; USER BANK (CP/M TPA, ETC.) | RAM -BID_COM .EQU BID_RAMN - 0 ; COMMON BANK, UPPER 32K -+ BANKS -BID_BOOT .EQU BID_ROM0 + 0 ; BOOT BANK -+ THESE MAKE -BID_IMG0 .EQU BID_ROM0 + 1 ; ROM LOADER AND FIRST IMAGES BANK | UP THE 128KB -BID_IMG1 .EQU BID_ROM0 + 2 ; SECOND IMAGES BANK | RESERVED -BID_IMG2 .EQU BID_ROM0 + 3 ; NETWORK BOOT -+ ROM BANKS -BID_ROMD0 .EQU BID_ROM0 + 4 ; FIRST ROM DRIVE BANK | ROM -BID_ROMDN .EQU BID_ROMN ; LAST ROM DRIVE BANK V DRIVE -; -; MEMORY LAYOUT -; -SYS_SIZ .EQU $3000 ; COMBINED SIZE OF SYSTEM AREA (OS + HBIOS PROXY) -HBBUF_SIZ .EQU 1024 ; INVARIANT HBIOS PHYSICAL DISK BUFFER, 1K -HBX_SIZ .EQU $200 ; HBIOS PROXY SIZE (SUBJECT TO CHANGE) -CPM_SIZ .EQU SYS_SIZ - HBX_SIZ ; NET SIZE OF ALL OS COMPONENTS (EXCLUDING HBIOS PROXY) -CCP_SIZ .EQU $800 ; INVARIANT SIZE OF CCP -BDOS_SIZ .EQU $E00 ; INVARIANT SIZE OF BDOS -CBIOS_SIZ .EQU CPM_SIZ - CCP_SIZ - BDOS_SIZ ; CBIOS IS THE REMAINDER - -MEMTOP .EQU $10000 ; INVARIANT TOP OF Z80 ADDRESSABLE MEMORY -BNKTOP .EQU $8000 ; BANK MEMORY BARRIER - -HBX_IMG .EQU $200 ; LOC OF HBX IMAGE IN HBIOS IMAGE BANK - -HBBUF_END .EQU BNKTOP ; END OF PHYSICAL DISK BUFFER IN HBIOS -HBBUF_LOC .EQU HBBUF_END - HBBUF_SIZ ; START OF PHYSICAL DISK BUFFER -HBX_END .EQU MEMTOP ; END OF HBIOS PROXY -HBX_LOC .EQU HBX_END - HBX_SIZ ; START OF HBIOS PROXY -CPM_END .EQU HBX_LOC ; END OF CPM COMPONENTS (INCLUDING CBIOS) -CPM_LOC .EQU CPM_END - CPM_SIZ ; START OF CPM COMPONENTS -CBIOS_END .EQU HBX_LOC ; END OF CBIOS -CBIOS_LOC .EQU CBIOS_END - CBIOS_SIZ ; START OF CBIOS - -CPM_ENT .EQU CBIOS_LOC ; CPM ENTRY POINT (IN CBIOS) - -CPM_IMGSIZ .EQU $3000 - -; ROM BANK 1 - -LDR_LOC .EQU $0000 -LDR_SIZ .EQU $1000 -LDR_END .EQU LDR_LOC +LDR_SIZ -LDR_IMGLOC .EQU $0000 - -MON_LOC .EQU $EE00 ; LOCATION OF MONITOR FOR RUNNING SYSTEM -MON_SIZ .EQU $1000 ; SIZE OF MONITOR BINARY IMAGE -MON_END .EQU MON_LOC + MON_SIZ ; END OF MONITOR -MON_IMGLOC .EQU LDR_IMGLOC + LDR_SIZ - -ZSYS_IMGLOC .EQU MON_IMGLOC + MON_SIZ - -CPM_IMGLOC .EQU ZSYS_IMGLOC + CPM_IMGSIZ - -; ROM BANK 2 - -FTH_LOC .EQU $0200 ; CAMEL FORTH -FTH_SIZ .EQU $1700 -FTH_END .EQU FTH_LOC + FTH_SIZ -FTH_IMGLOC .EQU $0000 - -BAS_LOC .EQU $0200 ; NASCOM BASIC -BAS_SIZ .EQU $2000 -BAS_END .EQU BAS_LOC + BAS_SIZ -BAS_IMGLOC .EQU FTH_IMGLOC + FTH_SIZ - -TBC_LOC .EQU $0A00 ; TASTYBASIC -TBC_SIZ .EQU $0900 -TBC_END .EQU TBC_LOC + TBC_SIZ -TBC_IMGLOC .EQU BAS_IMGLOC + BAS_SIZ - -GAM_LOC .EQU $0200 ; GAME 2048 -GAM_SIZ .EQU $0900 -GAM_END .EQU GAM_LOC + GAM_SIZ -GAM_IMGLOC .EQU TBC_IMGLOC + TBC_SIZ - -EGG_LOC .EQU $F000 ; EASTER EGG -EGG_SIZ .EQU $0200 -EGG_END .EQU EGG_LOC + EGG_SIZ -EGG_IMGLOC .EQU GAM_IMGLOC + GAM_SIZ - -NET_LOC .EQU $0100 ; NETWORK BOOT -NET_SIZ .EQU $1000 -NET_END .EQU NET_LOC + NET_SIZ -NET_IMGLOC .EQU EGG_IMGLOC + EGG_SIZ - -UPD_LOC .EQU $0200 ; ROM UPDATER -UPD_SIZ .EQU $0D00 -UPD_END .EQU UPD_LOC + UPD_SIZ -UPD_IMGLOC .EQU NET_IMGLOC + NET_SIZ - -USR_LOC .EQU $0200 ; USER -USR_SIZ .EQU BNKTOP - UPD_IMGLOC - UPD_SIZ -USR_END .EQU USR_LOC + USR_SIZ -USR_IMGLOC .EQU UPD_IMGLOC + UPD_SIZ - -MON_DSKY .EQU MON_LOC + (0 * 3) ; MONITOR ENTRY (DSKY) -MON_SERIAL .EQU MON_LOC + (1 * 3) ; MONITOR ENTRY (SERIAL PORT) -; -; INTERRUPT MODE 2 SLOT ASSIGNMENTS -; -#IF ((INTMODE == 2) | (INTMODE == 3)) - - #IF ((CPUFAM == CPU_Z180) | (CPUFAM == CPU_Z280)) - -; Z180-BASED SYSTEMS - -INT_INT1 .EQU 0 ; Z180 INT 1 -INT_INT2 .EQU 1 ; Z180 INT 2 -INT_TIM0 .EQU 2 ; Z180 TIMER 0 -INT_TIM1 .EQU 3 ; Z180 TIMER 1 -INT_DMA0 .EQU 4 ; Z180 DMA 0 -INT_DMA1 .EQU 5 ; Z180 DMA 1 -INT_CSIO .EQU 6 ; Z180 CSIO -INT_SER0 .EQU 7 ; Z180 SERIAL 0 -INT_SER1 .EQU 8 ; Z180 SERIAL 0 -INT_PIO0A .EQU 9 ; ZILOG PIO 0, CHANNEL A -INT_PIO0B .EQU 10 ; ZILOG PIO 0, CHANNEL B -INT_PIO1A .EQU 11 ; ZILOG PIO 1, CHANNEL A -INT_PIO1B .EQU 12 ; ZILOG PIO 1, CHANNEL B -INT_SIO0 .EQU 13 ; ZILOG SIO 0, CHANNEL A & B -INT_SIO1 .EQU 14 ; ZILOG SIO 1, CHANNEL A & B - - #ELSE - -; Z80-BASED SYSTEMS - -INT_CTC0A .EQU 0 ; ZILOG CTC 0, CHANNEL A -INT_CTC0B .EQU 1 ; ZILOG CTC 0, CHANNEL B -INT_CTC0C .EQU 2 ; ZILOG CTC 0, CHANNEL C -INT_CTC0D .EQU 3 ; ZILOG CTC 0, CHANNEL D -INT_UART0 .EQU 4 ; MBC UART 0 -INT_UART1 .EQU 5 ; MBC UART 1 -INT_SIO0 .EQU 7 ; ZILOG SIO 0, CHANNEL A & B -INT_SIO1 .EQU 8 ; ZILOG SIO 1, CHANNEL A & B -INT_PIO0A .EQU 9 ; ZILOG PIO 0, CHANNEL A -INT_PIO0B .EQU 10 ; ZILOG PIO 0, CHANNEL B -INT_PIO1A .EQU 11 ; ZILOG PIO 1, CHANNEL A -INT_PIO1B .EQU 12 ; ZILOG PIO 1, CHANNEL B - - #ENDIF - -#DEFINE IVT(INTX) HB_IVT+(INTX * 4)+1 -#DEFINE VEC(INTX) INTX*2 - -#ENDIF - -; SET DEFAULT CSIO SPEED (INTERNAL CLOCK, SLOW AS POSSIBLE) -; DIV 1280, 14KHZ @ 18MHZ CLK - -#IF (BIOS == BIOS_WBW) - #IF (CPUFAM == CPU_Z180) -Z180_CNTR_DEF .EQU $06 ; DEFAULT VALUE FOR Z180 CSIO CONFIG - #ENDIF -#ENDIF - -; -; HELPER MACROS -; -#DEFINE PRTC(C) CALL PRTCH \ .DB C ; PRINT CHARACTER C TO CONSOLE - PRTC('X') -#DEFINE PRTS(S) CALL PRTSTRD \ .TEXT S ; PRINT STRING S TO CONSOLE - PRTD("HELLO") -#DEFINE PRTX(X) CALL PRTSTRI \ .DW X ; PRINT STRING AT ADDRESS X TO CONSOLE - PRTI(STR_HELLO) -#DEFINE DEBUG(S) CALL PRTSTRD \ .TEXT S \ .TEXT "$" ; $$$$$$ PRINT STRING S TO CONSOLE - PRTD("HELLO") - NO TRAILING $ REQUIRED -; -#DEFINE XIO_PRTC(C) CALL XIO_PRTCH \ .DB C ; PRINT CHARACTER C TO CONSOLE - PRTC('X') -#DEFINE XIO_PRTS(S) CALL XIO_PRTSTRD \ .DB S ; PRINT STRING S TO CONSOLE - PRTD("HELLO") -#DEFINE XIO_PRTX(X) CALL XIO_PRTSTRI \ .DW X ; PRINT STRING AT ADDRESS X TO CONSOLE - PRTI(STR_HELLO) diff --git a/Source/Apps/Test/DMAmon/ver.inc b/Source/Apps/Test/DMAmon/ver.inc deleted file mode 100644 index 202747a4..00000000 --- a/Source/Apps/Test/DMAmon/ver.inc +++ /dev/null @@ -1,5 +0,0 @@ -#DEFINE RMJ 3 -#DEFINE RMN 1 -#DEFINE RUP 1 -#DEFINE RTP 0 -#DEFINE BIOSVER "3.1.1-pre.128" diff --git a/Source/HBIOS/ROM Layout.txt b/Source/HBIOS/ROM Layout.txt index d16479a8..c15694a3 100644 --- a/Source/HBIOS/ROM Layout.txt +++ b/Source/HBIOS/ROM Layout.txt @@ -11,7 +11,7 @@ Bank Module Start Size zsys 0x5000 0x3000 0x8000 -2 fourth 0x0000 0x1700 +2 forth 0x0000 0x1700 basic 0x1700 0x2000 tbasic 0x3700 0x0900 game 0x4000 0x0900 From 2cc15070e8af67ef42e4f4f5e14b49409280a9b7 Mon Sep 17 00:00:00 2001 From: b1ackmai1er Date: Fri, 22 Oct 2021 23:16:40 +0800 Subject: [PATCH 5/5] dmamon linux build fix --- Source/Apps/Test/DMAmon/dmamon.asm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Source/Apps/Test/DMAmon/dmamon.asm b/Source/Apps/Test/DMAmon/dmamon.asm index 7ff33ffc..5baa6be3 100644 --- a/Source/Apps/Test/DMAmon/dmamon.asm +++ b/Source/Apps/Test/DMAmon/dmamon.asm @@ -141,7 +141,7 @@ DMATST_M: ; DMATST_01: call PRTSTRD - .db "\n\TOGGLE PORT\n\r$" + .db "\n\rTOGGLE PORT\n\r$" CALL DMA_Port01 JP MENULP ; @@ -159,7 +159,7 @@ DMATST_Y: ; DMATST_R: call PRTSTRD - .db "R RESET\n\r$" + .db "\n\rRESET\n\r$" ; CALL JP MENULP ;==================================================================================================