diff --git a/Doc/ChangeLog.txt b/Doc/ChangeLog.txt index 3cec6d08..c2f29d4d 100644 --- a/Doc/ChangeLog.txt +++ b/Doc/ChangeLog.txt @@ -9,6 +9,9 @@ Version 2.9.1 - WBW: Map LPT: to second serial port, UL1: to third serial port - WBW: Update default IOBYTE so that LST:=LPT: by default - WBW: Fixed missing drive/head setup for writes in PPIDE +- WBW: Fixed XModem HBIOS console driver for file send operations +- WBW: Preliminary support for RC180 platform (Z180 module in RC2014) +- WBW: Added NZCOM distribution files to third slice of hard disk image Version 2.9.0 ------------- diff --git a/Doc/Testing Notes.txt b/Doc/Testing Notes.txt new file mode 100644 index 00000000..e0b73f67 --- /dev/null +++ b/Doc/Testing Notes.txt @@ -0,0 +1,165 @@ +SIMH (X) +---- +- Test UART driver +- Test HDSK driver + +Zeta 1 (X) +------ +- Test UART driver +- Test PPP detection (startup w/ and w/o PPP) +- Test boot to CRT +- Test PPPSD driver +- Test PPPCON driver (video & kbd) +- Test FD driver +- Test FDU app + +Zeta 2 (X) +------ +- Test UART driver +- Test PPP detection (startup w/ and w/o PPP) +- Test boot to CRT +- Test PPPSD driver +- Test PPPCON driver (video & kbd) +- Test FD driver +- Test FDU app + +RC2014 (X) +------ +- Test SIO driver (Serial Module) +- Test ACIA driver (Dual Serial Module) +- Test IDE driver (Compact Flash Module) +- Test PPIDE driver (IDE Module) +- Test FD driver (SMC and WDC) +- Test FDU app (SMC and WDC) + +N8-2312 (X) +------- +- Test ASCI driver +- Test SD driver (CSIO mode) +- Test FD driver +- Test FDU app +- Test TMS driver (video & kbd) + +N8-2511 ( ) +------- +- Test ASCI driver +- Test SD driver (Juha mode) +- Test FD driver +- Test FDU app +- Test TMS driver (video & kbd) + +SBC (X) +--- +- Test UART driver +- Test PPIDE driver +- Test PPISD driver +- Test PRP detection +- Test boot to CRT console + +MK4 (X) +--- +- Test ASCI driver +- Test IDE driver +- Test SD driver +- Test PRP detection + +RAMF (X) +---- +- Test RAMF driver + +PRP (X) +--- +- Test PRPSD driver +- Test PRPCON driver (video & kbd) + +SCG (X) +--- +- Test TMS driver (video) + +VDU (X) +--- +- Test CVDU driver (video & kbd) + +CVDU (X) +---- +- Test CVDU driver (video & kbd) + +VGA (X) +--- +- Test VGA driver (video & kbd) + +DIO (X) +--- +- Test FD driver +- Test FDU app +- Test IDE driver + +DIO3 (X) +---- +- Test FD driver +- Test FDU app +- Test PPIDE driver + +DIDE (X) +---- +- Test FD driver +- Test FDU app +- Test IDE driver + +DSD (X) +--- +- Test SD driver + +4UART (X) +----- +- Test UART driver + + +UNA (X) +--- +- General Startup +- Boot from disk functionality +- Image loading +- Monitor +- XM app +- ASSIGN app +- MODE app +- SYSCOPY app +- OSLDR app +- FDU app +- FDISK80 app + +GENERAL (X) +------- +- Boot to ROM +- Boot to Disk +- Boot to Monitor +- XM app +- XM port auto-detect +- ASSIGN app +- MODE app +- SYSCOPY app +- OSLDR app +- FDU app +- FDISK80 app +- TUNE app + +RESULTS +------- +- Missing HBIOS startup banner (X) +- PANIC while printing Serial device inventory (X) +- Unexpected interrupt signals not handled well (X) +- Fix IT_??? usage (X) +- Fix HB_DI/HB_EI in PEEK/POKE/BNKCPY (X) +- Fix SIMH timer interrupt setup (X) +- Move DI/EI in PEEK/POKE/BNKCPY to API layer? (X) +- RETI vs. JP in page zero when INTMODE = 0 (X) +- Check interrupt stack space (X) +- If an early INT fires, we return with INTs enabled (not good) (X) +- PPPCON init should display ANSI 80x25 or similar (X) +- Add INT MODE X message to early boot messages (X) +- OSLDR fails when LDDS is loaded (X) +- Add "!!!" to force assembly error as needed ( ) +- TIMER app should check for HBIOS active (X) +- Halt system after bad interrupt??? ( ) +- Adapt and bundle PLAYER.COM (X) diff --git a/ReadMe.txt b/ReadMe.txt index c3da0e99..c5523808 100644 --- a/ReadMe.txt +++ b/ReadMe.txt @@ -7,7 +7,7 @@ *********************************************************************** Wayne Warthen (wwarthen@gmail.com) -Version 2.9.1-pre.3, 2018-05-03 +Version 2.9.1-pre.4, 2018-05-21 https://www.retrobrewcomputers.org/ RomWBW is a ROM-based implementation of CP/M-80 2.2 and Z-System for diff --git a/Source/Apps/XM/xmhb.180 b/Source/Apps/XM/xmhb.180 index a09906b8..ffc03b2b 100644 --- a/Source/Apps/XM/xmhb.180 +++ b/Source/Apps/XM/xmhb.180 @@ -125,7 +125,7 @@ UINIT1: ; MINIT1: ; NOTE: PLTID is only set if RomWBW HBIOS is active. This is OK - ; because RC2014 is only support by RomWBW HBIOS at this point. + ; because RC2014 is only supported by RomWBW HBIOS at this point. LD A,(PLTID) ; Get the platform id CP 7 ; Check for RC2014 JR Z,RCINIT ; Handle RC2014 special @@ -483,7 +483,12 @@ A_SPEED: LD A,8 ; arbitrarily return 9600 baud RET ; -; HBIOS CONSOLE +;======================================================================= +;======================================================================= +; +; HBIOS CONSOLE (COM0:) +; +; Will be used for all RC2014 systems ; ;======================================================================= ;======================================================================= @@ -531,15 +536,25 @@ HB_CAROK: ; ; Get a character (assume character ready has already been tested) ; +; This routine must NOT block. +; HB_MDIN: HB_GETCHR: PUSH BC PUSH DE PUSH HL + LD B,02H ; HBIOS IST function + LD C,0 ; console is unit 0 by fiat + RST 08 ; HBIOS call, A := bytes pending + JR NZ,HB_MDIN1 ; If char(s) waiting, go get it + XOR A ; otherwise, return null + JR HB_MDIN2 ; and done +HB_MDIN1: LD B,00H ; HBIOS IN function LD C,0 ; console is unit 0 by fiat RST 08 ; HBIOS call LD A,E ; byte received to A +HB_MDIN2: POP HL POP DE POP BC @@ -577,7 +592,7 @@ HB_SNDRDY: PUSH HL LD B,03H ; HBIOS OST function LD C,0 ; console is unit 0 by fiat - RST 08 ; HBIOS call, A := bytes pending + RST 08 ; HBIOS call, A := xmit buf bytes avail SUB 1 ; CF set IFF zero RL A ; CF to bit 0 of A AND 01H ; set Z flag as needed diff --git a/Source/CBIOS/ver.inc b/Source/CBIOS/ver.inc index f714f8a2..bb4605bb 100644 --- a/Source/CBIOS/ver.inc +++ b/Source/CBIOS/ver.inc @@ -2,4 +2,4 @@ #DEFINE RMN 9 #DEFINE RUP 1 #DEFINE RTP 0 -#DEFINE BIOSVER "2.9.1-pre.3" +#DEFINE BIOSVER "2.9.1-pre.4" diff --git a/Source/HBIOS/Build.ps1 b/Source/HBIOS/Build.ps1 index d56b4066..19525ceb 100644 --- a/Source/HBIOS/Build.ps1 +++ b/Source/HBIOS/Build.ps1 @@ -28,8 +28,8 @@ param([string]$Platform = "", [string]$Config = "", [string]$RomSize = "512", [s $Platform = $Platform.ToUpper() while ($true) { - if (($Platform -eq "SBC") -or ($Platform -eq "ZETA") -or ($Platform -eq "ZETA2") -or ($Platform -eq "RC") -or ($Platform -eq "N8") -or ($Platform -eq "MK4") -or ($Platform -eq "UNA")) {break} - $Platform = (Read-Host -prompt "Platform [SBC|ZETA|ZETA2|RC|N8|MK4|UNA]").Trim().ToUpper() + if (($Platform -eq "SBC") -or ($Platform -eq "ZETA") -or ($Platform -eq "ZETA2") -or ($Platform -eq "RC") -or ($Platform -eq "RC180") -or ($Platform -eq "N8") -or ($Platform -eq "MK4") -or ($Platform -eq "UNA")) {break} + $Platform = (Read-Host -prompt "Platform [SBC|ZETA|ZETA2|RC|RC180|N8|MK4|UNA]").Trim().ToUpper() } # @@ -66,7 +66,7 @@ while ($true) # TASM should be invoked with the proper CPU type. Below, the CPU type is inferred # from the platform. # -if (($Platform -eq "N8") -or ($Platform -eq "MK4")) {$CPUType = "180"} else {$CPUType = "80"} +if (($Platform -eq "N8") -or ($Platform -eq "MK4") -or ($Platform -eq "RC180")) {$CPUType = "180"} else {$CPUType = "80"} # # The $RomName variable determines the name of the image created by the script. By default, diff --git a/Source/HBIOS/Config/RC180_std.asm b/Source/HBIOS/Config/RC180_std.asm new file mode 100644 index 00000000..affb8d3e --- /dev/null +++ b/Source/HBIOS/Config/RC180_std.asm @@ -0,0 +1,26 @@ +; +;================================================================================================== +; RC2014 STANDARD CONFIGURATION +;================================================================================================== +; +#include "cfg_rc180.asm" +; +Z180_CLKDIV .SET 1 ; 0=OSC/2, 1=OSC, 2=OSC*2 +Z180_MEMWAIT .SET 0 ; MEMORY WAIT STATES TO INSERT (0-3) +Z180_IOWAIT .SET 1 ; IO WAIT STATES TO INSERT (0-3) +; +CPUOSC .SET 18432000 ; CPU OSC FREQ +DEFSERCFG .SET SER_115200_8N1 ; DEFAULT SERIAL LINE CONFIG (SHOULD MATCH ABOVE) +; +SIOENABLE .SET FALSE ; TRUE TO AUTO-DETECT ZILOG SIO/2 +SIOMODE .SET SIOMODE_RC ; TYPE OF SIO/2 TO DETECT: SIOMODE_RC, SIOMODE_SMB +ACIAENABLE .SET FALSE ; TRUE TO AUTO-DETECT MOTOROLA 6850 ACIA +; +FDENABLE .SET FALSE ; TRUE FOR FLOPPY SUPPORT +FDMODE .SET FDMODE_RCWDC ; FDMODE_RCSMC, FDMODE_RCWDC +; +IDEENABLE .SET TRUE ; TRUE FOR IDE DEVICE SUPPORT (CF MODULE) +IDEMODE .SET IDEMODE_RC ; TYPE OF CF MODULE: IDEMODE_RC, IDEMODE_SMB +PPIDEENABLE .SET FALSE ; TRUE FOR PPIDE DEVICE SUPPORT (PPIDE MODULE) +; +DSRTCENABLE .SET FALSE ; DS-1302 CLOCK DRIVER diff --git a/Source/HBIOS/cfg_rc180.asm b/Source/HBIOS/cfg_rc180.asm new file mode 100644 index 00000000..7b687313 --- /dev/null +++ b/Source/HBIOS/cfg_rc180.asm @@ -0,0 +1,82 @@ +; +;================================================================================================== +; ROMWBW 2.X CONFIGURATION DEFAULTS FOR RC2014 +;================================================================================================== +; +; BUILD CONFIGURATION OPTIONS +; +CPUOSC .EQU 18432000 ; CPU OSC FREQ +RAMSIZE .EQU 512 ; SIZE OF RAM IN KB, MUST MATCH YOUR HARDWARE!!! +DEFSERCFG .EQU SER_115200_8N1 ; DEFAULT SERIAL LINE CONFIG (SHOULD MATCH ABOVE) +INTMODE .EQU 2 ; 0=NONE, 1=INT MODE 1, 2=INT MODE 2 +; +CRTACT .EQU FALSE ; CRT ACTIVATION AT STARTUP +VDAEMU .EQU EMUTYP_ANSI ; DEFAULT VDA EMULATION (EMUTYP_TTY, EMUTYP_ANSI, ...) +; +DSKYENABLE .EQU FALSE ; TRUE FOR DSKY SUPPORT (DO NOT COMBINE WITH PPIDE) +; +HTIMENABLE .EQU FALSE ; TRUE FOR SIMH TIMER SUPPORT +SIMRTCENABLE .EQU FALSE ; SIMH CLOCK DRIVER +DSRTCENABLE .EQU FALSE ; DS-1302 CLOCK DRIVER +DSRTCMODE .EQU DSRTCMODE_STD ; DSRTCMODE_STD, DSRTCMODE_MFPIC +; +ASCIENABLE .EQU TRUE ; TRUE FOR Z180 ASCI SUPPORT +UARTENABLE .EQU FALSE ; TRUE FOR UART SUPPORT (ALMOST ALWAYS WANT THIS TO BE TRUE) +UARTOSC .EQU 1843200 ; UART OSC FREQUENCY +SIOENABLE .EQU FALSE ; TRUE FOR ZILOG SIO/2 SUPPORT +SIOMODE .EQU SIOMODE_RC ; SIOMODE_RC, SIOMODE_SMB +ACIAENABLE .EQU FALSE ; TRUE FOR MOTOROLA 6850 ACIA SUPPORT +; +VDUENABLE .EQU FALSE ; TRUE FOR VDU BOARD SUPPORT +CVDUENABLE .EQU FALSE ; TRUE FOR CVDU BOARD SUPPORT +NECENABLE .EQU FALSE ; TRUE FOR uPD7220 BOARD SUPPORT +TMSENABLE .EQU FALSE ; TRUE FOR N8 (TMS9918) VIDEO/KBD SUPPORT +VGAENABLE .EQU FALSE ; TRUE FOR VGA VIDEO/KBD SUPPORT +; +MDENABLE .EQU TRUE ; TRUE FOR ROM/RAM DISK SUPPORT (ALMOST ALWAYS WANT THIS ENABLED) +MDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF MDENABLE = TRUE) +; +FDENABLE .EQU FALSE ; TRUE FOR FLOPPY SUPPORT +FDMODE .EQU FDMODE_RCWDC ; 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 +; +RFENABLE .EQU FALSE ; TRUE FOR RAM FLOPPY SUPPORT +; +IDEENABLE .EQU FALSE ; TRUE FOR IDE SUPPORT +IDEMODE .EQU IDEMODE_RC ; IDEMODE_DIO, IDEMODE_DIDE, IDEMODE_RC +IDETRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF IDEENABLE = TRUE) +IDE8BIT .EQU TRUE ; USE IDE 8BIT TRANSFERS (PROBABLY ONLY WORKS FOR CF CARDS!) +; +PPIDEENABLE .EQU FALSE ; TRUE FOR PPIDE SUPPORT (DO NOT COMBINE WITH DSKYENABLE) +PPIDEMODE .EQU PPIDEMODE_RC ; PPIDEMODE_SBC, PPPIDEMODE_DIO3, PPIDEMODE_MFP, PPIDEMODE_N8, PPIDEMODE_RC +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!) +; +SDENABLE .EQU FALSE ; TRUE FOR SD SUPPORT +SDMODE .EQU SDMODE_PPI ; SDMODE_JUHA, SDMODE_CSIO, SDMODE_UART, SDMODE_PPI, SDMODE_DSD +SDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF IDEENABLE = TRUE) +SDCSIOFAST .EQU FALSE ; TABLE-DRIVEN BIT INVERTER +; +PRPENABLE .EQU FALSE ; TRUE FOR PROPIO SUPPORT +; +PPPENABLE .EQU FALSE ; TRUE FOR PARPORTPROP SUPPORT +PPPSDENABLE .EQU TRUE ; TRUE FOR PARPORTPROP SD SUPPORT +PPPSDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF PPPENABLE = TRUE) +PPPCONENABLE .EQU TRUE ; TRUE FOR PROPIO CONSOLE SUPPORT (PS/2 KBD & VGA VIDEO) +; +HDSKENABLE .EQU FALSE ; TRUE FOR SIMH HDSK SUPPORT +; +TERMENABLE .EQU FALSE ; TERM PSEUDO DEVICE, WILL BE ENABLED IF A VDA IS ENABLED +; +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 'Z' ; SELECTION TO INVOKE AT TIMEOUT +; +; 18.432MHz OSC @ FULL SPEED +; +Z180_CLKDIV .EQU 1 ; 0=OSC/2, 1=OSC, 2=OSC*2 +Z180_MEMWAIT .EQU 0 ; MEMORY WAIT STATES TO INSERT (0-3) +Z180_IOWAIT .EQU 1 ; IO WAIT STATES TO INSERT (0-3) diff --git a/Source/HBIOS/hbios.asm b/Source/HBIOS/hbios.asm index 9df40506..e136b59b 100644 --- a/Source/HBIOS/hbios.asm +++ b/Source/HBIOS/hbios.asm @@ -270,7 +270,7 @@ HBX_ROM: OUT (MPCL_ROM),A ; SET ROM PAGE SELECTOR RET ; DONE #ENDIF -#IF ((PLATFORM == PLT_ZETA2) | (PLATFORM == PLT_RC)) +#IF ((PLATFORM == PLT_ZETA2) | (PLATFORM == PLT_RC) | (PLATFORM == PLT_RC180)) BIT 7,A ; BIT 7 SET REQUESTS RAM PAGE JR Z,HBX_ROM ; NOT SET, SELECT ROM PAGE RES 7,A ; RAM PAGE REQUESTED: CLEAR ROM BIT @@ -636,7 +636,7 @@ HB_START: IM 1 ; INTERRUPT MODE 1 LD SP,HBX_LOC ; SETUP INITIAL STACK JUST BELOW HBIOS PROXY ; -#IF ((PLATFORM == PLT_N8) | (PLATFORM == PLT_MK4)) +#IF ((PLATFORM == PLT_N8) | (PLATFORM == PLT_MK4) | (PLATFORM == PLT_RC180)) ; SET BASE FOR CPU IO REGISTERS LD A,Z180_BASE OUT0 (Z180_ICR),A @@ -658,6 +658,7 @@ HB_START: LD A,$F0 OUT0 (Z180_DCNTL),A +#IF ((PLATFORM == PLT_N8) | (PLATFORM == PLT_MK4)) ; MMU SETUP LD A,$80 OUT0 (Z180_CBAR),A ; SETUP FOR 32K/32K BANK CONFIG @@ -667,6 +668,7 @@ HB_START: ;#ENDIF LD A,(RAMSIZE + RAMBIAS - 64) >> 2 OUT0 (Z180_CBR),A ; COMMON BASE = LAST (TOP) BANK +#ENDIF #IF (Z180_CLKDIV >= 1) ; SET CLOCK DIVIDE TO 1 RESULTING IN FULL XTAL SPEED @@ -682,7 +684,7 @@ HB_START: #ENDIF ; -#IF ((PLATFORM == PLT_ZETA2) | (PLATFORM == PLT_RC)) +#IF ((PLATFORM == PLT_ZETA2) | (PLATFORM == PLT_RC) | (PLATFORM == PLT_RC180)) ; SET PAGING REGISTERS #IFDEF ROMBOOT XOR A @@ -788,7 +790,7 @@ HB_START1: ; BNKCALL ARRIVES HERE, BUT NOW RUNNING IN RAM BANK ; CALL HB_CPUSPD ; CPU SPEED DETECTION ; -#IF ((PLATFORM == PLT_N8) | (PLATFORM == PLT_MK4)) +#IF ((PLATFORM == PLT_N8) | (PLATFORM == PLT_MK4) | (PLATFORM == PLT_RC180)) ; ; SET DESIRED WAIT STATES LD A,0 + (Z180_MEMWAIT << 6) | (Z180_IOWAIT << 4) @@ -881,7 +883,7 @@ PSCNX .EQU $ + 1 LD A,HBX_IVT >> 8 ; SETUP HI BYTE OF IVT ADDRESS LD I,A ; ... AND PLACE IT IN I REGISTER - #IF ((PLATFORM == PLT_N8) | (PLATFORM == PLT_MK4)) + #IF ((PLATFORM == PLT_N8) | (PLATFORM == PLT_MK4) | (PLATFORM == PLT_RC180)) XOR A ; SETUP LO BYTE OF IVT ADDRESS OUT0 (Z180_IL),A ; ... AND PLACE IN Z180 IL REGISTER #ENDIF @@ -907,7 +909,7 @@ PSCNX .EQU $ + 1 ; #ENDIF ; -#IF ((PLATFORM == PLT_N8) | (PLATFORM == PLT_MK4)) +#IF ((PLATFORM == PLT_N8) | (PLATFORM == PLT_MK4) | (PLATFORM == PLT_RC180)) ; #IF (INTMODE == 2) ; @@ -953,7 +955,7 @@ PSCNX .EQU $ + 1 ;CALL PRTSTRD ;.TEXT ", $" CALL NEWLINE -#IF ((PLATFORM == PLT_N8) | (PLATFORM == PLT_MK4)) +#IF ((PLATFORM == PLT_N8) | (PLATFORM == PLT_MK4) | (PLATFORM == PLT_RC180)) LD A,Z180_MEMWAIT #ELSE LD A,0 @@ -961,7 +963,7 @@ PSCNX .EQU $ + 1 CALL PRTDECB CALL PRTSTRD .TEXT " MEM W/S, $" -#IF ((PLATFORM == PLT_N8) | (PLATFORM == PLT_MK4)) +#IF ((PLATFORM == PLT_N8) | (PLATFORM == PLT_MK4) | (PLATFORM == PLT_RC180)) LD A,Z180_IOWAIT + 1 #ELSE LD A,1 @@ -1030,7 +1032,7 @@ INITSYS1: ; IF PLATFORM HAS A CONFIG JUMPER, CHECK TO SEE IF IT IS JUMPERED. ; IF SO, BYPASS SWITCH TO CRT CONSOLE (FAILSAFE MODE) ; -#IF ((PLATFORM != PLT_N8) & (PLATFORM != PLT_MK4)) +#IF ((PLATFORM != PLT_N8) & (PLATFORM != PLT_MK4) & (PLATFORM != PLT_RC) & (PLATFORM != PLT_RC180)) IN A,(RTC) ; RTC PORT, BIT 6 HAS STATE OF CONFIG JUMPER BIT 6,A ; BIT 6 HAS CONFIG JUMPER STATE JR Z,INITSYS3 ; Z=SHORTED, BYPASS CONSOLE SWITCH @@ -1798,7 +1800,7 @@ TEMPCNT .DB 250 ; HB_TIMINT2: ; -#IF ((PLATFORM == PLT_N8) | (PLATFORM == PLT_MK4)) +#IF ((PLATFORM == PLT_N8) | (PLATFORM == PLT_MK4) | (PLATFORM == PLT_RC180)) ; ACK/RESET Z180 TIMER INTERRUPT IN0 A,(Z180_TCR) IN0 A,(Z180_TMDR0L) @@ -2249,7 +2251,7 @@ HB_CPUSPD1: ; ; TIMES 4 FOR CPU SPEED IN KHZ RES 0,L ; GRANULARITY -#IF ((PLATFORM == PLT_N8) | (PLATFORM == PLT_MK4)) +#IF ((PLATFORM == PLT_N8) | (PLATFORM == PLT_MK4) | (PLATFORM == PLT_RC180)) SLA L RL H #ENDIF @@ -2287,7 +2289,7 @@ HB_WAITSEC1: NOP ; 4 TSTATES #ENDIF -#IF ((PLATFORM == PLT_N8) | (PLATFORM == PLT_MK4)) +#IF ((PLATFORM == PLT_N8) | (PLATFORM == PLT_MK4) | (PLATFORM == PLT_RC180)) ; LOOP TARGET IS 8000 T-STATES, SO CPU FREQ IN KHZ = LOOP COUNT * 8 ;CALL DLY64 CALL DLY32 diff --git a/Source/HBIOS/plt_rc180.inc b/Source/HBIOS/plt_rc180.inc new file mode 100644 index 00000000..2ab74f51 --- /dev/null +++ b/Source/HBIOS/plt_rc180.inc @@ -0,0 +1,17 @@ +; +; RC2014 Z180 HARDWARE DEFINITIONS +; +SBC_BASE .EQU $60 ; I/O BASE ADDRESS FOR ONBOARD PERIPHERALS +; +MPGSEL_0 .EQU SBC_BASE + $18 ; BANK_0 PAGE SELECT REGISTER (WRITE ONLY) +MPGSEL_1 .EQU SBC_BASE + $19 ; BANK_1 PAGE SELECT REGISTER (WRITE ONLY) +MPGSEL_2 .EQU SBC_BASE + $1A ; BANK_2 PAGE SELECT REGISTER (WRITE ONLY) +MPGSEL_3 .EQU SBC_BASE + $1B ; BANK_3 PAGE SELECT REGISTER (WRITE ONLY) +MPGENA .EQU SBC_BASE + $1C ; PAGING ENABLE REGISTER - BIT 0 = 1 (WRITE ONLY) +; +RTC .EQU SBC_BASE + $10 ; ADDRESS OF RTC LATCH AND INPUT PORT +PPIBASE .EQU SBC_BASE + $00 ; PPI 82C55 I/O IS DECODED TO PORT 60-67 +SIOBASE .EQU SBC_BASE + $08 ; 16550 UART I/O BASE ADDRESS +; +Z180_BASE .EQU $C0 ; I/O BASE ADDRESS FOR INTERNAL Z180 REGISTERS +#INCLUDE "z180.inc" diff --git a/Source/HBIOS/std.asm b/Source/HBIOS/std.asm index 62827ef0..96cd946a 100644 --- a/Source/HBIOS/std.asm +++ b/Source/HBIOS/std.asm @@ -34,6 +34,7 @@ PLT_N8 .EQU 4 ; N8 (HOME COMPUTER) Z180 SBC PLT_MK4 .EQU 5 ; MARK IV PLT_UNA .EQU 6 ; UNA BIOS PLT_RC .EQU 7 ; RC2014 +PLT_RC180 .EQU 8 ; RC2014 W/ Z180 ; #IF (PLATFORM != PLT_UNA) #INCLUDE "hbios.inc" @@ -182,7 +183,7 @@ IVT_SER1 .EQU 16 ; #INCLUDE "build.inc" ; INCLUDE USER CONFIG, ADD VARIANT, TIMESTAMP, & ROMSIZE ; -#IF ((PLATFORM == PLT_N8) | (PLATFORM == PLT_MK4)) +#IF ((PLATFORM == PLT_N8) | (PLATFORM == PLT_MK4) | (PLATFORM == PLT_RC180)) #DEFINE CPU_Z180 #ELSE #DEFINE CPU_Z80 @@ -209,7 +210,10 @@ IVT_SER1 .EQU 16 #DEFINE PLATFORM_NAME "UNA" #ENDIF #IF (PLATFORM == PLT_RC) - #DEFINE PLATFORM_NAME "RC2014" + #DEFINE PLATFORM_NAME "RC2014 Z80" +#ENDIF +#IF (PLATFORM == PLT_RC180) + #DEFINE PLATFORM_NAME "RC2014 Z180" #ENDIF ; ; INCLUDE PLATFORM SPECIFIC HARDWARE DEFINITIONS @@ -234,6 +238,10 @@ IVT_SER1 .EQU 16 #INCLUDE "plt_rc.inc" #ENDIF ; +#IF (PLATFORM == PLT_RC180) +#INCLUDE "plt_rc180.inc" +#ENDIF +; ; SETUP DEFAULT CPU SPEED VALUES ; CPUKHZ .EQU CPUOSC / 1000 ; CPU FREQ IN KHZ diff --git a/Source/HBIOS/ver.inc b/Source/HBIOS/ver.inc index f714f8a2..bb4605bb 100644 --- a/Source/HBIOS/ver.inc +++ b/Source/HBIOS/ver.inc @@ -2,4 +2,4 @@ #DEFINE RMN 9 #DEFINE RUP 1 #DEFINE RTP 0 -#DEFINE BIOSVER "2.9.1-pre.3" +#DEFINE BIOSVER "2.9.1-pre.4" diff --git a/Source/Images/hd0/s2/u0/ALIAS.CMD b/Source/Images/hd0/s2/u0/ALIAS.CMD new file mode 100644 index 00000000..4e5e0850 Binary files /dev/null and b/Source/Images/hd0/s2/u0/ALIAS.CMD differ diff --git a/Source/Images/hd0/s2/u0/ARUNZ.COM b/Source/Images/hd0/s2/u0/ARUNZ.COM new file mode 100644 index 00000000..e36a3be6 Binary files /dev/null and b/Source/Images/hd0/s2/u0/ARUNZ.COM differ diff --git a/Source/Images/hd0/s2/u0/CMD.COM b/Source/Images/hd0/s2/u0/CMD.COM new file mode 100644 index 00000000..9ac106c1 Binary files /dev/null and b/Source/Images/hd0/s2/u0/CMD.COM differ diff --git a/Source/Images/hd0/s2/u0/COMP.COM b/Source/Images/hd0/s2/u0/COMP.COM new file mode 100644 index 00000000..194c0a97 Binary files /dev/null and b/Source/Images/hd0/s2/u0/COMP.COM differ diff --git a/Source/Images/hd0/s2/u0/COPY.COM b/Source/Images/hd0/s2/u0/COPY.COM new file mode 100644 index 00000000..693fa09d Binary files /dev/null and b/Source/Images/hd0/s2/u0/COPY.COM differ diff --git a/Source/Images/hd0/s2/u0/CPSET.COM b/Source/Images/hd0/s2/u0/CPSET.COM new file mode 100644 index 00000000..eaf91fa2 Binary files /dev/null and b/Source/Images/hd0/s2/u0/CPSET.COM differ diff --git a/Source/Images/hd0/s2/u0/CRUNCH.COM b/Source/Images/hd0/s2/u0/CRUNCH.COM new file mode 100644 index 00000000..d3a121a9 Binary files /dev/null and b/Source/Images/hd0/s2/u0/CRUNCH.COM differ diff --git a/Source/Images/hd0/s2/u0/DFA.COM b/Source/Images/hd0/s2/u0/DFA.COM new file mode 100644 index 00000000..2b008416 Binary files /dev/null and b/Source/Images/hd0/s2/u0/DFA.COM differ diff --git a/Source/Images/hd0/s2/u0/DFA.NOT b/Source/Images/hd0/s2/u0/DFA.NOT new file mode 100644 index 00000000..ef50301a --- /dev/null +++ b/Source/Images/hd0/s2/u0/DFA.NOT @@ -0,0 +1,66 @@ + Ne÷ Display/Definå Filå Attributeó Program + bù Joå Wright + +Filå  attributeó  arå  maintaineä  bù thå BDOÓ iî  thå  filespeã  portioî  oæ +directorù  entrieó foò eacè filå oî thå disk® Eacè filespeã containó  eleveî +ascié characteró comprisinç thå eighô characteò filenamå anä threå  characteò +type® Ascié characteró requirå onlù seveî oæ thå eighô bitó iî eacè oæ theså +bytes¬  thå  eightè biô ió thereforå availablå foò  assigninç  aî  attribute® +Theså eleveî 'high§ bitó arå referreä tï aó follows: + + f± f² f³ f´ fµ f¶ f· f¸ . t± t² t3 + +CP/Í  assignó t± aó thå Reaä Onlù attributå anä t² aó thå  Systeí  attribute® +MP/Í furtheò assigneä t³ aó thå Archiveä attribute® ZRDOÓ furtheò assignó f¸ +aó  thå Wheeì Protecô attribute® ZSDOÓ assignó f² aó thå  Publiã  attribute® +BackGroundeò  ié useó f± tï inhibiô itó keù-bindinç functioî anä  DateStampeò +useó f³ tï inhibiô stampinç oæ certaiî files® Thå resô arå unassigneä aó faò +aó É kno÷ anä maù bå useä aó yoõ wish. + + + Displaù syntaxº DFÁ [dir:][filespec] + +Displaù  modå takeó á singlå tokeî oò nï tokens® Botè dirº anä filespeã  arå +optional® Defaulô dirº ió thå currenô directorù anä defaulô filespeã ió wilä +(*.*)®   Useò ió giveî á sorteä filå lisô showinç thå  attributeó  associateä +witè each¬ sixteeî aô á time® + +DFÁ Displaù attributeó oæ alì fileó iî thå currenô directory. +DFÁ B2º Displaù foò alì fileó iî directorù B2: +DFÁ *.REÌ Displaù foò alì .REÌ fileó iî thå currenô directory. +DFÁ B2:*.REÌ Displaù foò alì .REÌ fileó iî B2: + + + Definå syntaxº DFÁ [dir:][filspecÝ + +Definitioî  modå  ió  defineä  bù á  seconä  anä  perhapó  subsequenô  tokenó +representinç  thå  variouó  attributes®   Thå tokeî  'f1§  wilì  seô  thå  f± +attributå foò alì filespeã files¬ §-f1§ wilì reseô it® Nameó associateä witè +thå variouó attributeó arå alsï accepteä aó tokens: + + f± oò nkâ Nï Keù Bindinç (BGii) + f² oò puâ Publiã File + f³ oò dsï DateStampeò Off + f´ + fµ + f¶ + f· + f¸ oò whì Wheeì Protected + . + t± or r/ï Reaä Only + t² or syó System + t³ or arã Archived + +Iæ  thå firsô letteò oæ á tokeî ió noô 'f§ oò 't'¬ thaô letteò ió  sufficienô +tï  identifù thå token® 'S'¬ 'sys§ oò 'system§ alì identifù t2® Anù oò  alì Šoæ thå eleveî attributeó maù bå defineä witè á singlå command. + +DFÁ *.TYÐ F± Seô f± oæ alì fileó .TYÐ iî thå currenô directory. +DFÁ A1:*.REÌ F² Ò Seô f² anä t1 oæ alì .REÌ fileó iî A1: +DFÁ *.Z8° -Ò Reseô t± oæ alì .Z8° fileó iî thå currenô directory. +DFÁ Aº -SYÓ Reseô t² oæ alì fileó iî A:¬ currenô user. +DFÁ ROOT:*.COÍ × Seô thå Wheeì attributå (f8© oæ alì .COÍ files + iî thå directorù nameä ROOT: + + + -end- + \ No newline at end of file diff --git a/Source/Images/hd0/s2/u0/DIR.COM b/Source/Images/hd0/s2/u0/DIR.COM new file mode 100644 index 00000000..84b03395 Binary files /dev/null and b/Source/Images/hd0/s2/u0/DIR.COM differ diff --git a/Source/Images/hd0/s2/u0/EASE.COM b/Source/Images/hd0/s2/u0/EASE.COM new file mode 100644 index 00000000..5a95e78e Binary files /dev/null and b/Source/Images/hd0/s2/u0/EASE.COM differ diff --git a/Source/Images/hd0/s2/u0/EASECMD.COM b/Source/Images/hd0/s2/u0/EASECMD.COM new file mode 100644 index 00000000..410848a4 Binary files /dev/null and b/Source/Images/hd0/s2/u0/EASECMD.COM differ diff --git a/Source/Images/hd0/s2/u0/EDITNDR.COM b/Source/Images/hd0/s2/u0/EDITNDR.COM new file mode 100644 index 00000000..e0c84d5f Binary files /dev/null and b/Source/Images/hd0/s2/u0/EDITNDR.COM differ diff --git a/Source/Images/hd0/s2/u0/ERA.COM b/Source/Images/hd0/s2/u0/ERA.COM new file mode 100644 index 00000000..35f9653f Binary files /dev/null and b/Source/Images/hd0/s2/u0/ERA.COM differ diff --git a/Source/Images/hd0/s2/u0/FF.COM b/Source/Images/hd0/s2/u0/FF.COM new file mode 100644 index 00000000..933b39e3 Binary files /dev/null and b/Source/Images/hd0/s2/u0/FF.COM differ diff --git a/Source/Images/hd0/s2/u0/FINDF.COM b/Source/Images/hd0/s2/u0/FINDF.COM new file mode 100644 index 00000000..4a143711 Binary files /dev/null and b/Source/Images/hd0/s2/u0/FINDF.COM differ diff --git a/Source/Images/hd0/s2/u0/HELP.COM b/Source/Images/hd0/s2/u0/HELP.COM new file mode 100644 index 00000000..162d3250 Binary files /dev/null and b/Source/Images/hd0/s2/u0/HELP.COM differ diff --git a/Source/Images/hd0/s2/u0/IF.COM b/Source/Images/hd0/s2/u0/IF.COM new file mode 100644 index 00000000..1b26ef65 Binary files /dev/null and b/Source/Images/hd0/s2/u0/IF.COM differ diff --git a/Source/Images/hd0/s2/u0/LDIR.COM b/Source/Images/hd0/s2/u0/LDIR.COM new file mode 100644 index 00000000..763f2a81 Binary files /dev/null and b/Source/Images/hd0/s2/u0/LDIR.COM differ diff --git a/Source/Images/hd0/s2/u0/LGET.COM b/Source/Images/hd0/s2/u0/LGET.COM new file mode 100644 index 00000000..29929e94 Binary files /dev/null and b/Source/Images/hd0/s2/u0/LGET.COM differ diff --git a/Source/Images/hd0/s2/u0/LPUT.COM b/Source/Images/hd0/s2/u0/LPUT.COM new file mode 100644 index 00000000..81d9f4ff Binary files /dev/null and b/Source/Images/hd0/s2/u0/LPUT.COM differ diff --git a/Source/Images/hd0/s2/u0/LX.COM b/Source/Images/hd0/s2/u0/LX.COM new file mode 100644 index 00000000..285aea41 Binary files /dev/null and b/Source/Images/hd0/s2/u0/LX.COM differ diff --git a/Source/Images/hd0/s2/u0/MKZCM.COM b/Source/Images/hd0/s2/u0/MKZCM.COM new file mode 100644 index 00000000..ccf4b11d Binary files /dev/null and b/Source/Images/hd0/s2/u0/MKZCM.COM differ diff --git a/Source/Images/hd0/s2/u0/NZCOM.COM b/Source/Images/hd0/s2/u0/NZCOM.COM new file mode 100644 index 00000000..f9d67d16 Binary files /dev/null and b/Source/Images/hd0/s2/u0/NZCOM.COM differ diff --git a/Source/Images/hd0/s2/u0/NZCOM.LBR b/Source/Images/hd0/s2/u0/NZCOM.LBR new file mode 100644 index 00000000..2ed5afbd Binary files /dev/null and b/Source/Images/hd0/s2/u0/NZCOM.LBR differ diff --git a/Source/Images/hd0/s2/u0/NZCPR.LBR b/Source/Images/hd0/s2/u0/NZCPR.LBR new file mode 100644 index 00000000..74d412a1 Binary files /dev/null and b/Source/Images/hd0/s2/u0/NZCPR.LBR differ diff --git a/Source/Images/hd0/s2/u0/NZFCP.LBR b/Source/Images/hd0/s2/u0/NZFCP.LBR new file mode 100644 index 00000000..9426dc12 Binary files /dev/null and b/Source/Images/hd0/s2/u0/NZFCP.LBR differ diff --git a/Source/Images/hd0/s2/u0/NZRCP.LBR b/Source/Images/hd0/s2/u0/NZRCP.LBR new file mode 100644 index 00000000..da47328e Binary files /dev/null and b/Source/Images/hd0/s2/u0/NZRCP.LBR differ diff --git a/Source/Images/hd0/s2/u0/NZSUB.COM b/Source/Images/hd0/s2/u0/NZSUB.COM new file mode 100644 index 00000000..2c4c4ba2 Binary files /dev/null and b/Source/Images/hd0/s2/u0/NZSUB.COM differ diff --git a/Source/Images/hd0/s2/u0/NZSUB.SUB b/Source/Images/hd0/s2/u0/NZSUB.SUB new file mode 100644 index 00000000..d3614775 --- /dev/null +++ b/Source/Images/hd0/s2/u0/NZSUB.SUB @@ -0,0 +1,67 @@ + +; Batch File: NZSUB.SUB +; Author: Joe Wright +; Date: 8 November 1988 + +; This file demonstrates NZSUB's ability to handle 'formatted' +; input files. The programmer will note the similarity to +; annotated assembly source files. + +; This file will also serve as the documentation of NZSUB's +; features and function. + +; As these lines suggest, any line that begins with a ; is considered +; a full-line comment and is ignored. + +û         Thå  lefô squigglù brackeô '{§ aó  thå  firsô +          characteò  oæ  á  linå  wilì  puô  NZSUÂ   iî +          'comment§  mode® Alì  subsequenô  characteró +          untiì  á  righô  squigglù  brackeô  wilì   bå +          ignored® Checë thió out® } + +; The ; character is usually the command separator for a Z3 +; multiple command line. It is therefore a 'normal' character +; unless it is the first one and may appear freely in the command +; line preceded by anything except a space. + +; Blank lines are ignored in any case. + +{ +Alì oæ thå abovå lineó anä theså lineó arå someho÷ commenteä  ouô +oò  arå blanë anä thereforå wilì noô appeaò iî thå  $$$.SUÂ  filå +whicè wilì bå thå resulô oæ alì this® + +NZSUÂ  ió  completelù CP/Í compatible® Nonetheless¬  iæ  runninç +undeò  Ú-System¬  DUº anä DIRº formó maù bå useä tï  declarå  thå +sourcå file® Thå sourcå filå ió assumeä tï havå typå .SUÂ unlesó +otherwiså declared® Iî anù case¬ $$$.SUÂ wilì bå writteî tï  thå +currenô directory® +} + +» Ok¬ dowî tï business. The main point of all this is to relax +; some of the constraints on command line formatting so that +; a batch file becomes more legible and therefore maintainable. + +; Command lines may be indented with any combination of spaces +; and tabs. A tab within a command line will be converted to +; a space. Spaces between the last command character and the +; in-line comment ';' or ';;' will be removed and the comment +; ignored. The ';;' ZEX form may be used but is unnecessary +; if the ';' is preceded by at least one space (or tab). + +;; +;; NZSUB Demo Program +;; + $; nzsub demonstration ;; Use $; for literal ; + DIR *.COM ;; Let's see what we've got + + echo display source files? (yes or no) + + IF INPUT ; Ask the user (indented) + DIR *.Z80 + FI ; endif +;; +;; End of NZSUB Demo Program +; +; End of NZSUB.SUB + \ No newline at end of file diff --git a/Source/Images/hd0/s2/u0/P.COM b/Source/Images/hd0/s2/u0/P.COM new file mode 100644 index 00000000..b71218b8 Binary files /dev/null and b/Source/Images/hd0/s2/u0/P.COM differ diff --git a/Source/Images/hd0/s2/u0/PATH.COM b/Source/Images/hd0/s2/u0/PATH.COM new file mode 100644 index 00000000..89b73ede Binary files /dev/null and b/Source/Images/hd0/s2/u0/PATH.COM differ diff --git a/Source/Images/hd0/s2/u0/POKE.COM b/Source/Images/hd0/s2/u0/POKE.COM new file mode 100644 index 00000000..c9d5f763 Binary files /dev/null and b/Source/Images/hd0/s2/u0/POKE.COM differ diff --git a/Source/Images/hd0/s2/u0/PUBLIC.COM b/Source/Images/hd0/s2/u0/PUBLIC.COM new file mode 100644 index 00000000..e22e67d7 Binary files /dev/null and b/Source/Images/hd0/s2/u0/PUBLIC.COM differ diff --git a/Source/Images/hd0/s2/u0/RELEASE.NOT b/Source/Images/hd0/s2/u0/RELEASE.NOT new file mode 100644 index 00000000..9cdf40fc --- /dev/null +++ b/Source/Images/hd0/s2/u0/RELEASE.NOT @@ -0,0 +1,78 @@ + -- RELEASE.NOT -- + + January 20, 1989 + + This file contains last-minute information about NZ-COM. + + +---------- NZ-COM RELEASE 1.2d January 20, 1989 + +NZCOM.COM version 1.2d fixes yet another minor bug by forcing a warm boot +whenever a new DOS module is loaded by itself. The progress report is also +a little less verbose unless declaring the /T(est) option. If the /Q(uiet) +option is declared, NZCOM is now completely silent. + +New versions of SAVE.COM, ERA.COM, REN.COM, P.COM, POKE.COM and their Type +3 counterparts are included in this release. + +NZSUB version 1.0 is released. Unlike SUB.COM, NZSUB is not ZCPR3 specific +and runs as well under CP/M. Its batch files can be formatted and +commented much like those of ZEX4. See NZSUB.SUB for an example. + +TCSELECT version 1.2 can now be run successfully under CP/M. + + +---------- NZ-COM RELEASE 1.2 November 1, 1988 + +NZCOM.COM version 1.2 includes two changes of significance. First, due to +an oversight, when version 1.0 was told to load a new ZCM or ENV file for +which no new modules had to be loaded, it also failed to update data in the +environment, such as printer characteristics, maximum drives and users, and +so on. It will now do so. + +The second change was in the safety checking performed by NZCOM.COM to make +sure that it was being requested to load a version that was consistent with +the underlying CP/M system. This check turned out to be stricter than +necessary and was preventing NZ-COM from running on some systems (e.g., +Lobo Max) that, in fact, could support it quite nicely. + + +---------- NEW FILES: NZCPR.LBR, NZFCP.LBR, NZRCP.LBR + +The main NZCOM.LBR now contains only the standard configurations of the +CPR, FCP, and RCP modules to minimize disk space requirements. Alternative +versions of these modules are now supplied in separate libraries. Modules +can be loaded directly from these libraries, or individual files can be +extracted and put into NZCOM.LBR to replace the default files. Each +library has a brief DOC file describing the modules (one of which is the +default version included in NZCOM.LBR). + + +---------- NEW PROGRAM: ZEX TYPE 4 + +Named ZEX4.COM in this release, this is a new version of ZEX with many +features not seen before (See ZEX4.DOC). This program is brand new and may +well exhibit one or two un-planned 'features'. Please report any problems. + + +---------- EASE PROBLEMS + +There are unfortunately serious defects in the coding of EASE. On many +computers EASE appears to work without problems, on some it crashes +completely, and on others it works but causes other strange behavior to +occur. We tried using it on a Kaypro with the K-ROM (?), and as soon as we +loaded ease we started to get BIOS errors on disk reads. We hope that the +author of EASE (or someone else) will discover and correct these problems. +The program is so nice conceptually. Use it with caution. + + +---------- VLU VERSIONS + +We forgot when writing the manual that VLU, like ZFILER, has two quite +different versions depending on whether your terminal uses reverse or dim +video for highlighting. Therefore, you will find on the release disk VLU- +REV.COM and VLU-DIM.COM. Copy the appropriate one to your working disk +under the name VLU.COM. + + - End of RELEASE.NOT - + \ No newline at end of file diff --git a/Source/Images/hd0/s2/u0/REN.COM b/Source/Images/hd0/s2/u0/REN.COM new file mode 100644 index 00000000..fdfa70bd Binary files /dev/null and b/Source/Images/hd0/s2/u0/REN.COM differ diff --git a/Source/Images/hd0/s2/u0/SALIAS.COM b/Source/Images/hd0/s2/u0/SALIAS.COM new file mode 100644 index 00000000..1b0b13e9 Binary files /dev/null and b/Source/Images/hd0/s2/u0/SALIAS.COM differ diff --git a/Source/Images/hd0/s2/u0/SAVE.COM b/Source/Images/hd0/s2/u0/SAVE.COM new file mode 100644 index 00000000..76254cd7 Binary files /dev/null and b/Source/Images/hd0/s2/u0/SAVE.COM differ diff --git a/Source/Images/hd0/s2/u0/SAVENDR.COM b/Source/Images/hd0/s2/u0/SAVENDR.COM new file mode 100644 index 00000000..4dcfd14e Binary files /dev/null and b/Source/Images/hd0/s2/u0/SAVENDR.COM differ diff --git a/Source/Images/hd0/s2/u0/SDZ.COM b/Source/Images/hd0/s2/u0/SDZ.COM new file mode 100644 index 00000000..46f81fdc Binary files /dev/null and b/Source/Images/hd0/s2/u0/SDZ.COM differ diff --git a/Source/Images/hd0/s2/u0/SHOW.COM b/Source/Images/hd0/s2/u0/SHOW.COM new file mode 100644 index 00000000..3fbe6069 Binary files /dev/null and b/Source/Images/hd0/s2/u0/SHOW.COM differ diff --git a/Source/Images/hd0/s2/u0/SHSET.COM b/Source/Images/hd0/s2/u0/SHSET.COM new file mode 100644 index 00000000..a351d9e5 Binary files /dev/null and b/Source/Images/hd0/s2/u0/SHSET.COM differ diff --git a/Source/Images/hd0/s2/u0/SP.COM b/Source/Images/hd0/s2/u0/SP.COM new file mode 100644 index 00000000..6c117b14 Binary files /dev/null and b/Source/Images/hd0/s2/u0/SP.COM differ diff --git a/Source/Images/hd0/s2/u0/SPOP.COM b/Source/Images/hd0/s2/u0/SPOP.COM new file mode 100644 index 00000000..471d9383 Binary files /dev/null and b/Source/Images/hd0/s2/u0/SPOP.COM differ diff --git a/Source/Images/hd0/s2/u0/SUB.COM b/Source/Images/hd0/s2/u0/SUB.COM new file mode 100644 index 00000000..f87c0871 Binary files /dev/null and b/Source/Images/hd0/s2/u0/SUB.COM differ diff --git a/Source/Images/hd0/s2/u0/TCSELECT.COM b/Source/Images/hd0/s2/u0/TCSELECT.COM new file mode 100644 index 00000000..2fb5f322 Binary files /dev/null and b/Source/Images/hd0/s2/u0/TCSELECT.COM differ diff --git a/Source/Images/hd0/s2/u0/UNCR.COM b/Source/Images/hd0/s2/u0/UNCR.COM new file mode 100644 index 00000000..0dfe8947 Binary files /dev/null and b/Source/Images/hd0/s2/u0/UNCR.COM differ diff --git a/Source/Images/hd0/s2/u0/VARPACK.COM b/Source/Images/hd0/s2/u0/VARPACK.COM new file mode 100644 index 00000000..5760a8c7 Binary files /dev/null and b/Source/Images/hd0/s2/u0/VARPACK.COM differ diff --git a/Source/Images/hd0/s2/u0/VIEW.COM b/Source/Images/hd0/s2/u0/VIEW.COM new file mode 100644 index 00000000..d1a17acb Binary files /dev/null and b/Source/Images/hd0/s2/u0/VIEW.COM differ diff --git a/Source/Images/hd0/s2/u0/Z3LOC.COM b/Source/Images/hd0/s2/u0/Z3LOC.COM new file mode 100644 index 00000000..563ad51b Binary files /dev/null and b/Source/Images/hd0/s2/u0/Z3LOC.COM differ diff --git a/Source/Images/hd0/s2/u0/Z3TCAP.TCP b/Source/Images/hd0/s2/u0/Z3TCAP.TCP new file mode 100644 index 00000000..98896073 Binary files /dev/null and b/Source/Images/hd0/s2/u0/Z3TCAP.TCP differ diff --git a/Source/Images/hd0/s2/u0/ZEX.COM b/Source/Images/hd0/s2/u0/ZEX.COM new file mode 100644 index 00000000..b4cccec4 Binary files /dev/null and b/Source/Images/hd0/s2/u0/ZEX.COM differ diff --git a/Source/Images/hd0/s2/u0/ZEX.RSX b/Source/Images/hd0/s2/u0/ZEX.RSX new file mode 100644 index 00000000..ef10b0cf Binary files /dev/null and b/Source/Images/hd0/s2/u0/ZEX.RSX differ diff --git a/Source/Images/hd0/s2/u0/ZEX4.COM b/Source/Images/hd0/s2/u0/ZEX4.COM new file mode 100644 index 00000000..d6058440 Binary files /dev/null and b/Source/Images/hd0/s2/u0/ZEX4.COM differ diff --git a/Source/Images/hd0/s2/u0/ZEX4.DOC b/Source/Images/hd0/s2/u0/ZEX4.DOC new file mode 100644 index 00000000..514f417c --- /dev/null +++ b/Source/Images/hd0/s2/u0/ZEX4.DOC @@ -0,0 +1,329 @@ + + ZEØ Typå ´ ö 0.4 + bù Joå Wright + ¹ Noö 88 + +Linå  formattinç  haó beeî furtheò relaxeä bù allowinç  á  singlå +semicoloî ';§ tï denotå á commenô iæ iô ió thå firsô characteò oî +thå  linå  oò  iæ iô ió precedeä bù á  spacå  oò  tab®   Multiplå +Commanä syntaø ERÁ *.BAK;ERÁ *.PRN;DIÒ *.Z8° stilì workó  becauså +thå  characteò prioò tï » ió noô á space® Thå ';;§  ZEØ  commenô +forí  stilì  workó buô ió unnecessary® Iæ » ió requireä  aô  thå +beginninç  oæ á linå oò afteò á space¬ uså thå $»  literaì  form® +Alsï  addeä  ió  thå 'field§ comment®   + +     û Á lefô 'curly§ brackeô '{§ aó thå firsô characteò  oæ +     á particulaò linå wilì causå alì subsequenô  characteró +     anä  lineó  tï  bå treateä  aó  commenô  anä  otherwiså +     ignoreä  untiì  thå correspondinç closinç  brackeô   ió +     encountered® Thió entirå paragrapè woulä bå treateä aó +     á 'field§ comment® } + + + ZEØ Typå ´ ö 0.3 + bù Joå Wright + 2· Ocô 88 + +Thå formidablå Howarä Goldsteiî haó strucë again® Thå  followinç +changeó aô hió suggestion® Thankó Howard. + +1® Thå '¤ § literaì describeä belo÷ ió actuallù implementeä now. + +2®   Thå  senså oæ thå ^¡ aborô controì ió changeä tï  bå  activå +wheî thå flo÷ statå ió TRUÅ ratheò thaî FALSE® Morå logical. + +3®   Thå  ^º Rå-executå controì ió changeä  tï  rå-establisè  thå +defaulô flagó ratheò thaî settinç theí tï 0. + + + ZEØ Typå ´ ö 0.2 + bù Joå Wright + 24 Ocô 88 + +Alì thió starteä becauså É inadvertantlù lefô ZEX.COÍ ouô oæ  thå +originaì  NÚ-COÍ  release®   Afteò  somå  complaintó  abouô  thió +oversight¬ É pickeä uð Jay'ó NZEØ-Ä froí Ú-Nodå Centraì anä trieä +iô out® Althougè admittedlù stilì undeò development¬ NZEØ didn'ô +seeí tï worë right® É theî examineä thå ZEØ 3.² releaså  versioî +anä founä iô eveî worse® Mù buttoî waó pushed. + +Oveò  thå pasô fouò weekó oò sï É havå rå-writteî ZEØ morå tï  mù +liking®   ZEØ ió no÷ á Typå ´ utilitù foò NÚ-COÍ anä  Z3PLUS®   É +havå addeä thå controló Jaù mentionó iî NZEØ-D.DOÃ anä onå oò twï +oæ mù owî iî thå meantime. + +ZCPR3´  ió  changeä  sï thaô intrinsiã (GET¬  JUMÐ  anä  GO©  anä +residenô (POKE¬ PEEK¬ etc.© commandó caî geô theiò argumentó froí +ZEØ  script® Previously¬ ZCPR3ø turneä ofæ ZEØ  redirectioî  foò +alì  buô transienô (.COM© commands® No÷ Z3´ enableó ZEØ foò  alì +CPR¬  FCÐ anä RCÐ commandó aó welì aó transients®   NZCPR.ZRÌ  iî +thió  packagå ió thå latesô ZCPR3´ anä shoulä bå  'installed§  oî +youò  NÚ-COÍ systeí beforå attemptinç tï ruî Ne÷ ZEØ Typå  ´  anä +itó demonstratioî .ZEØ files. + +Thå  majoò  changå  tï ZEØ waó iî thå  CONST¬  CONIÎ  anä  CONOUÔ Šdepartmentó  sï  thaô ZEØ maù no÷ bå useä tï  'drive§  dBASÅ  II¬ +WordStaò  anä MultiPlan® Theså programó (anä others© attempô  tï +flusè  keyboarä inpuô froí timå tï timå anä reallù gavå  thå  olä +ZEØ á fit® Theså programó ruî correctlù witè ZEØ Typå 4. + +Anotheò probleí witè olä ZEØ waó thaô iô requireä á calì tï CONIÎ +tï dï anything® Manù programó calì CONSÔ tï seå iæ á keù ió dowî +and¬ iæ not¬ gï abouô theiò business® Witè olä ZEX¬ thå ^"ß useò +inpuô  commanä woulä noô gï intï effecô untiì CONIÎ  waó  called® +Thå  ^"ß  commanä haó nï datá tï return® Whaô tï  do¿   Olä  ZEØ +waiteä foò thå useò tï presó á key® Buô whaô iæ hå doesn't¿ Olä +ZEØ simplù hunç uð anä waiteä foò it¬ eveî iæ iô wasn'ô necessarù +foò thå program® Sï mucè foò unattendeä operation¡ + +ZEØ  Typå ´ haó á looë-aheaä featurå tï finä thå ^"ß commanä  anä +executå  iô beforå returninç thå previouó character®   Subsequenô +calló  tï  CONSÔ  yielä  reaì  keyboarä  statuó  (ZEØ  inpuô   ió +suspended)® Wheî ZEØ ió turneä oî agaiî (witè thå 'trigger§ oò á +ne÷ command© iô wilì picë uð witè thå characteò followinç thå ^"ß +commanä  anä continuå normally® Notå thaô almosô  anù  characteò +maù bå useä aó thå Useò Inpuô Triggeò excepô 'space§ anä 'tab'. + +ZCPR3´ anä ZEØ Typå ´ arå verù closelù coupleä anä leavå messageó +tï  eacè other® ZCPR3´ controló ZEØ througè thå ZEXINÐ  flaç  aô +Z3MSG+7®   ZEØ checkó anä maù changå thå ZEXINÐ flaç foò itó  owî +purposeó aó well® ZEØ maintainó pointeró tï thå currenô bytå  oæ +thå  ZEØ  inpuô  strinç anä tï thå beginninç  oæ  thå  strinç  aô +Z3MSG+¹  anä  Z3MSG+11¬ respectively® + +ZEØ  caî alsï controì thå operatioî oæ ZCPR3´ bù manipulatioî  oæ +thå  QUIEÔ  flag®   ZCPR3´ ió assembleä witè  itó  ZEXNOISÅ  (anä +SUBNOISE© equaì 1® Thió meanó thå Z3´ commanä prompô  (A0:BASE>© +maù  bå suppresseä undeò ZEØ (oò SUB© bù settinç thå QUIEÔ  flag® +Thió begó á ne÷ commanä foò ZEØ (Þ-)® + +Iæ thå QUIEÔ flaç ió set¬ ZEØ wilì alsï suppresó thå echï oæ  thå +commanä  linå  froí  Z34®   Further¬  iæ  thå  ^£  (Suppresó  ZEØ +messages©  commanä ió alsï iî force¬ ZEØ anä Z3´  arå  completelù +silenô  anä  thå batcè commandó executå aó iæ froí  thå  multiplå +commanä  linå oò aliaó scripô witè nï extraneouó reportó  tï  thå +console. + +Therå  arå á numbeò oæ 'flag§ optionó whicè telì ZEØ ho÷  tï  acô +whilå executing® + + ^½ XSUÂ Enablå ZEØ inpuô tï COMmand + ^­ QUIEÔ Seô ZCPR³ Quieô flag + ^£ MSUÐ Suppresó ZEØ messages + ^® PSUÐ Suppresó alì Consolå output + ^¦ IPSUÐ Suppresó Console iæ false + +ZEØ  Typå ´ defaultó tï alì flagó (excepô XSUB© OFÆ  anä  inviteó +thå useò tï specifù hió optionó oî thå commanä linå oò tï specifù +theí iî thå batcè filå (Theså flags¬ anä others¬ maù bå 'patched§ +OÎ  witè  ZPATCÈ  oò bù otheò meanó tï customizå ZEØ  iæ  yoõ  sï +desire® Seå PATCHEÓ below.)® + + zeø batcè parm± parm² ^­ ^£ ^. + +ZEØ  Typå ´ wilì picë uð thå twï parameteró anä thå ZEØ  controló +beforå  processinç thå batcè file¬ thuó establishinç  'defaults'® +Iî  thió case¬ Þ­ setó thå QUIEÔ flag¬ ^£ turnó ZEØ messageó  ofæ +anä  ^® suppresseó consolå output® Controló oî thå commanä  taiì +arå processeä firsô anä becomå thå initiaì characteró oæ thå  ZEØ +string®   Thå batcè filå ió theî appendeä tï them® Iî thió  way¬ +thå ^º re-executå controì wilì alsï re-executå them. + +Notå thaô ZEØ Typå ´ treató alì 'flag§ commandó aó 'toggles§ sucè Šthaô thå firsô ^£ wilì suppresó ZEØ messageó anä thå nexô ^£ wilì +turî theí oî again® Á thirä onå wilì turî theí off¬ etc. + +Yoõ  caî  probablù  uså ZEØ Typå ´ witè mosô  oæ  youò  olä  NZEØ +scriptó witè littlå oò nï changå (^Û anä ^Ý controló oæ NZEØ  arå +noô supporteä becauså therå ió nï discerniblå neeä foò them). + +É  havå addeä thå XSUÂ (^=© togglå tï helð controì ZEØ  inpuô  tï +thå  runninç  program®   ^½ anä ^¥ arå  useä  iî  combinatioî  tï +controì  ZEØ input® Notå thaô theù arå complementary®   XSUÂ  OÎ +wilì  allo÷  ZEØ inpuô foò thå remaindeò oæ thå filå  excepô  foò +thoså  commandó whicè begiî witè ^%® Conversely¬ XSUÂ  OFÆ  wilì +turî  ZEØ Inpuô OFÆ afteò eacè commanä excepô foò thoså  precedeä +bù ^%. + +Notå  thaô thå normaì statå oæ ZEØ Inpuô ió ON® ZCPR3´ setó  ZEØ +Statuó tï 0± wheî promptinç anä tï 0° wheî executinç thå COMmand® +Iî  botè cases¬ ZEØ Inpuô ió ON® Iô ió uð tï ZEX¬ anä nï  simplå +matter¬  tï seô ZEØ Statuó tï 0² tï suspenä ZEØ Inpuô aô thå  enä +oæ  thå commanä oò aó thå situatioî maù require® Iô ió safeò  tï +assumå  ZEØ Inpuô OÎ anä turî iô ofæ selectivelù thaî tï turî  iô +OFÆ witè XSUB=° anä assumå thaô iô stayó off® + +Consideò  thaô ZEØ maù executå aî aliaó anä thå programmeò  wantó +Useò  Inpuô  aô  thå  enä oæ itó  execution®   ZEØ  wilì  executå +alias.COÍ  anä  politelù turî itselæ off®   Thå  alias¬  however¬ +causeó Z3´ tï executå yeô anotheò commanä whicè ZEØ knowó nothinç +about®   Z3´  theî turnó ZEØ Inpuô bacë on® Noô whaô  yoõ  mighô +expect®   Foò thió reason¬ É havå defaulteä thå XSUÂ flaç OÎ  foò +mù  purposes®   É havå donå extensivå testinç witè XSUÂ  ofæ  anä +finä thaô iô workó perfectlù welì excepô foò thå caså oæ multiplå +commanä aliaseó anä sucè aó explaineä above® + +ZEØ  Typå ´ startó uð witè ZEØ Inpuô (XSUB© activå  anä  requireó +thå  ZEØ OFÆ commanä ^¥ aô thå beginninç oæ thå linå oò thå  Useò +Inpuô  commanä  ^"ß  tï  suspenä ZEX® Iæ  ZEØ  inpuô  shoulä  bå +suspendeä foò thå entirå command... + + ^%ddô [parms] + +wilì  turî  ZEØ ofæ untiì DDÔ quits® Morå elaboratå  ZEØ  on/ofæ +controló  uså thå Useò Inpuô commanä anä itó trigger®   Therå  ió +onå 'gotcha§ witè thå ^"ß however® Thå Useò Inpuô commanä cannoô +immediatelù  follo÷ á COMmanä invocation® Thió ió  becauså  eveî +thougè ZEØ haó turneä itselæ off¬ thå commanä processoò wilì turî +ZEØ bacë oî whilå executinç thå command® Therå musô bå aô  leasô +onå  interveninç characteò oò controì betweeî thå CÒ  whicè  wilì +executå  thå  commanä anä thå ^"ß whicè wilì suspenä  ZEØ  input® +Consideò thå ZEØ script: + + ddt|d100,17f|^"~g0 + Þ ^ +ZEØ  Typå ´ findó thå Useò Inpuô command¬ executeó iô  anä  moveó +itó  pointeò  pasô iô beforå returninç thå CÒ tï DDT®   Wheî  thå +useò  typeó thå triggeò (þ iî thió case© ZEØ resumeó witè thå  g° +commanä causinç DDÔ tï quit. + + ddt|^"~d100... + Þ ^ +Thió forí wilì noô work® Aó before¬ ZEØ doeó turî oî Useò  Inpuô +buô  Z3´ wilì turî iô ofæ aó iô executeó DDT.COM® Therå musô  bå +aô  leasô onå interveninç character® Knowinç thaô DDÔ useó  BDOÓ +functioî 1° tï reaä itó commandó anä knowinç thaô á backspacå  ió +ignoreä aó thå firsô characteò oæ thå line.. + + ddt|^h^"~d100... + +workó  perfectly® Somå programó (WordStaò foò example©  continuå +testinç  thå  keyboarä  eveî  aó  theù  quit®   Iô  ió  thereforå +necessarù  tï  seô  Useò Inpuô  immediatelù  followinç  thå  quiô +commandó  sï  thaô WordStaò won'ô trù tï reaä  thå  ZEØ  commandó +whilå quitting.. Š + wó file.ws|^qfDear||^"~^kx^" + Þ ^ +Thå firsô UÉ commanä suspendó ZEØ untiì thå useò typeó '~'®   Thå +seconä UÉ suspendó ZEØ untiì WordStaò actuallù quits. + +Commanä  linå  parsinç haó changeä witè respecô tï  thå  TAÂ  anä +SPACÅ characters® Tabó anä Spaceó aô thå beginninç oæ á  commanä +linå  arå  ignored®   Subsequenô tabó arå  converteä  tï  spaces® +Subsequenô  spaceó prioò tï thå ZEØ commenô oò CÒ thaô  endó  thå +linå arå removed® + +Iæ  yoõ musô precedå á commanä witè á Space¬ uså thå ZEØ  literaì +'¤ § tï dï so® Thió allowó morå freedoí tï formaô thå inpuô filå +foò readability® ZEØ Commentó ';;§ caî bå useä oî anù line® Foò +example: + +;» Takå á letteò Misó Jones + + wó $1.ltò ;» Creatå thå letteò file + ^krform.ltò ;» Reaä iî thå standarä form + ^kfDearü ;» Finä thå salutation + +;» Positioî thå cursoò anä starô UÉ untiì '~'¬ resumå ZEØ +;» tï telì WordStaò tï savå thå letteò anä starô UÉ again. + ^qd^"~^kx^" + +;» Enä oæ thió letter + +Wå caî alsï makå logiã flowó morå readablå thió way: + +» Assemblå $± Sourcå Filå ;» Echï froí Z3´ controlleä bù QUIET + + ^-^£ ;» Z3´ Quiet¬ nï ZEØ messages + iæ eø $1.z8° ;» Tesô .Z8° first + ^%z80así $± ;» ZEØ ofæ foò z80asm + else + iæ eø $1.maã »» Theî .MAC + m8° =$1 + elså ;» Assumå .ASM + así $1 + fi + fi + ^­ ;» Cleaò Quiet + +» Enä oæ $± Assembly + +Notå agaiî thaô Z80ASÍ ió onå oæ thoså programó thaô periodicallù +checë  foò keyboarä inpuô sï ZEØ musô bå turneä ofæ untiì  Z80ASÍ +quits® M80.COÍ anä ASM.COÍ don'ô seeí tï asë anything. + +Therå arå generallù threå sourceó foò Consolå Output® + +1® Thå Z3´ prompô anä commanä echo. +2® ZEØ witè itó variouó messages. Š3® Thå runninç program. + +Witè  ZEXNOISÅ eqõ ± (Z34HDR.LIB© ZCPR3´ useó thå QUIEÔ  flaç  tï +determinå  whetheò tï prinô thå commanä prompô beforå  requestinç +thå nexô commanä (QUIEÔ ½ nï prompt)® ZEØ wilì alsï suppresó thå +echï  oæ  thå commanä taiì froí Z3´ iæ QUIET® Thå statå  oæ  thå +QUIEÔ flaç ió toggleä bù thå ne÷ Þ­ ZEØ command® ZEØ Typå ´ wilì +restorå thå QUIEÔ flaç tï itó originaì valuå wheî Done. + +ZEØ  haó á numbeò oæ messageó oæ itó own¬ ZEX:¬ Done¬  etc®   ZEØ +messageó arå controlleä bù thå ^£ (MSUP© toggle® Thå ^£  controì +suppresseó ZEØ messageó untiì thå nexô ^#. + +Anù  Consolå Outpuô maù bå suppresseä durinç á falså  flo÷  statå +witè  thå ^¦ (IPSUP© toggle® Alì Consolå Outpuô  maù  suppresseä +maù bå suppresseä witè thå ^® (PSUP© toggle. + +Iî  variouó  combination¬  theså toggleó  shoulä  givå  thå  .ZEØ +programmeò fulì controì oæ whaô mighô bå printeä oî thå screen. + + ­ PATCHEÓ - + +ZEØ  Typå  ´  haó á patcè areá righô afteò thå  Z3ENÖ  headeò  aô +0200h® Eacè patchablå bytå ió precedeä bù itó namå anä á '>§ foò +easù identification. + + KDEL¾ 05 + CDEL¾ 0F + +Thå reasoî thaô ZEØ caî successfullù 'drive§ programó thaô  woulä +otherwiså  'eat§ thå keyboarä inpuô string¬ ió thaô wå liå tï  iô +abouô   keyboarä  status®   Havinç  delivereä  (oò   printed©   á +character¬  ZEØ wilì reporô CONSÔ falså á numbeò oæ timeó  beforå +shippinç  thå nexô character® Thió allowó 'smart§ programó  likå +dBASÅ IÉ tï thinë theù havå flusheä thå keyboarä oò thaô á  humaî +ió typing. + +KDEÌ  representó  thå numbeò oæ falså  responseó  betweeî  normaì +characteró anä CDEÌ thå numbeò oæ lieó afteò Carriagå Return® Iî +thå schemå oæ things¬ theså valueó arå decrementeä beforå testinç +sï  thaô á valuå oæ ± woulä returî gooä statuó immediatelù anä  á +valuå   oæ  °  woulä  returî  falså  statuó  25µ  timeó   betweeî +characters®   Theså  values¬ µ anä 15¬ werå choseî bù  triaì  anä +erroò  anä seeí tï worë fine® ³ anä ¹ alsï worë aô mù houså  buô +loweò valueó DÏ NOÔ WORË iî manù cases® Sticë witè thå defaults. + +Foò thå followinç flags¬ 0° ió falså anä FÆ ió true. + + XSUB¾ 0° oò FÆ ZEØ Inpuô Modå (FF) ^= + MSUP¾ 0° oò FÆ Suppresó ZEØ messageó ^# + PSUP¾ 0° oò FÆ Suppresó Consolå Outpuô ^. + IPSIP¾ 0° oò FÆ Suppresó Conouô IF falså ^& + QUIET¾ 0° oò FÆ Initiaì Z³ quieô flaç ^- + +Thå  nexô followinç havå tï dï witè findinç thå ZEØ  inpuô  file® ŠIæ  nï  expliciô DIRº ió invoked¬ ZEØ wilì  checë  thå  followinç +flagó tï determinå wherå tï looë foò it. + +ZEØ maù bå forceä tï searcè á specifiã directorù foò inpuô  fileó +bù  declarinç  iô  here®   Ordeò ió  significant®   Iæ  ZEXDÕ  ió +declared¬  nonå  oæ ROOT¬ CURDÕ oò Patè wilì eveî bå  tried®   Iæ +ROOÔ ió set¬ neitheò CURDÕ noò Patè wilì bå tried. + + ZEXDU¾ 0° 0° Nï ZEØ directorù declareä or.. + ZEXDU¾ 0³ 0± Searcè directorù A3º only + + ROOT¾ 0° oò FÆ Searcè Rooô directorù only + CURDU¾ 0° oò FÆ Searcè Currenô directorù only + +Iæ  nonå  oæ thå above¬ ZEØ wilì searcè foò thå  filå  alonç  thå +ZCPR3´  Externaì Path® ZEØ Typå ´ wilì invokå thå  ZCPR3´  Erroò +Handleò appropriatelù foò alì detecteä errors. + + -30- + \ No newline at end of file