diff --git a/Apps/Source/applvers.h b/Apps/Source/applvers.h index 9958b6a4..730953e5 100644 --- a/Apps/Source/applvers.h +++ b/Apps/Source/applvers.h @@ -5,10 +5,10 @@ #define A_RMJ 2 #define A_RMN 5 #define A_RUP 0 -#define A_RTP 10 +#define A_RTP 12 #define A_MONTH 5 -#define A_DAY 17 +#define A_DAY 24 #define A_YEAR 2013 #define A_YR 13 diff --git a/Apps/Source/applvers.lib b/Apps/Source/applvers.lib index d8173ba4..bff8bf9a 100644 --- a/Apps/Source/applvers.lib +++ b/Apps/Source/applvers.lib @@ -3,14 +3,14 @@ A$RMJ equ 2 A$RMN equ 5 A$RUP equ 0 -A$RTP equ 10 +A$RTP equ 12 A$MONTH equ 5 -A$DAY equ 17 +A$DAY equ 24 A$YEAR equ 2013 date macro -dat db ' 5/17/2013$' +dat db ' 5/24/2013$' endm serial macro diff --git a/Apps/Source/cnfgdata.h b/Apps/Source/cnfgdata.h index c718e251..eb1d15f8 100644 --- a/Apps/Source/cnfgdata.h +++ b/Apps/Source/cnfgdata.h @@ -35,6 +35,7 @@ struct CNFGDATA { unsigned char defcon; unsigned char altcon; + unsigned int conbaud; unsigned char defvda; unsigned char defemu; unsigned char termtype; @@ -49,12 +50,27 @@ struct CNFGDATA { unsigned char dskyenable; unsigned char uartenable; - unsigned char uartfifo; - unsigned char uartafc; + unsigned char uartcnt; + unsigned char uart0iob; + unsigned int uart0baud; /* actual baudrate / 10 */ + unsigned char uart0fifo; + unsigned char uart0afc; + unsigned char uart1iob; + unsigned int uart1baud; /* actual baudrate / 10 */ + unsigned char uart1fifo; + unsigned char uart1afc; + unsigned char uart2iob; + unsigned int uart2baud; /* actual baudrate / 10 */ + unsigned char uart2fifo; + unsigned char uart2afc; + unsigned char uart3iob; + unsigned int uart3baud; /* actual baudrate / 10 */ + unsigned char uart3fifo; + unsigned char uart3afc; unsigned char ascienable; - - unsigned int baudrate; /* actual baudrate / 10 */ + unsigned int asci0baud; /* actual baudrate / 10 */ + unsigned int asci1baud; /* actual baudrate / 10 */ unsigned char vduenable; diff --git a/Apps/Source/cpmname.c b/Apps/Source/cpmname.c index 33ddc1c5..c27b8855 100644 --- a/Apps/Source/cpmname.c +++ b/Apps/Source/cpmname.c @@ -94,7 +94,7 @@ pager() } } -prtcfg(pSysCfg) +prtcfg1(pSysCfg) struct SYSCFG * pSysCfg; { struct CNFGDATA * pCfg; @@ -123,8 +123,9 @@ prtcfg(pSysCfg) pager(); pager(); - printf("Default Console: %s, Alternate Console: %s", - CIOName[pCfg->defcon], CIOName[pCfg->altcon]); + printf("Console: Default=%s, Alternate=%s, Init Baudrate=%d0", + CIOName[pCfg->defcon], CIOName[pCfg->altcon], + pCfg->conbaud); pager(); printf ("Default Video Display: %s, Default Emulation: %s", VDAName[pCfg->defvda], EmuName[pCfg->defemu]); @@ -147,12 +148,35 @@ prtcfg(pSysCfg) printf("DSKY %s", fmtenable(pCfg->dskyenable)); pager(); - printf("UART %s, FIFO=%s, AFC=%s, Baudrate=%d0", - fmtenable(pCfg->uartenable), fmtbool(pCfg->uartfifo), - fmtbool(pCfg->uartafc), pCfg->baudrate); + if (pCfg->uartenable) + { + printf("UART Enabled"); + pager(); + if (pCfg->uartcnt >= 1) + printf("UART0 FIFO=%s, AFC=%s, Baudrate=%d0", + fmtbool(pCfg->uart0fifo), fmtbool(pCfg->uart0afc), pCfg->uart0baud); + if (pCfg->uartcnt >= 2) + printf("UART1 FIFO=%s, AFC=%s, Baudrate=%d0", + fmtbool(pCfg->uart1fifo), fmtbool(pCfg->uart1afc), pCfg->uart1baud); + if (pCfg->uartcnt >= 3) + printf("UART2 FIFO=%s, AFC=%s, Baudrate=%d0", + fmtbool(pCfg->uart2fifo), fmtbool(pCfg->uart2afc), pCfg->uart2baud); + if (pCfg->uartcnt >= 4) + printf("UART3 FIFO=%s, AFC=%s, Baudrate=%d0", + fmtbool(pCfg->uart3fifo), fmtbool(pCfg->uart3afc), pCfg->uart3baud); + } + else + printf("UART Disabled"); pager(); - printf("ASCI %s, Baudrate=%d0", - fmtenable(pCfg->ascienable), pCfg->baudrate); + if (pCfg->ascienable) + { + printf("ASCI Enabled"); + pager(); + printf("ASCI0, Baudrate=%d0", pCfg->asci0baud); + printf("ASCI1, Baudrate=%d0", pCfg->asci1baud); + } + else + printf("ASCI Disabled"); pager(); printf("VDU %s", fmtenable(pCfg->vduenable)); pager(); @@ -163,6 +187,16 @@ prtcfg(pSysCfg) printf("N8V %s", fmtenable(pCfg->n8venable)); pager(); pager(); +} + +prtcfg2(pSysCfg) + struct SYSCFG * pSysCfg; +{ + struct CNFGDATA * pCfg; + char buf[5]; + char buf2[5]; + + pCfg = &(pSysCfg->cnfgdata); printf("FD %s, Mode=%s, TraceLevel=%d, Media=%s/%s, Auto=%s", fmtenable(pCfg->fdenable), FDModeName[pCfg->fdmode], @@ -240,7 +274,8 @@ int main(argc,argv) return; } - prtcfg(pSysCfg); + prtcfg1(pSysCfg); + prtcfg2(pSysCfg); } /********************/ diff --git a/BuildApps.cmd b/BuildApps.cmd new file mode 100644 index 00000000..66f7cd7d --- /dev/null +++ b/BuildApps.cmd @@ -0,0 +1,8 @@ +@echo off + +setlocal + +echo Building Apps... +pushd Apps\Source +call Build.cmd +popd \ No newline at end of file diff --git a/Doc/Build.txt b/Doc/Build.txt index d15b8341..ed7f2c64 100644 --- a/Doc/Build.txt +++ b/Doc/Build.txt @@ -117,13 +117,21 @@ instead, refer to the comments in the makefile in the Source directory as an alternative to the process described here. -The build involves running a command at the command +The build involves running commands at the command prompt. From a Command Prompt window, you will need to change to the high level directory for the build. Normally, you would be changing to the RomWBW directory unless you renamed it. -To run the build and be prompted for required information, +First, you will build the support applications. These +do not require any configuration or customization -- they +adapt to any variant of RomWBW. To build the app, just +enter "BuildApps". Pay attention to the output to ensure +that there are no errors. When this step is done, you +should see the built applications (.COM files) in the +Apps\Output directory. + +To run the main build and be prompted for required information, just enter "Build". You will be prompted for the information described below and the build should run. If an error is encountered, the build should stop and display an error diff --git a/Doc/ChangeLog.txt b/Doc/ChangeLog.txt index 1602e5c0..141c8661 100644 --- a/Doc/ChangeLog.txt +++ b/Doc/ChangeLog.txt @@ -12,6 +12,12 @@ Version 2.5 - WBW: Revised System Architecture document - WBW: Added support for Dual SD board (preliminary) - WBW: Overhaul of SD driver (sd.asm) to clean up the conditionals +- WBW: Completed Douglas' N8 video driver support +- WBW: ASCI driver has been separated from UART driver +- WBW: Added ZX CPM emulator and integrated with build process +- WBW: Updated Apps built with Aztec C to use the TINY library +- WBW: Updated CPMNAME application to reflect latest config data block +- WBW: Support up to 4 UART devices Version 2.1.1 ------------- diff --git a/Doc/DesignNotes-1.4.txt b/Doc/DesignNotes-1.4.txt deleted file mode 100644 index 155e511e..00000000 --- a/Doc/DesignNotes-1.4.txt +++ /dev/null @@ -1,16 +0,0 @@ -Design Notes for 1.4 - - -12/25/2011 DWG - Logical Unit enhancement for block drivers - -The previous version implemented Logical Unit functionality -by poking an offset word into a private data structure in -PPIDE_DATA.ASM. - -In order to make the Logical Unit functionality more generic, -Wayne suggested adding the appropriate data items to the end -of the Disk Parameter Header data structure (because there is -one each for each drive). - -The added items consist of a Logical Unit enhancement signature -which is two bytes "LU", and several subsequent items including -a default slice number and status. diff --git a/Doc/S100_Project_Board_List.xlsx b/Doc/S100_Project_Board_List.xlsx deleted file mode 100644 index daee62bf..00000000 Binary files a/Doc/S100_Project_Board_List.xlsx and /dev/null differ diff --git a/ReadMe.txt b/ReadMe.txt index 48d71094..b4257b64 100644 --- a/ReadMe.txt +++ b/ReadMe.txt @@ -8,8 +8,8 @@ Builders: Wayne Warthen (wwarthen@gmail.com) Douglas Goodall (douglas_goodall@mac.com) David Giles (vk5dg@internode.on.net) -Updated: 2013-05-16 -Version: 2.5 Beta 9 +Updated: 2013-05-24 +Version: 2.5 Beta 12 This is an adaptation of CP/M-80 2.2 and ZSDOS/ZCPR targeting ROMs for all N8VEM Z80 hardware variations @@ -53,6 +53,11 @@ Refer to the file called RomList.txt for a complete list of the ROMs that are included and the required hardware configuration that they support. +Upgrading from Previous Versions +-------------------------------- + + + CPU Speed & Baud Rate --------------------- @@ -119,6 +124,26 @@ Please refer to the Build.txt file in the Doc directory for detailed instructions for building a custom ROM. If you are using Linux, also read the LinuxBuild.txt file. +Formatting Media +---------------- + + + +Creating Bootable Media +----------------------- + + + +Using Slices on Mass Storage Devices +------------------------------------ + + + +Managing Console I/O +-------------------- + + + Notes ----- diff --git a/RomDsk/cfg_n8vem_ci/1200.COM b/RomDsk/cfg_n8vem_ci/1200.COM new file mode 100644 index 00000000..d00960b0 Binary files /dev/null and b/RomDsk/cfg_n8vem_ci/1200.COM differ diff --git a/RomDsk/cfg_n8vem_ci/38400.COM b/RomDsk/cfg_n8vem_ci/38400.COM new file mode 100644 index 00000000..6d81bc17 Binary files /dev/null and b/RomDsk/cfg_n8vem_ci/38400.COM differ diff --git a/RomDsk/cfg_n8vem_ci/9600.COM b/RomDsk/cfg_n8vem_ci/9600.COM new file mode 100644 index 00000000..4727badf Binary files /dev/null and b/RomDsk/cfg_n8vem_ci/9600.COM differ diff --git a/RomDsk/cfg_n8vem_ci/FLASHZ.COM b/RomDsk/cfg_n8vem_ci/FLASHZ.COM new file mode 100644 index 00000000..853ae7d9 Binary files /dev/null and b/RomDsk/cfg_n8vem_ci/FLASHZ.COM differ diff --git a/RomDsk/cfg_n8vem_ci/LDTIM.COM b/RomDsk/cfg_n8vem_ci/LDTIM.COM new file mode 100644 index 00000000..1b3e2d10 Binary files /dev/null and b/RomDsk/cfg_n8vem_ci/LDTIM.COM differ diff --git a/RomDsk/cfg_n8vem_ci/RTC.COM b/RomDsk/cfg_n8vem_ci/RTC.COM new file mode 100644 index 00000000..da0aebc1 Binary files /dev/null and b/RomDsk/cfg_n8vem_ci/RTC.COM differ diff --git a/RomDsk/cfg_n8vem_ci/T5.COM b/RomDsk/cfg_n8vem_ci/T5.COM new file mode 100644 index 00000000..ab55d759 Binary files /dev/null and b/RomDsk/cfg_n8vem_ci/T5.COM differ diff --git a/RomDsk/cfg_n8vem_ci/VT3.COM b/RomDsk/cfg_n8vem_ci/VT3.COM new file mode 100644 index 00000000..6290a6d3 Binary files /dev/null and b/RomDsk/cfg_n8vem_ci/VT3.COM differ diff --git a/RomDsk/cfg_n8vem_ci/XM.COM b/RomDsk/cfg_n8vem_ci/XM.COM new file mode 100644 index 00000000..abcc6828 Binary files /dev/null and b/RomDsk/cfg_n8vem_ci/XM.COM differ diff --git a/RomDsk/cfg_n8vem_ci/XM5.COM b/RomDsk/cfg_n8vem_ci/XM5.COM new file mode 100644 index 00000000..8ea2b661 Binary files /dev/null and b/RomDsk/cfg_n8vem_ci/XM5.COM differ diff --git a/Source/asci.asm b/Source/asci.asm index 437e2470..30e7c3d1 100644 --- a/Source/asci.asm +++ b/Source/asci.asm @@ -41,7 +41,7 @@ ASCI_INIT: LD A,CPU_RDR0 CALL PRTHEXBYTE PRTS(" BAUD=$") - LD HL,BAUDRATE / 10 + LD HL,ASCI0BAUD / 10 CALL PRTDEC PRTC('0') @@ -61,7 +61,7 @@ ASCI_INIT: LD A,CPU_RDR1 CALL PRTHEXBYTE PRTS(" BAUD=$") - LD HL,BAUDRATE / 10 + LD HL,ASCI1BAUD / 10 CALL PRTDEC PRTC('0') diff --git a/Source/cbios.asm b/Source/cbios.asm index a63a280c..bae57f5d 100644 --- a/Source/cbios.asm +++ b/Source/cbios.asm @@ -1954,6 +1954,14 @@ LD_UL1 .EQU TTYDEV ; #IF (PLATFORM == PLT_N8) LD_UC1 .SET CIODEV_ASCI + 1 +LD_PTR .SET CIODEV_ASCI + 1 +LD_PTP .SET CIODEV_ASCI + 1 +#ENDIF +; +#IF (UARTENABLE & (UARTCNT >= 2)) +LD_UC1 .SET CIODEV_UART + 1 +LD_PTR .SET CIODEV_UART + 1 +LD_PTP .SET CIODEV_UART + 1 #ENDIF ; #IF (VDUENABLE) @@ -1997,15 +2005,15 @@ CIO_MAP: ;================================================================================================== ; ; A 512 AREA IS ALLOCATED AT FD00 AND IS USED FOR TWO PURPOSES: -; 1) AS THE DISK SECTOR BUFFER AFTER CBIOS COLD INIT IS DONE +; 1) AS THE DISK SECTOR BUFFER AFTER CBIOS COLD INIT IS DONE (512 BYTES) ; 2) FOR CBIOS INIT CODE THAT CAN BE DISCARDED AFTER INITIALIZTION: -; A) SYSTEM CONFIGURATION DATA BUFFER -; B) CBIOS INIT CODE THAT CAN BE DISCARDED AFTER INIT +; A) SYSTEM CONFIGURATION DATA BUFFER (256 BYTES) +; B) CBIOS INIT CODE THAT CAN BE DISCARDED AFTER INIT (256 BYTES) ; .FILL 0FD00H - $,00H ; MAKE SURE SEC/CFGBUF STARTS AT FD00 ; SECBUF: ; START OF 512 BYTE DISK SECTOR -CFGBUF: ; START OF 256 BYTE CONFIG BUFFER +CFGBUF: ; ALSO USED FOR CONFIG BUFFER .FILL 256,0 ; INIT: diff --git a/Source/config_n8_2312.asm b/Source/config_n8_2312.asm index b4ca1ba1..a09dadf8 100644 --- a/Source/config_n8_2312.asm +++ b/Source/config_n8_2312.asm @@ -9,8 +9,10 @@ CPUFREQ .EQU 20 ; IN MHZ, USED TO COMPUTE DELAY FACTORS ; DEFCON .EQU CIODEV_ASCI ; DEFAULT CONSOLE DEVICE (LOADER AND MONITOR): CIODEV_UART, DIODEV_CRT, CIODEV_PRPCON, CIODEV_PPPCON ALTCON .EQU DEFCON ; ALT CONSOLE DEVICE (USED WHEN CONFIG JUMPER SHORTED) +CONBAUD .EQU 38400 ; BAUDRATE FOR CONSOLE DURING HARDWARE INIT DEFVDA .EQU VDADEV_N8V ; DEFAULT VDA DEVICE (VDADEV_NONE, VDADEV_VDU, VDADEV_CVDU, VDADEV_N8V, VDADEV_UPD7220) DEFEMU .EQU EMUTYP_ANSI ; DEFAULT VDA EMULATION (EMUTYP_TTY, EMUTYP_ANSI, ...) +TERMTYPE .EQU TERM_ANSI ; TERM_TTY=0, TERM_ANSI=1, TERM_WYSE=2 ; RAMSIZE .EQU 512 ; SIZE OF RAM IN KB, MUST MATCH YOUR HARDWARE!!! CLRRAMDISK .EQU CLR_AUTO ; CLR_ALWAYS, CLR_NEVER, CLR_AUTO (CLEAR IF INVALID DIR AREA) @@ -20,10 +22,11 @@ DSKMAP .EQU DM_RAM ; DM_ROM, DM_RAM, DM_FD, DM_IDE, DM_PPIDE, DM_SD, DM_PRPSD, DSKYENABLE .EQU FALSE ; TRUE FOR DSKY SUPPORT (DO NOT COMBINE WITH PPIDE) ; UARTENABLE .EQU FALSE ; TRUE FOR UART SUPPORT (ALMOST ALWAYS WANT THIS TO BE TRUE) -UARTFIFO .EQU TRUE ; TRUE ENABLES UART FIFO (16550 ASSUMED, N8VEM AND ZETA ONLY) -UARTAFC .EQU FALSE ; TRUE ENABLES AUTO FLOW CONTROL (YOUR TERMINAL/UART MUST SUPPORT RTS/CTS FLOW CONTROL!!!) +UARTCNT .EQU 0 ; NUMBER OF UARTS ; ASCIENABLE .EQU TRUE ; TRUE FOR Z180 ASCI SUPPORT +ASCI0BAUD .EQU 38400 ; ASCI0 BAUDRATE (IMPLEMENTED BY Z180_CNTLB0) +ASCI1BAUD .EQU 38400 ; ASCI1 BAUDRATE (IMPLEMENTED BY Z180_CNTLB1) ; VDUENABLE .EQU FALSE ; TRUE FOR VDU BOARD SUPPORT CVDUENABLE .EQU FALSE ; TRUE FOR CVDU BOARD SUPPORT @@ -90,9 +93,6 @@ BOOTTYPE .EQU BT_MENU ; BT_MENU (WAIT FOR KEYPRESS), BT_AUTO (BOOT_DEFAULT AFTE BOOT_TIMEOUT .EQU 20 ; APPROX TIMEOUT IN SECONDS FOR AUTOBOOT, 0 FOR IMMEDIATE BOOT_DEFAULT .EQU 'R' ; SELECTION TO INVOKE AT TIMEOUT ; -BAUDRATE .EQU 38400 ; IN BPS: 1200, 9600, 38400, ..., 115200 -TERMTYPE .EQU TERM_ANSI ; TERM_TTY=0, TERM_ANSI=1, TERM_WYSE=2 -; Z180_CLKDIV .EQU 1 ; 0=XTAL/2, 1=XTAL/1 Z180_MEMWAIT .EQU 0 ; MEMORY WAIT STATES TO INSERT (0-3) Z180_IOWAIT .EQU 3 ; IO WAIT STATES TO INSERT (0-3) diff --git a/Source/config_n8_2511.asm b/Source/config_n8_2511.asm index d68b57d8..9df9cdf5 100644 --- a/Source/config_n8_2511.asm +++ b/Source/config_n8_2511.asm @@ -9,8 +9,10 @@ CPUFREQ .EQU 20 ; IN MHZ, USED TO COMPUTE DELAY FACTORS ; DEFCON .EQU CIODEV_ASCI ; DEFAULT CONSOLE DEVICE (LOADER AND MONITOR): CIODEV_UART, DIODEV_CRT, CIODEV_PRPCON, CIODEV_PPPCON ALTCON .EQU DEFCON ; ALT CONSOLE DEVICE (USED WHEN CONFIG JUMPER SHORTED) +CONBAUD .EQU 38400 ; BAUDRATE FOR CONSOLE DURING HARDWARE INIT DEFVDA .EQU VDADEV_N8V ; DEFAULT VDA DEVICE (VDADEV_NONE, VDADEV_VDU, VDADEV_CVDU, VDADEV_N8V, VDADEV_UPD7220) DEFEMU .EQU EMUTYP_ANSI ; DEFAULT VDA EMULATION (EMUTYP_TTY, EMUTYP_ANSI, ...) +TERMTYPE .EQU TERM_ANSI ; TERM_TTY=0, TERM_ANSI=1, TERM_WYSE=2 ; RAMSIZE .EQU 512 ; SIZE OF RAM IN KB, MUST MATCH YOUR HARDWARE!!! CLRRAMDISK .EQU CLR_AUTO ; CLR_ALWAYS, CLR_NEVER, CLR_AUTO (CLEAR IF INVALID DIR AREA) @@ -20,10 +22,11 @@ DSKMAP .EQU DM_RAM ; DM_ROM, DM_RAM, DM_FD, DM_IDE, DM_PPIDE, DM_SD, DM_PRPSD, DSKYENABLE .EQU FALSE ; TRUE FOR DSKY SUPPORT (DO NOT COMBINE WITH PPIDE) ; UARTENABLE .EQU FALSE ; TRUE FOR UART SUPPORT (ALMOST ALWAYS WANT THIS TO BE TRUE) -UARTFIFO .EQU TRUE ; TRUE ENABLES UART FIFO (16550 ASSUMED, N8VEM AND ZETA ONLY) -UARTAFC .EQU FALSE ; TRUE ENABLES AUTO FLOW CONTROL (YOUR TERMINAL/UART MUST SUPPORT RTS/CTS FLOW CONTROL!!!) +UARTCNT .EQU 0 ; NUMBER OF UARTS ; ASCIENABLE .EQU TRUE ; TRUE FOR Z180 ASCI SUPPORT +ASCI0BAUD .EQU 38400 ; ASCI0 BAUDRATE (IMPLEMENTED BY Z180_CNTLB0) +ASCI1BAUD .EQU 38400 ; ASCI1 BAUDRATE (IMPLEMENTED BY Z180_CNTLB1) ; VDUENABLE .EQU FALSE ; TRUE FOR VDU BOARD SUPPORT CVDUENABLE .EQU FALSE ; TRUE FOR CVDU BOARD SUPPORT @@ -90,9 +93,6 @@ BOOTTYPE .EQU BT_MENU ; BT_MENU (WAIT FOR KEYPRESS), BT_AUTO (BOOT_DEFAULT AFTE BOOT_TIMEOUT .EQU 20 ; APPROX TIMEOUT IN SECONDS FOR AUTOBOOT, 0 FOR IMMEDIATE BOOT_DEFAULT .EQU 'R' ; SELECTION TO INVOKE AT TIMEOUT ; -BAUDRATE .EQU 38400 ; IN BPS: 1200, 9600, 38400, ..., 115200 -TERMTYPE .EQU TERM_ANSI ; TERM_TTY=0, TERM_ANSI=1, TERM_WYSE=2 -; Z180_CLKDIV .EQU 1 ; 0=XTAL/2, 1=XTAL/1 Z180_MEMWAIT .EQU 0 ; MEMORY WAIT STATES TO INSERT (0-3) Z180_IOWAIT .EQU 3 ; IO WAIT STATES TO INSERT (0-3) diff --git a/Source/config_n8vem_ci.asm b/Source/config_n8vem_ci.asm new file mode 100644 index 00000000..df910d33 --- /dev/null +++ b/Source/config_n8vem_ci.asm @@ -0,0 +1,102 @@ +; +;================================================================================================== +; ROMWBW 2.X CONFIGURATION FOR N8VEM SBC +;================================================================================================== +; +; BUILD CONFIGURATION OPTIONS +; +CPUFREQ .EQU 8 ; IN MHZ, USED TO COMPUTE DELAY FACTORS +; +DEFCON .EQU CIODEV_UART ; DEFAULT CONSOLE DEVICE (LOADER AND MONITOR): CIODEV_UART, DIODEV_CRT, CIODEV_PRPCON, CIODEV_PPPCON +ALTCON .EQU DEFCON ; ALT CONSOLE DEVICE (USED WHEN CONFIG JUMPER SHORTED) +CONBAUD .EQU 38400 ; BAUDRATE FOR CONSOLE DURING HARDWARE INIT +DEFVDA .EQU VDADEV_NONE ; DEFAULT VDA DEVICE (VDADEV_NONE, VDADEV_VDU, VDADEV_CVDU, VDADEV_N8V, VDADEV_UPD7220) +DEFEMU .EQU EMUTYP_TTY ; DEFAULT VDA EMULATION (EMUTYP_TTY, EMUTYP_ANSI, ...) +TERMTYPE .EQU TERM_ANSI ; TERM_TTY=0, TERM_ANSI=1, TERM_WYSE=2 +; +RAMSIZE .EQU 512 ; SIZE OF RAM IN KB, MUST MATCH YOUR HARDWARE!!! +CLRRAMDISK .EQU CLR_AUTO ; CLR_ALWAYS, CLR_NEVER, CLR_AUTO (CLEAR IF INVALID DIR AREA) +; +DSKMAP .EQU DM_RAM ; DM_ROM, DM_RAM, DM_FD, DM_IDE, DM_PPIDE, DM_SD, DM_PRPSD, DM_PPPSD +; +DSKYENABLE .EQU FALSE ; TRUE FOR DSKY SUPPORT (DO NOT COMBINE WITH PPIDE) +; +UARTENABLE .EQU TRUE ; TRUE FOR UART SUPPORT (ALMOST ALWAYS WANT THIS TO BE TRUE) +UARTCNT .EQU 2 ; NUMBER OF UARTS +UART0IOB .EQU $68 ; UART0 IOBASE +UART0BAUD .EQU CONBAUD ; UART0 BAUDRATE +UART0FIFO .EQU TRUE ; UART0 TRUE ENABLES UART FIFO (16550 ASSUMED, N8VEM AND ZETA ONLY) +UART0AFC .EQU FALSE ; UART0 TRUE ENABLES AUTO FLOW CONTROL (YOUR TERMINAL/UART MUST SUPPORT RTS/CTS FLOW CONTROL!!!) +UART1IOB .EQU $80 ; UART1 IOBASE IS $80 FOR CASSETTE INTERFACE +UART1BAUD .EQU 300 ; UART1 BAUDRATE IS 300 FOR CASSETTE INTERFACE +UART1FIFO .EQU TRUE ; UART1 FIFO ENABLED FOR CASSETTE INTERFACE +UART1AFC .EQU FALSE ; UART1 AUTO FLOW CONTROL DISABLED FOR CASSETTE INTERFACE +; +ASCIENABLE .EQU FALSE ; TRUE FOR Z180 ASCI SUPPORT +ASCI0BAUD .EQU 38400 ; ASCI0 BAUDRATE (IMPLEMENTED BY Z180_CNTLB0) +ASCI1BAUD .EQU 38400 ; ASCI1 BAUDRATE (IMPLEMENTED BY Z180_CNTLB1) +; +VDUENABLE .EQU FALSE ; TRUE FOR VDU BOARD SUPPORT +CVDUENABLE .EQU FALSE ; TRUE FOR CVDU BOARD SUPPORT +UPD7220ENABLE .EQU FALSE ; TRUE FOR uPD7220 BOARD SUPPORT +N8VENABLE .EQU FALSE ; TRUE FOR N8 (TMS9918) VIDEO/KBD SUPPORT +; +DEFIOBYTE .EQU $00 ; DEFAULT INITIAL VALUE FOR CP/M IOBYTE, $00=TTY, $01=CRT (MUST HAVE CRT HARDWARE) +ALTIOBYTE .EQU DEFIOBYTE ; ALT INITIAL VALUE (USED WHEN CONFIG JUMPER SHORTED) +WRTCACHE .EQU TRUE ; ENABLE WRITE CACHING IN CBIOS (DE)BLOCKING ALGORITHM +DSKTRACE .EQU FALSE ; ENABLE TRACING OF CBIOS DISK FUNCTION CALLS +; +FDENABLE .EQU FALSE ; TRUE FOR FLOPPY SUPPORT +FDMODE .EQU FDMODE_DIO ; FDMODE_DIO, FDMODE_ZETA, FDMODE_DIDE, FDMODE_N8, FDMODE_DIO3 +FDTRACE .EQU 1 ; 0=SILENT, 1=FATAL ERRORS, 2=ALL ERRORS, 3=EVERYTHING (ONLY RELEVANT IF FDENABLE = TRUE) +FDMEDIA .EQU FDM144 ; FDM720, FDM144, FDM360, FDM120 (ONLY RELEVANT IF FDENABLE = TRUE) +FDMEDIAALT .EQU FDM720 ; ALTERNATE MEDIA TO TRY, SAME CHOICES AS ABOVE (ONLY RELEVANT IF FDMAUTO = TRUE) +FDMAUTO .EQU TRUE ; SELECT BETWEEN MEDIA OPTS ABOVE AUTOMATICALLY +; +IDEENABLE .EQU FALSE ; TRUE FOR IDE SUPPORT +IDEMODE .EQU IDEMODE_DIO ; IDEMODE_DIO, IDEMODE_DIDE +IDETRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF IDEENABLE = TRUE) +IDE8BIT .EQU FALSE ; USE IDE 8BIT TRANSFERS (PROBABLY ONLY WORKS FOR CF CARDS!) +IDECAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB) +; +PPIDEENABLE .EQU FALSE ; TRUE FOR PPIDE SUPPORT (DO NOT COMBINE WITH DSKYENABLE) +PPIDEMODE .EQU PPIDEMODE_STD ; PPIDEMODE_STD, PPIDEMODE_DIO3 +PPIDETRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF PPIDEENABLE = TRUE) +PPIDE8BIT .EQU FALSE ; USE IDE 8BIT TRANSFERS (PROBABLY ONLY WORKS FOR CF CARDS!) +PPIDECAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB) +PPIDESLOW .EQU FALSE ; ADD DELAYS TO HELP PROBLEMATIC HARDWARE (TRY THIS IF PPIDE IS UNRELIABLE) +; +SDENABLE .EQU FALSE ; TRUE FOR SD SUPPORT +SDMODE .EQU SDMODE_JUHA ; SDMODE_JUHA, SDMODE_CSIO, SDMODE_UART, SDMODE_PPI, SDMODE_DSD +SDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF IDEENABLE = TRUE) +SDCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB) +SDCSIOFAST .EQU FALSE ; TABLE-DRIVEN BIT INVERTER +; +PRPENABLE .EQU FALSE ; TRUE FOR PROPIO SD SUPPORT (FOR N8VEM PROPIO ONLY!) +PRPSDENABLE .EQU TRUE ; TRUE FOR PROPIO SD SUPPORT (FOR N8VEM PROPIO ONLY!) +PRPSDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF PRPSDENABLE = TRUE) +PRPSDCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB) +PRPCONENABLE .EQU TRUE ; TRUE FOR PROPIO CONSOLE SUPPORT (PS/2 KBD & VGA VIDEO) +; +PPPENABLE .EQU FALSE ; TRUE FOR PARPORTPROP SUPPORT +PPPSDENABLE .EQU TRUE ; TRUE FOR PROPIO SD SUPPORT (FOR N8VEM PROPIO ONLY!) +PPPSDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF PPPENABLE = TRUE) +PPPSDCAPACITY .EQU 64 ; CAPACITY OF PPP SD DEVICE (IN MB) +PPPCONENABLE .EQU TRUE ; TRUE FOR PROPIO CONSOLE SUPPORT (PS/2 KBD & VGA VIDEO) +; +HDSKENABLE .EQU FALSE ; TRUE FOR SIMH HDSK SUPPORT +HDSKTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF IDEENABLE = TRUE) +HDSKCAPACITY .EQU 64 ; CAPACITY OF DEVICE (IN MB) +; +PPKENABLE .EQU FALSE ; TRUE FOR PARALLEL PORT KEYBOARD +PPKTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF PPKENABLE = TRUE) +KBDENABLE .EQU FALSE ; TRUE FOR PS/2 KEYBOARD ON I8242 +KBDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF KBDENABLE = TRUE) +; +TTYENABLE .EQU FALSE ; INCLUDE TTY EMULATION SUPPORT +ANSIENABLE .EQU FALSE ; INCLUDE ANSI EMULATION SUPPORT +ANSITRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF ANSIENABLE = TRUE) +; +BOOTTYPE .EQU BT_MENU ; BT_MENU (WAIT FOR KEYPRESS), BT_AUTO (BOOT_DEFAULT AFTER BOOT_TIMEOUT SECS) +BOOT_TIMEOUT .EQU 20 ; APPROX TIMEOUT IN SECONDS FOR AUTOBOOT, 0 FOR IMMEDIATE +BOOT_DEFAULT .EQU 'R' ; SELECTION TO INVOKE AT TIMEOUT diff --git a/Source/config_n8vem_cvdu.asm b/Source/config_n8vem_cvdu.asm index 3e8a6d0e..e370653d 100644 --- a/Source/config_n8vem_cvdu.asm +++ b/Source/config_n8vem_cvdu.asm @@ -9,8 +9,10 @@ CPUFREQ .EQU 8 ; IN MHZ, USED TO COMPUTE DELAY FACTORS ; DEFCON .EQU CIODEV_UART ; DEFAULT CONSOLE DEVICE (LOADER AND MONITOR): CIODEV_UART, DIODEV_CRT, CIODEV_PRPCON, CIODEV_PPPCON ALTCON .EQU DEFCON ; ALT CONSOLE DEVICE (USED WHEN CONFIG JUMPER SHORTED) +CONBAUD .EQU 38400 ; BAUDRATE FOR CONSOLE DURING HARDWARE INIT DEFVDA .EQU VDADEV_CVDU ; DEFAULT VDA DEVICE (VDADEV_NONE, VDADEV_VDU, VDADEV_CVDU, VDADEV_N8V, VDADEV_UPD7220) DEFEMU .EQU EMUTYP_ANSI ; DEFAULT VDA EMULATION (EMUTYP_TTY, EMUTYP_ANSI, ...) +TERMTYPE .EQU TERM_ANSI ; TERM_TTY=0, TERM_ANSI=1, TERM_WYSE=2 ; RAMSIZE .EQU 512 ; SIZE OF RAM IN KB, MUST MATCH YOUR HARDWARE!!! CLRRAMDISK .EQU CLR_AUTO ; CLR_ALWAYS, CLR_NEVER, CLR_AUTO (CLEAR IF INVALID DIR AREA) @@ -20,10 +22,15 @@ DSKMAP .EQU DM_RAM ; DM_ROM, DM_RAM, DM_FD, DM_IDE, DM_PPIDE, DM_SD, DM_PRPSD, DSKYENABLE .EQU FALSE ; TRUE FOR DSKY SUPPORT (DO NOT COMBINE WITH PPIDE) ; UARTENABLE .EQU TRUE ; TRUE FOR UART SUPPORT (ALMOST ALWAYS WANT THIS TO BE TRUE) -UARTFIFO .EQU TRUE ; TRUE ENABLES UART FIFO (16550 ASSUMED, N8VEM AND ZETA ONLY) -UARTAFC .EQU FALSE ; TRUE ENABLES AUTO FLOW CONTROL (YOUR TERMINAL/UART MUST SUPPORT RTS/CTS FLOW CONTROL!!!) +UARTCNT .EQU 1 ; NUMBER OF UARTS +UART0IOB .EQU $68 ; UART0 IOBASE +UART0BAUD .EQU CONBAUD ; UART0 BAUDRATE +UART0FIFO .EQU TRUE ; UART0 TRUE ENABLES UART FIFO (16550 ASSUMED, N8VEM AND ZETA ONLY) +UART0AFC .EQU FALSE ; UART0 TRUE ENABLES AUTO FLOW CONTROL (YOUR TERMINAL/UART MUST SUPPORT RTS/CTS FLOW CONTROL!!!) ; ASCIENABLE .EQU FALSE ; TRUE FOR Z180 ASCI SUPPORT +ASCI0BAUD .EQU 38400 ; ASCI0 BAUDRATE (IMPLEMENTED BY Z180_CNTLB0) +ASCI1BAUD .EQU 38400 ; ASCI1 BAUDRATE (IMPLEMENTED BY Z180_CNTLB1) ; VDUENABLE .EQU FALSE ; TRUE FOR VDU BOARD SUPPORT CVDUENABLE .EQU TRUE ; TRUE FOR CVDU BOARD SUPPORT @@ -89,6 +96,3 @@ ANSITRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF ANSIENABL BOOTTYPE .EQU BT_MENU ; BT_MENU (WAIT FOR KEYPRESS), BT_AUTO (BOOT_DEFAULT AFTER BOOT_TIMEOUT SECS) BOOT_TIMEOUT .EQU 20 ; APPROX TIMEOUT IN SECONDS FOR AUTOBOOT, 0 FOR IMMEDIATE BOOT_DEFAULT .EQU 'R' ; SELECTION TO INVOKE AT TIMEOUT -; -BAUDRATE .EQU 38400 ; IN BPS: 1200, 9600, 38400, ..., 115200 -TERMTYPE .EQU TERM_ANSI ; TERM_TTY=0, TERM_ANSI=1, TERM_WYSE=2 diff --git a/Source/config_n8vem_dide.asm b/Source/config_n8vem_dide.asm index 3634ca46..860e8709 100644 --- a/Source/config_n8vem_dide.asm +++ b/Source/config_n8vem_dide.asm @@ -9,8 +9,10 @@ CPUFREQ .EQU 8 ; IN MHZ, USED TO COMPUTE DELAY FACTORS ; DEFCON .EQU CIODEV_UART ; DEFAULT CONSOLE DEVICE (LOADER AND MONITOR): CIODEV_UART, DIODEV_CRT, CIODEV_PRPCON, CIODEV_PPPCON ALTCON .EQU DEFCON ; ALT CONSOLE DEVICE (USED WHEN CONFIG JUMPER SHORTED) +CONBAUD .EQU 38400 ; BAUDRATE FOR CONSOLE DURING HARDWARE INIT DEFVDA .EQU VDADEV_NONE ; DEFAULT VDA DEVICE (VDADEV_NONE, VDADEV_VDU, VDADEV_CVDU, VDADEV_N8V, VDADEV_UPD7220) DEFEMU .EQU EMUTYP_TTY ; DEFAULT VDA EMULATION (EMUTYP_TTY, EMUTYP_ANSI, ...) +TERMTYPE .EQU TERM_ANSI ; TERM_TTY=0, TERM_ANSI=1, TERM_WYSE=2 ; RAMSIZE .EQU 512 ; SIZE OF RAM IN KB, MUST MATCH YOUR HARDWARE!!! CLRRAMDISK .EQU CLR_AUTO ; CLR_ALWAYS, CLR_NEVER, CLR_AUTO (CLEAR IF INVALID DIR AREA) @@ -20,10 +22,15 @@ DSKMAP .EQU DM_RAM ; DM_ROM, DM_RAM, DM_FD, DM_IDE, DM_PPIDE, DM_SD, DM_PRPSD, DSKYENABLE .EQU FALSE ; TRUE FOR DSKY SUPPORT (DO NOT COMBINE WITH PPIDE) ; UARTENABLE .EQU TRUE ; TRUE FOR UART SUPPORT (ALMOST ALWAYS WANT THIS TO BE TRUE) -UARTFIFO .EQU TRUE ; TRUE ENABLES UART FIFO (16550 ASSUMED, N8VEM AND ZETA ONLY) -UARTAFC .EQU FALSE ; TRUE ENABLES AUTO FLOW CONTROL (YOUR TERMINAL/UART MUST SUPPORT RTS/CTS FLOW CONTROL!!!) +UARTCNT .EQU 1 ; NUMBER OF UARTS +UART0IOB .EQU $68 ; UART0 IOBASE +UART0BAUD .EQU CONBAUD ; UART0 BAUDRATE +UART0FIFO .EQU TRUE ; UART0 TRUE ENABLES UART FIFO (16550 ASSUMED, N8VEM AND ZETA ONLY) +UART0AFC .EQU FALSE ; UART0 TRUE ENABLES AUTO FLOW CONTROL (YOUR TERMINAL/UART MUST SUPPORT RTS/CTS FLOW CONTROL!!!) ; ASCIENABLE .EQU FALSE ; TRUE FOR Z180 ASCI SUPPORT +ASCI0BAUD .EQU 38400 ; ASCI0 BAUDRATE (IMPLEMENTED BY Z180_CNTLB0) +ASCI1BAUD .EQU 38400 ; ASCI1 BAUDRATE (IMPLEMENTED BY Z180_CNTLB1) ; VDUENABLE .EQU FALSE ; TRUE FOR VDU BOARD SUPPORT CVDUENABLE .EQU FALSE ; TRUE FOR CVDU BOARD SUPPORT @@ -89,6 +96,3 @@ ANSITRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF ANSIENABL BOOTTYPE .EQU BT_MENU ; BT_MENU (WAIT FOR KEYPRESS), BT_AUTO (BOOT_DEFAULT AFTER BOOT_TIMEOUT SECS) BOOT_TIMEOUT .EQU 20 ; APPROX TIMEOUT IN SECONDS FOR AUTOBOOT, 0 FOR IMMEDIATE BOOT_DEFAULT .EQU 'R' ; SELECTION TO INVOKE AT TIMEOUT -; -BAUDRATE .EQU 38400 ; IN BPS: 1200, 9600, 38400, ..., 115200 -TERMTYPE .EQU TERM_ANSI ; TERM_TTY=0, TERM_ANSI=1, TERM_WYSE=2 diff --git a/Source/config_n8vem_diskio.asm b/Source/config_n8vem_diskio.asm index 826393a7..4d58b1f5 100644 --- a/Source/config_n8vem_diskio.asm +++ b/Source/config_n8vem_diskio.asm @@ -9,8 +9,10 @@ CPUFREQ .EQU 8 ; IN MHZ, USED TO COMPUTE DELAY FACTORS ; DEFCON .EQU CIODEV_UART ; DEFAULT CONSOLE DEVICE (LOADER AND MONITOR): CIODEV_UART, DIODEV_CRT, CIODEV_PRPCON, CIODEV_PPPCON ALTCON .EQU DEFCON ; ALT CONSOLE DEVICE (USED WHEN CONFIG JUMPER SHORTED) +CONBAUD .EQU 38400 ; BAUDRATE FOR CONSOLE DURING HARDWARE INIT DEFVDA .EQU VDADEV_NONE ; DEFAULT VDA DEVICE (VDADEV_NONE, VDADEV_VDU, VDADEV_CVDU, VDADEV_N8V, VDADEV_UPD7220) DEFEMU .EQU EMUTYP_TTY ; DEFAULT VDA EMULATION (EMUTYP_TTY, EMUTYP_ANSI, ...) +TERMTYPE .EQU TERM_ANSI ; TERM_TTY=0, TERM_ANSI=1, TERM_WYSE=2 ; RAMSIZE .EQU 512 ; SIZE OF RAM IN KB, MUST MATCH YOUR HARDWARE!!! CLRRAMDISK .EQU CLR_AUTO ; CLR_ALWAYS, CLR_NEVER, CLR_AUTO (CLEAR IF INVALID DIR AREA) @@ -20,10 +22,15 @@ DSKMAP .EQU DM_RAM ; DM_ROM, DM_RAM, DM_FD, DM_IDE, DM_PPIDE, DM_SD, DM_PRPSD, DSKYENABLE .EQU FALSE ; TRUE FOR DSKY SUPPORT (DO NOT COMBINE WITH PPIDE) ; UARTENABLE .EQU TRUE ; TRUE FOR UART SUPPORT (ALMOST ALWAYS WANT THIS TO BE TRUE) -UARTFIFO .EQU TRUE ; TRUE ENABLES UART FIFO (16550 ASSUMED, N8VEM AND ZETA ONLY) -UARTAFC .EQU FALSE ; TRUE ENABLES AUTO FLOW CONTROL (YOUR TERMINAL/UART MUST SUPPORT RTS/CTS FLOW CONTROL!!!) +UARTCNT .EQU 1 ; NUMBER OF UARTS +UART0IOB .EQU $68 ; UART0 IOBASE +UART0BAUD .EQU CONBAUD ; UART0 BAUDRATE +UART0FIFO .EQU TRUE ; UART0 TRUE ENABLES UART FIFO (16550 ASSUMED, N8VEM AND ZETA ONLY) +UART0AFC .EQU FALSE ; UART0 TRUE ENABLES AUTO FLOW CONTROL (YOUR TERMINAL/UART MUST SUPPORT RTS/CTS FLOW CONTROL!!!) ; ASCIENABLE .EQU FALSE ; TRUE FOR Z180 ASCI SUPPORT +ASCI0BAUD .EQU 38400 ; ASCI0 BAUDRATE (IMPLEMENTED BY Z180_CNTLB0) +ASCI1BAUD .EQU 38400 ; ASCI1 BAUDRATE (IMPLEMENTED BY Z180_CNTLB1) ; VDUENABLE .EQU FALSE ; TRUE FOR VDU BOARD SUPPORT CVDUENABLE .EQU FALSE ; TRUE FOR CVDU BOARD SUPPORT @@ -89,6 +96,3 @@ ANSITRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF ANSIENABL BOOTTYPE .EQU BT_MENU ; BT_MENU (WAIT FOR KEYPRESS), BT_AUTO (BOOT_DEFAULT AFTER BOOT_TIMEOUT SECS) BOOT_TIMEOUT .EQU 20 ; APPROX TIMEOUT IN SECONDS FOR AUTOBOOT, 0 FOR IMMEDIATE BOOT_DEFAULT .EQU 'R' ; SELECTION TO INVOKE AT TIMEOUT -; -BAUDRATE .EQU 38400 ; IN BPS: 1200, 9600, 38400, ..., 115200 -TERMTYPE .EQU TERM_ANSI ; TERM_TTY=0, TERM_ANSI=1, TERM_WYSE=2 diff --git a/Source/config_n8vem_diskio3.asm b/Source/config_n8vem_diskio3.asm index 6a21533b..9ad59f7d 100644 --- a/Source/config_n8vem_diskio3.asm +++ b/Source/config_n8vem_diskio3.asm @@ -9,8 +9,10 @@ CPUFREQ .EQU 8 ; IN MHZ, USED TO COMPUTE DELAY FACTORS ; DEFCON .EQU CIODEV_UART ; DEFAULT CONSOLE DEVICE (LOADER AND MONITOR): CIODEV_UART, DIODEV_CRT, CIODEV_PRPCON, CIODEV_PPPCON ALTCON .EQU DEFCON ; ALT CONSOLE DEVICE (USED WHEN CONFIG JUMPER SHORTED) +CONBAUD .EQU 38400 ; BAUDRATE FOR CONSOLE DURING HARDWARE INIT DEFVDA .EQU VDADEV_NONE ; DEFAULT VDA DEVICE (VDADEV_NONE, VDADEV_VDU, VDADEV_CVDU, VDADEV_N8V, VDADEV_UPD7220) DEFEMU .EQU EMUTYP_TTY ; DEFAULT VDA EMULATION (EMUTYP_TTY, EMUTYP_ANSI, ...) +TERMTYPE .EQU TERM_ANSI ; TERM_TTY=0, TERM_ANSI=1, TERM_WYSE=2 ; RAMSIZE .EQU 512 ; SIZE OF RAM IN KB, MUST MATCH YOUR HARDWARE!!! CLRRAMDISK .EQU CLR_AUTO ; CLR_ALWAYS, CLR_NEVER, CLR_AUTO (CLEAR IF INVALID DIR AREA) @@ -20,10 +22,15 @@ DSKMAP .EQU DM_RAM ; DM_ROM, DM_RAM, DM_FD, DM_IDE, DM_PPIDE, DM_SD, DM_PRPSD, DSKYENABLE .EQU FALSE ; TRUE FOR DSKY SUPPORT (DO NOT COMBINE WITH PPIDE) ; UARTENABLE .EQU TRUE ; TRUE FOR UART SUPPORT (ALMOST ALWAYS WANT THIS TO BE TRUE) -UARTFIFO .EQU TRUE ; TRUE ENABLES UART FIFO (16550 ASSUMED, N8VEM AND ZETA ONLY) -UARTAFC .EQU FALSE ; TRUE ENABLES AUTO FLOW CONTROL (YOUR TERMINAL/UART MUST SUPPORT RTS/CTS FLOW CONTROL!!!) +UARTCNT .EQU 1 ; NUMBER OF UARTS +UART0IOB .EQU $68 ; UART0 IOBASE +UART0BAUD .EQU CONBAUD ; UART0 BAUDRATE +UART0FIFO .EQU TRUE ; UART0 TRUE ENABLES UART FIFO (16550 ASSUMED, N8VEM AND ZETA ONLY) +UART0AFC .EQU FALSE ; UART0 TRUE ENABLES AUTO FLOW CONTROL (YOUR TERMINAL/UART MUST SUPPORT RTS/CTS FLOW CONTROL!!!) ; ASCIENABLE .EQU FALSE ; TRUE FOR Z180 ASCI SUPPORT +ASCI0BAUD .EQU 38400 ; ASCI0 BAUDRATE (IMPLEMENTED BY Z180_CNTLB0) +ASCI1BAUD .EQU 38400 ; ASCI1 BAUDRATE (IMPLEMENTED BY Z180_CNTLB1) ; VDUENABLE .EQU FALSE ; TRUE FOR VDU BOARD SUPPORT CVDUENABLE .EQU FALSE ; TRUE FOR CVDU BOARD SUPPORT @@ -89,6 +96,3 @@ ANSITRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF ANSIENABL BOOTTYPE .EQU BT_MENU ; BT_MENU (WAIT FOR KEYPRESS), BT_AUTO (BOOT_DEFAULT AFTER BOOT_TIMEOUT SECS) BOOT_TIMEOUT .EQU 20 ; APPROX TIMEOUT IN SECONDS FOR AUTOBOOT, 0 FOR IMMEDIATE BOOT_DEFAULT .EQU 'R' ; SELECTION TO INVOKE AT TIMEOUT -; -BAUDRATE .EQU 38400 ; IN BPS: 1200, 9600, 38400, ..., 115200 -TERMTYPE .EQU TERM_ANSI ; TERM_TTY=0, TERM_ANSI=1, TERM_WYSE=2 diff --git a/Source/config_n8vem_dsd.asm b/Source/config_n8vem_dsd.asm index 47185fbd..f2f5bcaf 100644 --- a/Source/config_n8vem_dsd.asm +++ b/Source/config_n8vem_dsd.asm @@ -9,8 +9,10 @@ CPUFREQ .EQU 8 ; IN MHZ, USED TO COMPUTE DELAY FACTORS ; DEFCON .EQU CIODEV_UART ; DEFAULT CONSOLE DEVICE (LOADER AND MONITOR): CIODEV_UART, DIODEV_CRT, CIODEV_PRPCON, CIODEV_PPPCON ALTCON .EQU DEFCON ; ALT CONSOLE DEVICE (USED WHEN CONFIG JUMPER SHORTED) +CONBAUD .EQU 38400 ; BAUDRATE FOR CONSOLE DURING HARDWARE INIT DEFVDA .EQU VDADEV_NONE ; DEFAULT VDA DEVICE (VDADEV_NONE, VDADEV_VDU, VDADEV_CVDU, VDADEV_N8V, VDADEV_UPD7220) DEFEMU .EQU EMUTYP_TTY ; DEFAULT VDA EMULATION (EMUTYP_TTY, EMUTYP_ANSI, ...) +TERMTYPE .EQU TERM_ANSI ; TERM_TTY=0, TERM_ANSI=1, TERM_WYSE=2 ; RAMSIZE .EQU 512 ; SIZE OF RAM IN KB, MUST MATCH YOUR HARDWARE!!! CLRRAMDISK .EQU CLR_AUTO ; CLR_ALWAYS, CLR_NEVER, CLR_AUTO (CLEAR IF INVALID DIR AREA) @@ -20,10 +22,15 @@ DSKMAP .EQU DM_RAM ; DM_ROM, DM_RAM, DM_FD, DM_IDE, DM_PPIDE, DM_SD, DM_PRPSD, DSKYENABLE .EQU FALSE ; TRUE FOR DSKY SUPPORT (DO NOT COMBINE WITH PPIDE) ; UARTENABLE .EQU TRUE ; TRUE FOR UART SUPPORT (ALMOST ALWAYS WANT THIS TO BE TRUE) -UARTFIFO .EQU TRUE ; TRUE ENABLES UART FIFO (16550 ASSUMED, N8VEM AND ZETA ONLY) -UARTAFC .EQU FALSE ; TRUE ENABLES AUTO FLOW CONTROL (YOUR TERMINAL/UART MUST SUPPORT RTS/CTS FLOW CONTROL!!!) +UARTCNT .EQU 1 ; NUMBER OF UARTS +UART0IOB .EQU $68 ; UART0 IOBASE +UART0BAUD .EQU CONBAUD ; UART0 BAUDRATE +UART0FIFO .EQU TRUE ; UART0 TRUE ENABLES UART FIFO (16550 ASSUMED, N8VEM AND ZETA ONLY) +UART0AFC .EQU FALSE ; UART0 TRUE ENABLES AUTO FLOW CONTROL (YOUR TERMINAL/UART MUST SUPPORT RTS/CTS FLOW CONTROL!!!) ; ASCIENABLE .EQU FALSE ; TRUE FOR Z180 ASCI SUPPORT +ASCI0BAUD .EQU 38400 ; ASCI0 BAUDRATE (IMPLEMENTED BY Z180_CNTLB0) +ASCI1BAUD .EQU 38400 ; ASCI1 BAUDRATE (IMPLEMENTED BY Z180_CNTLB1) ; VDUENABLE .EQU FALSE ; TRUE FOR VDU BOARD SUPPORT CVDUENABLE .EQU FALSE ; TRUE FOR CVDU BOARD SUPPORT @@ -89,6 +96,3 @@ ANSITRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF ANSIENABL BOOTTYPE .EQU BT_MENU ; BT_MENU (WAIT FOR KEYPRESS), BT_AUTO (BOOT_DEFAULT AFTER BOOT_TIMEOUT SECS) BOOT_TIMEOUT .EQU 20 ; APPROX TIMEOUT IN SECONDS FOR AUTOBOOT, 0 FOR IMMEDIATE BOOT_DEFAULT .EQU 'R' ; SELECTION TO INVOKE AT TIMEOUT -; -BAUDRATE .EQU 38400 ; IN BPS: 1200, 9600, 38400, ..., 115200 -TERMTYPE .EQU TERM_ANSI ; TERM_TTY=0, TERM_ANSI=1, TERM_WYSE=2 diff --git a/Source/config_n8vem_ppide.asm b/Source/config_n8vem_ppide.asm index 2db6e78f..b9413318 100644 --- a/Source/config_n8vem_ppide.asm +++ b/Source/config_n8vem_ppide.asm @@ -9,8 +9,10 @@ CPUFREQ .EQU 8 ; IN MHZ, USED TO COMPUTE DELAY FACTORS ; DEFCON .EQU CIODEV_UART ; DEFAULT CONSOLE DEVICE (LOADER AND MONITOR): CIODEV_UART, DIODEV_CRT, CIODEV_PRPCON, CIODEV_PPPCON ALTCON .EQU DEFCON ; ALT CONSOLE DEVICE (USED WHEN CONFIG JUMPER SHORTED) +CONBAUD .EQU 38400 ; BAUDRATE FOR CONSOLE DURING HARDWARE INIT DEFVDA .EQU VDADEV_NONE ; DEFAULT VDA DEVICE (VDADEV_NONE, VDADEV_VDU, VDADEV_CVDU, VDADEV_N8V, VDADEV_UPD7220) DEFEMU .EQU EMUTYP_TTY ; DEFAULT VDA EMULATION (EMUTYP_TTY, EMUTYP_ANSI, ...) +TERMTYPE .EQU TERM_ANSI ; TERM_TTY=0, TERM_ANSI=1, TERM_WYSE=2 ; RAMSIZE .EQU 512 ; SIZE OF RAM IN KB, MUST MATCH YOUR HARDWARE!!! CLRRAMDISK .EQU CLR_AUTO ; CLR_ALWAYS, CLR_NEVER, CLR_AUTO (CLEAR IF INVALID DIR AREA) @@ -20,10 +22,15 @@ DSKMAP .EQU DM_RAM ; DM_ROM, DM_RAM, DM_FD, DM_IDE, DM_PPIDE, DM_SD, DM_PRPSD, DSKYENABLE .EQU FALSE ; TRUE FOR DSKY SUPPORT (DO NOT COMBINE WITH PPIDE) ; UARTENABLE .EQU TRUE ; TRUE FOR UART SUPPORT (ALMOST ALWAYS WANT THIS TO BE TRUE) -UARTFIFO .EQU TRUE ; TRUE ENABLES UART FIFO (16550 ASSUMED, N8VEM AND ZETA ONLY) -UARTAFC .EQU FALSE ; TRUE ENABLES AUTO FLOW CONTROL (YOUR TERMINAL/UART MUST SUPPORT RTS/CTS FLOW CONTROL!!!) +UARTCNT .EQU 1 ; NUMBER OF UARTS +UART0IOB .EQU $68 ; UART0 IOBASE +UART0BAUD .EQU CONBAUD ; UART0 BAUDRATE +UART0FIFO .EQU TRUE ; UART0 TRUE ENABLES UART FIFO (16550 ASSUMED, N8VEM AND ZETA ONLY) +UART0AFC .EQU FALSE ; UART0 TRUE ENABLES AUTO FLOW CONTROL (YOUR TERMINAL/UART MUST SUPPORT RTS/CTS FLOW CONTROL!!!) ; ASCIENABLE .EQU FALSE ; TRUE FOR Z180 ASCI SUPPORT +ASCI0BAUD .EQU 38400 ; ASCI0 BAUDRATE (IMPLEMENTED BY Z180_CNTLB0) +ASCI1BAUD .EQU 38400 ; ASCI1 BAUDRATE (IMPLEMENTED BY Z180_CNTLB1) ; VDUENABLE .EQU FALSE ; TRUE FOR VDU BOARD SUPPORT CVDUENABLE .EQU FALSE ; TRUE FOR CVDU BOARD SUPPORT @@ -89,6 +96,3 @@ ANSITRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF ANSIENABL BOOTTYPE .EQU BT_MENU ; BT_MENU (WAIT FOR KEYPRESS), BT_AUTO (BOOT_DEFAULT AFTER BOOT_TIMEOUT SECS) BOOT_TIMEOUT .EQU 20 ; APPROX TIMEOUT IN SECONDS FOR AUTOBOOT, 0 FOR IMMEDIATE BOOT_DEFAULT .EQU 'R' ; SELECTION TO INVOKE AT TIMEOUT -; -BAUDRATE .EQU 38400 ; IN BPS: 1200, 9600, 38400, ..., 115200 -TERMTYPE .EQU TERM_ANSI ; TERM_TTY=0, TERM_ANSI=1, TERM_WYSE=2 diff --git a/Source/config_n8vem_ppisd.asm b/Source/config_n8vem_ppisd.asm index e84462e4..218e20ee 100644 --- a/Source/config_n8vem_ppisd.asm +++ b/Source/config_n8vem_ppisd.asm @@ -9,8 +9,10 @@ CPUFREQ .EQU 8 ; IN MHZ, USED TO COMPUTE DELAY FACTORS ; DEFCON .EQU CIODEV_UART ; DEFAULT CONSOLE DEVICE (LOADER AND MONITOR): CIODEV_UART, DIODEV_CRT, CIODEV_PRPCON, CIODEV_PPPCON ALTCON .EQU DEFCON ; ALT CONSOLE DEVICE (USED WHEN CONFIG JUMPER SHORTED) +CONBAUD .EQU 38400 ; BAUDRATE FOR CONSOLE DURING HARDWARE INIT DEFVDA .EQU VDADEV_NONE ; DEFAULT VDA DEVICE (VDADEV_NONE, VDADEV_VDU, VDADEV_CVDU, VDADEV_N8V, VDADEV_UPD7220) DEFEMU .EQU EMUTYP_TTY ; DEFAULT VDA EMULATION (EMUTYP_TTY, EMUTYP_ANSI, ...) +TERMTYPE .EQU TERM_ANSI ; TERM_TTY=0, TERM_ANSI=1, TERM_WYSE=2 ; RAMSIZE .EQU 512 ; SIZE OF RAM IN KB, MUST MATCH YOUR HARDWARE!!! CLRRAMDISK .EQU CLR_AUTO ; CLR_ALWAYS, CLR_NEVER, CLR_AUTO (CLEAR IF INVALID DIR AREA) @@ -20,10 +22,15 @@ DSKMAP .EQU DM_RAM ; DM_ROM, DM_RAM, DM_FD, DM_IDE, DM_PPIDE, DM_SD, DM_PRPSD, DSKYENABLE .EQU FALSE ; TRUE FOR DSKY SUPPORT (DO NOT COMBINE WITH PPIDE) ; UARTENABLE .EQU TRUE ; TRUE FOR UART SUPPORT (ALMOST ALWAYS WANT THIS TO BE TRUE) -UARTFIFO .EQU TRUE ; TRUE ENABLES UART FIFO (16550 ASSUMED, N8VEM AND ZETA ONLY) -UARTAFC .EQU FALSE ; TRUE ENABLES AUTO FLOW CONTROL (YOUR TERMINAL/UART MUST SUPPORT RTS/CTS FLOW CONTROL!!!) +UARTCNT .EQU 1 ; NUMBER OF UARTS +UART0IOB .EQU $68 ; UART0 IOBASE +UART0BAUD .EQU CONBAUD ; UART0 BAUDRATE +UART0FIFO .EQU TRUE ; UART0 TRUE ENABLES UART FIFO (16550 ASSUMED, N8VEM AND ZETA ONLY) +UART0AFC .EQU FALSE ; UART0 TRUE ENABLES AUTO FLOW CONTROL (YOUR TERMINAL/UART MUST SUPPORT RTS/CTS FLOW CONTROL!!!) ; ASCIENABLE .EQU FALSE ; TRUE FOR Z180 ASCI SUPPORT +ASCI0BAUD .EQU 38400 ; ASCI0 BAUDRATE (IMPLEMENTED BY Z180_CNTLB0) +ASCI1BAUD .EQU 38400 ; ASCI1 BAUDRATE (IMPLEMENTED BY Z180_CNTLB1) ; VDUENABLE .EQU FALSE ; TRUE FOR VDU BOARD SUPPORT CVDUENABLE .EQU FALSE ; TRUE FOR CVDU BOARD SUPPORT @@ -89,6 +96,3 @@ ANSITRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF ANSIENABL BOOTTYPE .EQU BT_MENU ; BT_MENU (WAIT FOR KEYPRESS), BT_AUTO (BOOT_DEFAULT AFTER BOOT_TIMEOUT SECS) BOOT_TIMEOUT .EQU 20 ; APPROX TIMEOUT IN SECONDS FOR AUTOBOOT, 0 FOR IMMEDIATE BOOT_DEFAULT .EQU 'R' ; SELECTION TO INVOKE AT TIMEOUT -; -BAUDRATE .EQU 38400 ; IN BPS: 1200, 9600, 38400, ..., 115200 -TERMTYPE .EQU TERM_ANSI ; TERM_TTY=0, TERM_ANSI=1, TERM_WYSE=2 diff --git a/Source/config_n8vem_propio.asm b/Source/config_n8vem_propio.asm index 695243ae..4bd25362 100644 --- a/Source/config_n8vem_propio.asm +++ b/Source/config_n8vem_propio.asm @@ -9,9 +9,10 @@ CPUFREQ .EQU 8 ; IN MHZ, USED TO COMPUTE DELAY FACTORS ; DEFCON .EQU CIODEV_PRPCON ; DEFAULT CONSOLE DEVICE (LOADER AND MONITOR): CIODEV_UART, DIODEV_CRT, CIODEV_PRPCON, CIODEV_PPPCON ALTCON .EQU CIODEV_UART ; ALT CONSOLE DEVICE (USED WHEN CONFIG JUMPER SHORTED) +CONBAUD .EQU 38400 ; BAUDRATE FOR CONSOLE DURING HARDWARE INIT DEFVDA .EQU VDADEV_NONE ; DEFAULT VDA DEVICE (VDADEV_NONE, VDADEV_VDU, VDADEV_CVDU, VDADEV_N8V, VDADEV_UPD7220) DEFEMU .EQU EMUTYP_TTY ; DEFAULT VDA EMULATION (EMUTYP_TTY, EMUTYP_ANSI, ...) - +TERMTYPE .EQU TERM_ANSI ; TERM_TTY=0, TERM_ANSI=1, TERM_WYSE=2 ; RAMSIZE .EQU 512 ; SIZE OF RAM IN KB, MUST MATCH YOUR HARDWARE!!! CLRRAMDISK .EQU CLR_AUTO ; CLR_ALWAYS, CLR_NEVER, CLR_AUTO (CLEAR IF INVALID DIR AREA) @@ -21,10 +22,15 @@ DSKMAP .EQU DM_RAM ; DM_ROM, DM_RAM, DM_FD, DM_IDE, DM_PPIDE, DM_SD, DM_PRPSD, DSKYENABLE .EQU FALSE ; TRUE FOR DSKY SUPPORT (DO NOT COMBINE WITH PPIDE) ; UARTENABLE .EQU TRUE ; TRUE FOR UART SUPPORT (ALMOST ALWAYS WANT THIS TO BE TRUE) -UARTFIFO .EQU TRUE ; TRUE ENABLES UART FIFO (16550 ASSUMED, N8VEM AND ZETA ONLY) -UARTAFC .EQU FALSE ; TRUE ENABLES AUTO FLOW CONTROL (YOUR TERMINAL/UART MUST SUPPORT RTS/CTS FLOW CONTROL!!!) +UARTCNT .EQU 1 ; NUMBER OF UARTS +UART0IOB .EQU $68 ; UART0 IOBASE +UART0BAUD .EQU CONBAUD ; UART0 BAUDRATE +UART0FIFO .EQU TRUE ; UART0 TRUE ENABLES UART FIFO (16550 ASSUMED, N8VEM AND ZETA ONLY) +UART0AFC .EQU FALSE ; UART0 TRUE ENABLES AUTO FLOW CONTROL (YOUR TERMINAL/UART MUST SUPPORT RTS/CTS FLOW CONTROL!!!) ; ASCIENABLE .EQU FALSE ; TRUE FOR Z180 ASCI SUPPORT +ASCI0BAUD .EQU 38400 ; ASCI0 BAUDRATE (IMPLEMENTED BY Z180_CNTLB0) +ASCI1BAUD .EQU 38400 ; ASCI1 BAUDRATE (IMPLEMENTED BY Z180_CNTLB1) ; VDUENABLE .EQU FALSE ; TRUE FOR VDU BOARD SUPPORT CVDUENABLE .EQU FALSE ; TRUE FOR CVDU BOARD SUPPORT @@ -90,6 +96,3 @@ ANSITRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF ANSIENABL BOOTTYPE .EQU BT_MENU ; BT_MENU (WAIT FOR KEYPRESS), BT_AUTO (BOOT_DEFAULT AFTER BOOT_TIMEOUT SECS) BOOT_TIMEOUT .EQU 20 ; APPROX TIMEOUT IN SECONDS FOR AUTOBOOT, 0 FOR IMMEDIATE BOOT_DEFAULT .EQU 'R' ; SELECTION TO INVOKE AT TIMEOUT -; -BAUDRATE .EQU 38400 ; IN BPS: 1200, 9600, 38400, ..., 115200 -TERMTYPE .EQU TERM_ANSI ; TERM_TTY=0, TERM_ANSI=1, TERM_WYSE=2 diff --git a/Source/config_n8vem_simh.asm b/Source/config_n8vem_simh.asm index 49f2b365..d0720ada 100644 --- a/Source/config_n8vem_simh.asm +++ b/Source/config_n8vem_simh.asm @@ -9,8 +9,10 @@ CPUFREQ .EQU 8 ; IN MHZ, USED TO COMPUTE DELAY FACTORS ; DEFCON .EQU CIODEV_UART ; DEFAULT CONSOLE DEVICE (LOADER AND MONITOR): CIODEV_UART, DIODEV_CRT, CIODEV_PRPCON, CIODEV_PPPCON ALTCON .EQU DEFCON ; ALT CONSOLE DEVICE (USED WHEN CONFIG JUMPER SHORTED) +CONBAUD .EQU 38400 ; BAUDRATE FOR CONSOLE DURING HARDWARE INIT DEFVDA .EQU VDADEV_NONE ; DEFAULT VDA DEVICE (VDADEV_NONE, VDADEV_VDU, VDADEV_CVDU, VDADEV_N8V, VDADEV_UPD7220) DEFEMU .EQU EMUTYP_TTY ; DEFAULT VDA EMULATION (EMUTYP_TTY, EMUTYP_ANSI, ...) +TERMTYPE .EQU TERM_ANSI ; TERM_TTY=0, TERM_ANSI=1, TERM_WYSE=2 ; RAMSIZE .EQU 512 ; SIZE OF RAM IN KB, MUST MATCH YOUR HARDWARE!!! CLRRAMDISK .EQU CLR_ALWAYS ; CLR_ALWAYS, CLR_NEVER, CLR_AUTO (CLEAR IF INVALID DIR AREA) @@ -20,10 +22,15 @@ DSKMAP .EQU DM_RAM ; DM_ROM, DM_RAM, DM_FD, DM_IDE, DM_PPIDE, DM_SD, DM_PRPSD, DSKYENABLE .EQU FALSE ; TRUE FOR DSKY SUPPORT (DO NOT COMBINE WITH PPIDE) ; UARTENABLE .EQU TRUE ; TRUE FOR UART SUPPORT (ALMOST ALWAYS WANT THIS TO BE TRUE) -UARTFIFO .EQU FALSE ; TRUE ENABLES UART FIFO (16550 ASSUMED, N8VEM AND ZETA ONLY) -UARTAFC .EQU FALSE ; TRUE ENABLES AUTO FLOW CONTROL (YOUR TERMINAL/UART MUST SUPPORT RTS/CTS FLOW CONTROL!!!) +UARTCNT .EQU 1 ; NUMBER OF UARTS +UART0IOB .EQU $68 ; UART0 IOBASE +UART0BAUD .EQU CONBAUD ; UART0 BAUDRATE +UART0FIFO .EQU FALSE ; UART0 TRUE ENABLES UART FIFO (16550 ASSUMED, N8VEM AND ZETA ONLY) +UART0AFC .EQU FALSE ; UART0 TRUE ENABLES AUTO FLOW CONTROL (YOUR TERMINAL/UART MUST SUPPORT RTS/CTS FLOW CONTROL!!!) ; ASCIENABLE .EQU FALSE ; TRUE FOR Z180 ASCI SUPPORT +ASCI0BAUD .EQU 38400 ; ASCI0 BAUDRATE (IMPLEMENTED BY Z180_CNTLB0) +ASCI1BAUD .EQU 38400 ; ASCI1 BAUDRATE (IMPLEMENTED BY Z180_CNTLB1) ; VDUENABLE .EQU FALSE ; TRUE FOR VDU BOARD SUPPORT CVDUENABLE .EQU FALSE ; TRUE FOR CVDU BOARD SUPPORT @@ -89,6 +96,3 @@ ANSITRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF ANSIENABL BOOTTYPE .EQU BT_MENU ; BT_MENU (WAIT FOR KEYPRESS), BT_AUTO (BOOT_DEFAULT AFTER BOOT_TIMEOUT SECS) BOOT_TIMEOUT .EQU 20 ; APPROX TIMEOUT IN SECONDS FOR AUTOBOOT, 0 FOR IMMEDIATE BOOT_DEFAULT .EQU 'R' ; SELECTION TO INVOKE AT TIMEOUT -; -BAUDRATE .EQU 38400 ; IN BPS: 1200, 9600, 38400, ..., 115200 -TERMTYPE .EQU TERM_ANSI ; TERM_TTY=0, TERM_ANSI=1, TERM_WYSE=2 diff --git a/Source/config_n8vem_std.asm b/Source/config_n8vem_std.asm index d492a0ac..dcdc06a5 100644 --- a/Source/config_n8vem_std.asm +++ b/Source/config_n8vem_std.asm @@ -9,8 +9,10 @@ CPUFREQ .EQU 8 ; IN MHZ, USED TO COMPUTE DELAY FACTORS ; DEFCON .EQU CIODEV_UART ; DEFAULT CONSOLE DEVICE (LOADER AND MONITOR): CIODEV_UART, DIODEV_CRT, CIODEV_PRPCON, CIODEV_PPPCON ALTCON .EQU DEFCON ; ALT CONSOLE DEVICE (USED WHEN CONFIG JUMPER SHORTED) +CONBAUD .EQU 38400 ; BAUDRATE FOR CONSOLE DURING HARDWARE INIT DEFVDA .EQU VDADEV_NONE ; DEFAULT VDA DEVICE (VDADEV_NONE, VDADEV_VDU, VDADEV_CVDU, VDADEV_N8V, VDADEV_UPD7220) DEFEMU .EQU EMUTYP_TTY ; DEFAULT VDA EMULATION (EMUTYP_TTY, EMUTYP_ANSI, ...) +TERMTYPE .EQU TERM_ANSI ; TERM_TTY=0, TERM_ANSI=1, TERM_WYSE=2 ; RAMSIZE .EQU 512 ; SIZE OF RAM IN KB, MUST MATCH YOUR HARDWARE!!! CLRRAMDISK .EQU CLR_AUTO ; CLR_ALWAYS, CLR_NEVER, CLR_AUTO (CLEAR IF INVALID DIR AREA) @@ -20,10 +22,15 @@ DSKMAP .EQU DM_RAM ; DM_ROM, DM_RAM, DM_FD, DM_IDE, DM_PPIDE, DM_SD, DM_PRPSD, DSKYENABLE .EQU FALSE ; TRUE FOR DSKY SUPPORT (DO NOT COMBINE WITH PPIDE) ; UARTENABLE .EQU TRUE ; TRUE FOR UART SUPPORT (ALMOST ALWAYS WANT THIS TO BE TRUE) -UARTFIFO .EQU TRUE ; TRUE ENABLES UART FIFO (16550 ASSUMED, N8VEM AND ZETA ONLY) -UARTAFC .EQU FALSE ; TRUE ENABLES AUTO FLOW CONTROL (YOUR TERMINAL/UART MUST SUPPORT RTS/CTS FLOW CONTROL!!!) +UARTCNT .EQU 1 ; NUMBER OF UARTS +UART0IOB .EQU $68 ; UART0 IOBASE +UART0BAUD .EQU CONBAUD ; UART0 BAUDRATE +UART0FIFO .EQU TRUE ; UART0 TRUE ENABLES UART FIFO (16550 ASSUMED, N8VEM AND ZETA ONLY) +UART0AFC .EQU FALSE ; UART0 TRUE ENABLES AUTO FLOW CONTROL (YOUR TERMINAL/UART MUST SUPPORT RTS/CTS FLOW CONTROL!!!) ; ASCIENABLE .EQU FALSE ; TRUE FOR Z180 ASCI SUPPORT +ASCI0BAUD .EQU 38400 ; ASCI0 BAUDRATE (IMPLEMENTED BY Z180_CNTLB0) +ASCI1BAUD .EQU 38400 ; ASCI1 BAUDRATE (IMPLEMENTED BY Z180_CNTLB1) ; VDUENABLE .EQU FALSE ; TRUE FOR VDU BOARD SUPPORT CVDUENABLE .EQU FALSE ; TRUE FOR CVDU BOARD SUPPORT @@ -89,6 +96,3 @@ ANSITRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF ANSIENABL BOOTTYPE .EQU BT_MENU ; BT_MENU (WAIT FOR KEYPRESS), BT_AUTO (BOOT_DEFAULT AFTER BOOT_TIMEOUT SECS) BOOT_TIMEOUT .EQU 20 ; APPROX TIMEOUT IN SECONDS FOR AUTOBOOT, 0 FOR IMMEDIATE BOOT_DEFAULT .EQU 'R' ; SELECTION TO INVOKE AT TIMEOUT -; -BAUDRATE .EQU 38400 ; IN BPS: 1200, 9600, 38400, ..., 115200 -TERMTYPE .EQU TERM_ANSI ; TERM_TTY=0, TERM_ANSI=1, TERM_WYSE=2 diff --git a/Source/config_n8vem_vdu.asm b/Source/config_n8vem_vdu.asm index 8eec43ce..9b9fde0c 100644 --- a/Source/config_n8vem_vdu.asm +++ b/Source/config_n8vem_vdu.asm @@ -9,8 +9,10 @@ CPUFREQ .EQU 8 ; IN MHZ, USED TO COMPUTE DELAY FACTORS ; DEFCON .EQU CIODEV_UART ; DEFAULT CONSOLE DEVICE (LOADER AND MONITOR): CIODEV_UART, DIODEV_CRT, CIODEV_PRPCON, CIODEV_PPPCON ALTCON .EQU DEFCON ; ALT CONSOLE DEVICE (USED WHEN CONFIG JUMPER SHORTED) +CONBAUD .EQU 38400 ; BAUDRATE FOR CONSOLE DURING HARDWARE INIT DEFVDA .EQU VDADEV_VDU ; DEFAULT VDA DEVICE (VDADEV_NONE, VDADEV_VDU, VDADEV_CVDU, VDADEV_N8V, VDADEV_UPD7220) DEFEMU .EQU EMUTYP_ANSI ; DEFAULT VDA EMULATION (EMUTYP_TTY, EMUTYP_ANSI, ...) +TERMTYPE .EQU TERM_ANSI ; TERM_TTY=0, TERM_ANSI=1, TERM_WYSE=2 ; RAMSIZE .EQU 512 ; SIZE OF RAM IN KB, MUST MATCH YOUR HARDWARE!!! CLRRAMDISK .EQU CLR_AUTO ; CLR_ALWAYS, CLR_NEVER, CLR_AUTO (CLEAR IF INVALID DIR AREA) @@ -20,10 +22,15 @@ DSKMAP .EQU DM_RAM ; DM_ROM, DM_RAM, DM_FD, DM_IDE, DM_PPIDE, DM_SD, DM_PRPSD, DSKYENABLE .EQU FALSE ; TRUE FOR DSKY SUPPORT (DO NOT COMBINE WITH PPIDE) ; UARTENABLE .EQU TRUE ; TRUE FOR UART SUPPORT (ALMOST ALWAYS WANT THIS TO BE TRUE) -UARTFIFO .EQU TRUE ; TRUE ENABLES UART FIFO (16550 ASSUMED, N8VEM AND ZETA ONLY) -UARTAFC .EQU FALSE ; TRUE ENABLES AUTO FLOW CONTROL (YOUR TERMINAL/UART MUST SUPPORT RTS/CTS FLOW CONTROL!!!) +UARTCNT .EQU 1 ; NUMBER OF UARTS +UART0IOB .EQU $68 ; UART0 IOBASE +UART0BAUD .EQU CONBAUD ; UART0 BAUDRATE +UART0FIFO .EQU TRUE ; UART0 TRUE ENABLES UART FIFO (16550 ASSUMED, N8VEM AND ZETA ONLY) +UART0AFC .EQU FALSE ; UART0 TRUE ENABLES AUTO FLOW CONTROL (YOUR TERMINAL/UART MUST SUPPORT RTS/CTS FLOW CONTROL!!!) ; ASCIENABLE .EQU FALSE ; TRUE FOR Z180 ASCI SUPPORT +ASCI0BAUD .EQU 38400 ; ASCI0 BAUDRATE (IMPLEMENTED BY Z180_CNTLB0) +ASCI1BAUD .EQU 38400 ; ASCI1 BAUDRATE (IMPLEMENTED BY Z180_CNTLB1) ; VDUENABLE .EQU TRUE ; TRUE FOR VDU BOARD SUPPORT CVDUENABLE .EQU FALSE ; TRUE FOR CVDU BOARD SUPPORT @@ -89,6 +96,3 @@ ANSITRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF ANSIENABL BOOTTYPE .EQU BT_MENU ; BT_MENU (WAIT FOR KEYPRESS), BT_AUTO (BOOT_DEFAULT AFTER BOOT_TIMEOUT SECS) BOOT_TIMEOUT .EQU 20 ; APPROX TIMEOUT IN SECONDS FOR AUTOBOOT, 0 FOR IMMEDIATE BOOT_DEFAULT .EQU 'R' ; SELECTION TO INVOKE AT TIMEOUT -; -BAUDRATE .EQU 38400 ; IN BPS: 1200, 9600, 38400, ..., 115200 -TERMTYPE .EQU TERM_ANSI ; TERM_TTY=0, TERM_ANSI=1, TERM_WYSE=2 diff --git a/Source/config_zeta_ppp.asm b/Source/config_zeta_ppp.asm index f9bab853..b4e9bd18 100644 --- a/Source/config_zeta_ppp.asm +++ b/Source/config_zeta_ppp.asm @@ -9,8 +9,10 @@ CPUFREQ .EQU 20 ; IN MHZ, USED TO COMPUTE DELAY FACTORS ; DEFCON .EQU CIODEV_PPPCON ; DEFAULT CONSOLE DEVICE (LOADER AND MONITOR): CIODEV_UART, DIODEV_CRT, CIODEV_PRPCON, CIODEV_PPPCON ALTCON .EQU CIODEV_UART ; ALT CONSOLE DEVICE (USED WHEN CONFIG JUMPER SHORTED) +CONBAUD .EQU 38400 ; BAUDRATE FOR CONSOLE DURING HARDWARE INIT DEFVDA .EQU VDADEV_NONE ; DEFAULT VDA DEVICE (VDADEV_NONE, VDADEV_VDU, VDADEV_CVDU, VDADEV_N8V, VDADEV_UPD7220) DEFEMU .EQU EMUTYP_TTY ; DEFAULT VDA EMULATION (EMUTYP_TTY, EMUTYP_ANSI, ...) +TERMTYPE .EQU TERM_ANSI ; TERM_TTY=0, TERM_ANSI=1, TERM_WYSE=2 ; RAMSIZE .EQU 512 ; SIZE OF RAM IN KB, MUST MATCH YOUR HARDWARE!!! CLRRAMDISK .EQU CLR_AUTO ; CLR_ALWAYS, CLR_NEVER, CLR_AUTO (CLEAR IF INVALID DIR AREA) @@ -20,10 +22,15 @@ DSKMAP .EQU DM_RAM ; DM_ROM, DM_RAM, DM_FD, DM_IDE, DM_PPIDE, DM_SD, DM_PRPSD, DSKYENABLE .EQU FALSE ; TRUE FOR DSKY SUPPORT (DO NOT COMBINE WITH PPIDE) ; UARTENABLE .EQU TRUE ; TRUE FOR UART SUPPORT (ALMOST ALWAYS WANT THIS TO BE TRUE) -UARTFIFO .EQU TRUE ; TRUE ENABLES UART FIFO (16550 ASSUMED, N8VEM AND ZETA ONLY) -UARTAFC .EQU FALSE ; TRUE ENABLES AUTO FLOW CONTROL (YOUR TERMINAL/UART MUST SUPPORT RTS/CTS FLOW CONTROL!!!) +UARTCNT .EQU 1 ; NUMBER OF UARTS +UART0IOB .EQU $68 ; UART0 IOBASE +UART0BAUD .EQU CONBAUD ; UART0 BAUDRATE +UART0FIFO .EQU TRUE ; UART0 TRUE ENABLES UART FIFO (16550 ASSUMED, N8VEM AND ZETA ONLY) +UART0AFC .EQU FALSE ; UART0 TRUE ENABLES AUTO FLOW CONTROL (YOUR TERMINAL/UART MUST SUPPORT RTS/CTS FLOW CONTROL!!!) ; ASCIENABLE .EQU FALSE ; TRUE FOR Z180 ASCI SUPPORT +ASCI0BAUD .EQU 38400 ; ASCI0 BAUDRATE (IMPLEMENTED BY Z180_CNTLB0) +ASCI1BAUD .EQU 38400 ; ASCI1 BAUDRATE (IMPLEMENTED BY Z180_CNTLB1) ; VDUENABLE .EQU FALSE ; TRUE FOR VDU BOARD SUPPORT CVDUENABLE .EQU FALSE ; TRUE FOR CVDU BOARD SUPPORT @@ -89,6 +96,3 @@ ANSITRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF ANSIENABL BOOTTYPE .EQU BT_MENU ; BT_MENU (WAIT FOR KEYPRESS), BT_AUTO (BOOT_DEFAULT AFTER BOOT_TIMEOUT SECS) BOOT_TIMEOUT .EQU 20 ; APPROX TIMEOUT IN SECONDS FOR AUTOBOOT, 0 FOR IMMEDIATE BOOT_DEFAULT .EQU 'R' ; SELECTION TO INVOKE AT TIMEOUT -; -BAUDRATE .EQU 38400 ; IN BPS: 1200, 9600, 38400, ..., 115200 -TERMTYPE .EQU TERM_ANSI ; TERM_TTY=0, TERM_ANSI=1, TERM_WYSE=2 diff --git a/Source/config_zeta_std.asm b/Source/config_zeta_std.asm index f5b52f1d..6ff105e9 100644 --- a/Source/config_zeta_std.asm +++ b/Source/config_zeta_std.asm @@ -9,8 +9,10 @@ CPUFREQ .EQU 20 ; IN MHZ, USED TO COMPUTE DELAY FACTORS ; DEFCON .EQU CIODEV_UART ; DEFAULT CONSOLE DEVICE (LOADER AND MONITOR): CIODEV_UART, DIODEV_CRT, CIODEV_PRPCON, CIODEV_PPPCON ALTCON .EQU DEFCON ; ALT CONSOLE DEVICE (USED WHEN CONFIG JUMPER SHORTED) +CONBAUD .EQU 38400 ; BAUDRATE FOR CONSOLE DURING HARDWARE INIT DEFVDA .EQU VDADEV_NONE ; DEFAULT VDA DEVICE (VDADEV_NONE, VDADEV_VDU, VDADEV_CVDU, VDADEV_N8V, VDADEV_UPD7220) DEFEMU .EQU EMUTYP_TTY ; DEFAULT VDA EMULATION (EMUTYP_TTY, EMUTYP_ANSI, ...) +TERMTYPE .EQU TERM_ANSI ; TERM_TTY=0, TERM_ANSI=1, TERM_WYSE=2 ; RAMSIZE .EQU 512 ; SIZE OF RAM IN KB, MUST MATCH YOUR HARDWARE!!! CLRRAMDISK .EQU CLR_AUTO ; CLR_ALWAYS, CLR_NEVER, CLR_AUTO (CLEAR IF INVALID DIR AREA) @@ -20,10 +22,15 @@ DSKMAP .EQU DM_RAM ; DM_ROM, DM_RAM, DM_FD, DM_IDE, DM_PPIDE, DM_SD, DM_PRPSD, DSKYENABLE .EQU FALSE ; TRUE FOR DSKY SUPPORT (DO NOT COMBINE WITH PPIDE) ; UARTENABLE .EQU TRUE ; TRUE FOR UART SUPPORT (ALMOST ALWAYS WANT THIS TO BE TRUE) -UARTFIFO .EQU TRUE ; TRUE ENABLES UART FIFO (16550 ASSUMED, N8VEM AND ZETA ONLY) -UARTAFC .EQU FALSE ; TRUE ENABLES AUTO FLOW CONTROL (YOUR TERMINAL/UART MUST SUPPORT RTS/CTS FLOW CONTROL!!!) +UARTCNT .EQU 1 ; NUMBER OF UARTS +UART0IOB .EQU $68 ; UART0 IOBASE +UART0BAUD .EQU CONBAUD ; UART0 BAUDRATE +UART0FIFO .EQU TRUE ; UART0 TRUE ENABLES UART FIFO (16550 ASSUMED, N8VEM AND ZETA ONLY) +UART0AFC .EQU FALSE ; UART0 TRUE ENABLES AUTO FLOW CONTROL (YOUR TERMINAL/UART MUST SUPPORT RTS/CTS FLOW CONTROL!!!) ; ASCIENABLE .EQU FALSE ; TRUE FOR Z180 ASCI SUPPORT +ASCI0BAUD .EQU 38400 ; ASCI0 BAUDRATE (IMPLEMENTED BY Z180_CNTLB0) +ASCI1BAUD .EQU 38400 ; ASCI1 BAUDRATE (IMPLEMENTED BY Z180_CNTLB1) ; VDUENABLE .EQU FALSE ; TRUE FOR VDU BOARD SUPPORT CVDUENABLE .EQU FALSE ; TRUE FOR CVDU BOARD SUPPORT @@ -89,6 +96,3 @@ ANSITRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF ANSIENABL BOOTTYPE .EQU BT_MENU ; BT_MENU (WAIT FOR KEYPRESS), BT_AUTO (BOOT_DEFAULT AFTER BOOT_TIMEOUT SECS) BOOT_TIMEOUT .EQU 20 ; APPROX TIMEOUT IN SECONDS FOR AUTOBOOT, 0 FOR IMMEDIATE BOOT_DEFAULT .EQU 'R' ; SELECTION TO INVOKE AT TIMEOUT -; -BAUDRATE .EQU 38400 ; IN BPS: 1200, 9600, 38400, ..., 115200 -TERMTYPE .EQU TERM_ANSI ; TERM_TTY=0, TERM_ANSI=1, TERM_WYSE=2 diff --git a/Source/syscfg.asm b/Source/syscfg.asm index af8616cd..292f72a8 100644 --- a/Source/syscfg.asm +++ b/Source/syscfg.asm @@ -59,6 +59,7 @@ BOOTTIME .DB 0,0,0,0,0,0 ; SYSTEM STARTUP TIME (YY,MM,DD,HH,MM,SS) .DB DEFCON .DB ALTCON + .DW CONBAUD / 10 .DB DEFVDA .DB DEFEMU .DB TERMTYPE @@ -73,12 +74,43 @@ BOOTTIME .DB 0,0,0,0,0,0 ; SYSTEM STARTUP TIME (YY,MM,DD,HH,MM,SS) .DB DSKYENABLE .DB UARTENABLE - .DB UARTFIFO - .DB UARTAFC + .DB UARTCNT +#IF (UARTENABLE & (UARTCNT >= 1)) + .DB UART0IOB + .DW UART0BAUD / 10 + .DB UART0FIFO + .DB UART0AFC +#ELSE + .FILL 5,$FF +#ENDIF +#IF (UARTENABLE & (UARTCNT >= 2)) + .DB UART1IOB + .DW UART1BAUD / 10 + .DB UART1FIFO + .DB UART1AFC +#ELSE + .FILL 5,$FF +#ENDIF +#IF (UARTENABLE & (UARTCNT >= 3)) + .DB UART2IOB + .DW UART2BAUD / 10 + .DB UART2FIFO + .DB UART2AFC +#ELSE + .FILL 5,$FF +#ENDIF +#IF (UARTENABLE & (UARTCNT >= 4)) + .DB UART3IOB + .DW UART3BAUD / 10 + .DB UART3FIFO + .DB UART3AFC +#ELSE + .FILL 5,$FF +#ENDIF .DB ASCIENABLE - - .DW BAUDRATE / 10 + .DW ASCI0BAUD / 10 + .DW ASCI1BAUD / 10 .DB VDUENABLE diff --git a/Source/uart.asm b/Source/uart.asm index 5acb1adb..ec27d540 100644 --- a/Source/uart.asm +++ b/Source/uart.asm @@ -3,7 +3,73 @@ ; UART DRIVER (SERIAL PORT) ;================================================================================================== ; -UART0_DIV .EQU (1843200 / (16 * BAUDRATE)) +#IF (UARTCNT >= 1) +UART0_RBR .EQU UART0IOB + 0 ; DLAB=0: RCVR BUFFER REG (READ ONLY) +UART0_THR .EQU UART0IOB + 0 ; DLAB=0: XMIT HOLDING REG (WRITE ONLY) +UART0_IER .EQU UART0IOB + 1 ; DLAB=0: INT ENABLE REG +UART0_IIR .EQU UART0IOB + 2 ; INT IDENT REGISTER (READ ONLY) +UART0_FCR .EQU UART0IOB + 2 ; FIFO CONTROL REG (WRITE ONLY) +UART0_LCR .EQU UART0IOB + 3 ; LINE CONTROL REG +UART0_MCR .EQU UART0IOB + 4 ; MODEM CONTROL REG +UART0_LSR .EQU UART0IOB + 5 ; LINE STATUS REG +UART0_MSR .EQU UART0IOB + 6 ; MODEM STATUS REG +UART0_SCR .EQU UART0IOB + 7 ; SCRATCH REGISTER +UART0_DLL .EQU UART0IOB + 0 ; DLAB=1: DIVISOR LATCH (LS) +UART0_DLM .EQU UART0IOB + 1 ; DLAB=1: DIVISOR LATCH (MS) +; +UART0_DIV .EQU (1843200 / (16 * UART0BAUD)) +#ENDIF +; +#IF (UARTCNT >= 2) +UART1_RBR .EQU UART1IOB + 0 ; DLAB=0: RCVR BUFFER REG (READ ONLY) +UART1_THR .EQU UART1IOB + 0 ; DLAB=0: XMIT HOLDING REG (WRITE ONLY) +UART1_IER .EQU UART1IOB + 1 ; DLAB=0: INT ENABLE REG +UART1_IIR .EQU UART1IOB + 2 ; INT IDENT REGISTER (READ ONLY) +UART1_FCR .EQU UART1IOB + 2 ; FIFO CONTROL REG (WRITE ONLY) +UART1_LCR .EQU UART1IOB + 3 ; LINE CONTROL REG +UART1_MCR .EQU UART1IOB + 4 ; MODEM CONTROL REG +UART1_LSR .EQU UART1IOB + 5 ; LINE STATUS REG +UART1_MSR .EQU UART1IOB + 6 ; MODEM STATUS REG +UART1_SCR .EQU UART1IOB + 7 ; SCRATCH REGISTER +UART1_DLL .EQU UART1IOB + 0 ; DLAB=1: DIVISOR LATCH (LS) +UART1_DLM .EQU UART1IOB + 1 ; DLAB=1: DIVISOR LATCH (MS) +; +UART1_DIV .EQU (1843200 / (16 * UART1BAUD)) +#ENDIF +; +#IF (UARTCNT >= 3) +UART2_RBR .EQU UART2IOB + 0 ; DLAB=0: RCVR BUFFER REG (READ ONLY) +UART2_THR .EQU UART2IOB + 0 ; DLAB=0: XMIT HOLDING REG (WRITE ONLY) +UART2_IER .EQU UART2IOB + 1 ; DLAB=0: INT ENABLE REG +UART2_IIR .EQU UART2IOB + 2 ; INT IDENT REGISTER (READ ONLY) +UART2_FCR .EQU UART2IOB + 2 ; FIFO CONTROL REG (WRITE ONLY) +UART2_LCR .EQU UART2IOB + 3 ; LINE CONTROL REG +UART2_MCR .EQU UART2IOB + 4 ; MODEM CONTROL REG +UART2_LSR .EQU UART2IOB + 5 ; LINE STATUS REG +UART2_MSR .EQU UART2IOB + 6 ; MODEM STATUS REG +UART2_SCR .EQU UART2IOB + 7 ; SCRATCH REGISTER +UART2_DLL .EQU UART2IOB + 0 ; DLAB=1: DIVISOR LATCH (LS) +UART2_DLM .EQU UART2IOB + 1 ; DLAB=1: DIVISOR LATCH (MS) +; +UART2_DIV .EQU (1843200 / (16 * UART2BAUD)) +#ENDIF +; +#IF (UARTCNT >= 4) +UART3_RBR .EQU UART3IOB + 0 ; DLAB=0: RCVR BUFFER REG (READ ONLY) +UART3_THR .EQU UART3IOB + 0 ; DLAB=0: XMIT HOLDING REG (WRITE ONLY) +UART3_IER .EQU UART3IOB + 1 ; DLAB=0: INT ENABLE REG +UART3_IIR .EQU UART3IOB + 2 ; INT IDENT REGISTER (READ ONLY) +UART3_FCR .EQU UART3IOB + 2 ; FIFO CONTROL REG (WRITE ONLY) +UART3_LCR .EQU UART3IOB + 3 ; LINE CONTROL REG +UART3_MCR .EQU UART3IOB + 4 ; MODEM CONTROL REG +UART3_LSR .EQU UART3IOB + 5 ; LINE STATUS REG +UART3_MSR .EQU UART3IOB + 6 ; MODEM STATUS REG +UART3_SCR .EQU UART3IOB + 7 ; SCRATCH REGISTER +UART3_DLL .EQU UART3IOB + 0 ; DLAB=1: DIVISOR LATCH (LS) +UART3_DLM .EQU UART3IOB + 1 ; DLAB=1: DIVISOR LATCH (MS) +; +UART3_DIV .EQU (1843200 / (16 * UART3BAUD)) +#ENDIF ; ; CHARACTER DEVICE DRIVER ENTRY ; A: RESULT (OUT), CF=ERR @@ -12,83 +78,125 @@ UART0_DIV .EQU (1843200 / (16 * BAUDRATE)) ; E: DEVICE/UNIT (IN) ; ; +UART_INIT: +#IF (UARTCNT >= 1) + CALL UART0_INIT +#ENDIF +#IF (UARTCNT >= 2) + CALL UART1_INIT +#ENDIF +#IF (UARTCNT >= 3) + CALL UART2_INIT +#ENDIF +#IF (UARTCNT >= 4) + CALL UART3_INIT +#ENDIF + RET +; +; +; UART_DISPATCH: - LD A,B ; GET REQUESTED FUNCTION - AND $0F ; ISOLATE SUB-FUNCTION - JP Z,UART0_IN + LD A,C ; GET DEVICE/UNIT + AND $0F ; ISOLATE UNIT +#IF (UARTCNT >= 1) + JP Z,UART0_DISPATCH +#ENDIF +#IF (UARTCNT >= 2) DEC A - JP Z,UART0_OUT + JP Z,UART1_DISPATCH +#ENDIF +#IF (UARTCNT >= 3) DEC A - JP Z,UART0_IST + JP Z,UART2_DISPATCH +#ENDIF +#IF (UARTCNT >= 4) DEC A - JP Z,UART0_OST + JP Z,UART3_DISPATCH +#ENDIF CALL PANIC + ; ; ; -UART_INIT: +#IF (UARTCNT >= 1) +; +UART0_INIT: PRTS("UART0: IO=0x$") - LD A,SIO_BASE + LD A,UART0IOB CALL PRTHEXBYTE PRTS(" BAUD=$") - LD HL,BAUDRATE / 10 + LD HL,UART0BAUD / 10 CALL PRTDEC PRTC('0') LD A,80H - OUT (SIO_LCR),A ; DLAB ON - LD A,UART0_DIV - OUT (SIO_DLL),A ; SET DIVISOR (LS) - LD A,00H - OUT (SIO_DLM),A ; SET DIVISOR (MS) + OUT (UART0_LCR),A ; DLAB ON + LD A,UART0_DIV % $100 + OUT (UART0_DLL),A ; SET DIVISOR (LS) + LD A,UART0_DIV / $100 + OUT (UART0_DLM),A ; SET DIVISOR (MS) LD B,03H ; B = DEFAULT SETTING FOR MCR (DTR + RTS) -#IF (UARTAFC) +#IF (UART0AFC) PRTS(" AFC$") LD A,$55 ; TEST VALUE - OUT (SIO_SCR),A ; SET SCRATCH REG TO TEST VALUE + OUT (UART0_SCR),A ; SET SCRATCH REG TO TEST VALUE LD A,0BFH - OUT (SIO_LCR),A ; SET LCR=$BF TO ATTEMPT TO ACCESS EFR - IN A,(SIO_SCR) ; READ SCRATCH REGISTER + OUT (UART0_LCR),A ; SET LCR=$BF TO ATTEMPT TO ACCESS EFR + IN A,(UART0_SCR) ; READ SCRATCH REGISTER CP $55 ; IF $55, NO EFR - JR NZ,UART_AFC1 ; NZ, HAVE EFR, DO IT + JR NZ,UART0_AFC1 ; NZ, HAVE EFR, DO IT SET 5,B ; ENABLE AUTO FLOW CONTROL - JR UART_AFC2 -UART_AFC1: + JR UART0_AFC2 +UART0_AFC1: LD A,0C0H ; ENABLE CTS/RTS FLOW CONTROL - OUT (SIO_EFR),A ; SAVE IT -UART_AFC2: + OUT (UART0_EFR),A ; SAVE IT +UART0_AFC2: #ENDIF LD A,03H - OUT (SIO_LCR),A ; DLAB OFF, 8 DATA, 1 STOP, NO PARITY + OUT (UART0_LCR),A ; DLAB OFF, 8 DATA, 1 STOP, NO PARITY LD A,B ; LOAD MCR VALUE TO SET - OUT (SIO_MCR),A ; SAVE IT + OUT (UART0_MCR),A ; SAVE IT -#IF (UARTFIFO) +#IF (UART0FIFO) ; LD A,07H ; ENABLE AND RESET FIFOS LD A,01H ; ENABLE AND RESET FIFOS - OUT (SIO_FCR),A ; ENABLE FIFOS + OUT (UART0_FCR),A ; ENABLE FIFOS PRTS(" FIFO$") #ENDIF RET ; ; ; +UART0_DISPATCH: + LD A,B ; GET REQUESTED FUNCTION + AND $0F ; ISOLATE SUB-FUNCTION + JP Z,UART0_IN + DEC A + JP Z,UART0_OUT + DEC A + JP Z,UART0_IST + DEC A + JP Z,UART0_OST + CALL PANIC +; +; +; UART0_IN: CALL UART0_IST OR A JR Z,UART0_IN - IN A,(SIO_RBR) ; READ THE CHAR FROM THE UART + IN A,(UART0_RBR) ; READ THE CHAR FROM THE UART LD E,A RET ; ; ; UART0_IST: - IN A,(SIO_LSR) ; READ LINE STATUS REGISTER + IN A,(UART0_LSR) ; READ LINE STATUS REGISTER AND $01 ; TEST IF DATA IN RECEIVE BUFFER JP Z,CIO_IDLE ; DO IDLE PROCESSING AND RETURN XOR A @@ -102,13 +210,123 @@ UART0_OUT: OR A JR Z,UART0_OUT LD A,E - OUT (SIO_THR),A ; THEN WRITE THE CHAR TO UART + OUT (UART0_THR),A ; THEN WRITE THE CHAR TO UART RET ; UART0_OST: - IN A,(SIO_LSR) ; READ LINE STATUS REGISTER + IN A,(UART0_LSR) ; READ LINE STATUS REGISTER AND $20 JP Z,CIO_IDLE ; DO IDLE PROCESSING AND RETURN XOR A INC A ; SIGNAL BUFFER EMPTY, A = 1 RET +; +#ENDIF +; +; +; +#IF (UARTCNT >= 2) +; +UART1_INIT: + CALL NEWLINE + PRTS("UART1: IO=0x$") + LD A,UART1IOB + CALL PRTHEXBYTE + PRTS(" BAUD=$") + LD HL,UART1BAUD / 10 + CALL PRTDEC + PRTC('0') + + LD A,80H + OUT (UART1_LCR),A ; DLAB ON + LD A,UART1_DIV % $100 + OUT (UART1_DLL),A ; SET DIVISOR (LS) + LD A,UART1_DIV / $100 + OUT (UART1_DLM),A ; SET DIVISOR (MS) + + LD B,03H ; B = DEFAULT SETTING FOR MCR (DTR + RTS) + +#IF (UART1AFC) + PRTS(" AFC$") + LD A,$55 ; TEST VALUE + OUT (UART1_SCR),A ; SET SCRATCH REG TO TEST VALUE + LD A,0BFH + OUT (UART1_LCR),A ; SET LCR=$BF TO ATTEMPT TO ACCESS EFR + IN A,(UART1_SCR) ; READ SCRATCH REGISTER + CP $55 ; IF $55, NO EFR + JR NZ,UART1_AFC1 ; NZ, HAVE EFR, DO IT + SET 5,B ; ENABLE AUTO FLOW CONTROL + JR UART1_AFC2 +UART1_AFC1: + LD A,0C0H ; ENABLE CTS/RTS FLOW CONTROL + OUT (UART1_EFR),A ; SAVE IT +UART1_AFC2: +#ENDIF + + LD A,03H + OUT (UART1_LCR),A ; DLAB OFF, 8 DATA, 1 STOP, NO PARITY + + LD A,B ; LOAD MCR VALUE TO SET + OUT (UART1_MCR),A ; SAVE IT + +#IF (UART1FIFO) +; LD A,07H ; ENABLE AND RESET FIFOS + LD A,01H ; ENABLE AND RESET FIFOS + OUT (UART1_FCR),A ; ENABLE FIFOS + PRTS(" FIFO$") +#ENDIF + RET +; +; +; +UART1_DISPATCH: + LD A,B ; GET REQUESTED FUNCTION + AND $0F ; ISOLATE SUB-FUNCTION + JP Z,UART1_IN + DEC A + JP Z,UART1_OUT + DEC A + JP Z,UART1_IST + DEC A + JP Z,UART1_OST + CALL PANIC +; +; +; +UART1_IN: + CALL UART1_IST + OR A + JR Z,UART1_IN + IN A,(UART1_RBR) ; READ THE CHAR FROM THE UART + LD E,A + RET +; +; +; +UART1_IST: + IN A,(UART1_LSR) ; READ LINE STATUS REGISTER + AND $01 ; TEST IF DATA IN RECEIVE BUFFER + JP Z,CIO_IDLE ; DO IDLE PROCESSING AND RETURN + XOR A + INC A ; SIGNAL CHAR READY, A = 1 + RET +; +; +; +UART1_OUT: + CALL UART1_OST + OR A + JR Z,UART1_OUT + LD A,E + OUT (UART1_THR),A ; THEN WRITE THE CHAR TO UART + RET +; +UART1_OST: + IN A,(UART1_LSR) ; READ LINE STATUS REGISTER + AND $20 + JP Z,CIO_IDLE ; DO IDLE PROCESSING AND RETURN + XOR A + INC A ; SIGNAL BUFFER EMPTY, A = 1 + RET +; +#ENDIF diff --git a/Source/ver.inc b/Source/ver.inc index 7b6077bc..670de851 100644 --- a/Source/ver.inc +++ b/Source/ver.inc @@ -1,6 +1,6 @@ #DEFINE RMJ 2 #DEFINE RMN 5 #DEFINE RUP 0 -#DEFINE RTP 10 -#DEFINE BIOSVER "2.5 - Beta 10" +#DEFINE RTP 12 +#DEFINE BIOSVER "2.5 - Beta 12" #DEFINE REVISION 412 diff --git a/Source/xio.asm b/Source/xio.asm index 2777e678..a79e27bf 100644 --- a/Source/xio.asm +++ b/Source/xio.asm @@ -17,13 +17,13 @@ XIO_INIT: ; MINIMAL UART INIT OUT0 (CPU_CNTLB0),A RET #ELSE -XIO_DIV .EQU (1843200 / (16 * BAUDRATE)) +XIO_DIV .EQU (1843200 / (16 * CONBAUD)) LD A,$80 ; LCR := DLAB ON OUT (SIO_LCR),A ; SET LCR - LD A,XIO_DIV ; BAUD RATE DIVISOR (LSB) + LD A,XIO_DIV % $100 ; BAUD RATE DIVISOR (LSB) OUT (SIO_DLL),A ; SET DIVISOR (LSB) - XOR A ; BAUD RATE DIVISOR (MSB), ALWAYS 0 + LD A,XIO_DIV / $100 ; BAUD RATE DIVISOR (MSB) OUT (SIO_DLM),A ; SET DIVISOR (MSB) LD A,03H ; VALUE FOR LCR AND MCR OUT (SIO_LCR),A ; LCR := 3, DLAB OFF, 8 DATA, 1 STOP, NO PARITY