From 939a822f65e8b1748f8a0acd5c0552b650f96ce9 Mon Sep 17 00:00:00 2001 From: Wayne Warthen Date: Mon, 28 Nov 2016 21:19:22 -0800 Subject: [PATCH] More BPBIOS Cleanup --- Source/BPBIOS/Build.cmd | 6 +- Source/BPBIOS/Clean.cmd | 3 + Source/BPBIOS/ZCPR33/Build.cmd | 7 +- Source/BPBIOS/ZCPR33/z33hdr.lib | 1 - Source/BPBIOS/ZCPR33/z33hdr.lib.sav | 539 ------------------------- Source/BPBIOS/ZCPR33/z3basen.lib | 128 ------ Source/BPBIOS/ZCPR33/z3baset.lib | 126 ------ Source/BPBIOS/ZCPR33/zcpr33.bin | Bin 2048 -> 0 bytes Source/BPBIOS/byteio.z80 | 6 + Source/BPBIOS/cboot-ww.z80 | 140 +------ Source/BPBIOS/dpbm-ww.lib | 4 +- Source/BPBIOS/{dph.sav => dph.lib.sav} | 0 Source/BPBIOS/fdc-ww.z80 | 48 +-- Source/BPBIOS/hardhb.z80 | 26 +- Source/BPBIOS/icfg-ww.z80 | 2 +- Source/BPBIOS/iio-ww.z80 | 163 ++------ Source/BPBIOS/tim-ww.z80 | 187 +-------- Source/BPBIOS/wboot-ww.z80 | 14 - Source/BPBIOS/z3basen.lib | 13 +- Source/BPBIOS/z3baset.lib | 5 +- Source/BPBIOS/zcpr33n.rel | Bin 2304 -> 0 bytes Source/BPBIOS/zcpr33t.rel | Bin 2304 -> 0 bytes Source/Build.cmd | 1 + Source/BuildBP.cmd | 4 + Tools/simh/Sim.cfg | 4 +- 25 files changed, 112 insertions(+), 1315 deletions(-) delete mode 100644 Source/BPBIOS/ZCPR33/z33hdr.lib.sav delete mode 100644 Source/BPBIOS/ZCPR33/z3basen.lib delete mode 100644 Source/BPBIOS/ZCPR33/z3baset.lib delete mode 100644 Source/BPBIOS/ZCPR33/zcpr33.bin rename Source/BPBIOS/{dph.sav => dph.lib.sav} (100%) delete mode 100644 Source/BPBIOS/zcpr33n.rel delete mode 100644 Source/BPBIOS/zcpr33t.rel create mode 100644 Source/BuildBP.cmd diff --git a/Source/BPBIOS/Build.cmd b/Source/BPBIOS/Build.cmd index 7f06ca88..f6d2999f 100644 --- a/Source/BPBIOS/Build.cmd +++ b/Source/BPBIOS/Build.cmd @@ -2,16 +2,14 @@ setlocal +setlocal & cd ZCPR33 && call Build || exit /b 1 & endlocal + set PATH=%PATH%;..\..\Tools\zx;..\..\Tools\cpmtools; set ZXBINDIR=../../tools/cpm/bin/ set ZXLIBDIR=../../tools/cpm/lib/ set ZXINCDIR=../../tools/cpm/include/ -pushd ZCPR33 && call Build.cmd && popd - -rem pause - call :makebp 33t call :makebp 33tbnk call :makebp 33n diff --git a/Source/BPBIOS/Clean.cmd b/Source/BPBIOS/Clean.cmd index 578c0290..37d9fd35 100644 --- a/Source/BPBIOS/Clean.cmd +++ b/Source/BPBIOS/Clean.cmd @@ -7,4 +7,7 @@ if exist *.img del *.img if exist bp*.rel del bp*.rel if exist *.bak del *.bak +if exist zcpr33t.rel del zcpr33t.rel +if exist zcpr33n.rel del zcpr33n.rel + setlocal & cd ZCPR33 && call Clean.cmd & endlocal diff --git a/Source/BPBIOS/ZCPR33/Build.cmd b/Source/BPBIOS/ZCPR33/Build.cmd index c30c1f36..1037b138 100644 --- a/Source/BPBIOS/ZCPR33/Build.cmd +++ b/Source/BPBIOS/ZCPR33/Build.cmd @@ -1,5 +1,4 @@ @echo off - setlocal set PATH=%PATH%;..\..\..\Tools\zx;..\..\..\Tools\cpmtools; @@ -10,8 +9,10 @@ set ZXINCDIR=../../../tools/cpm/include/ copy ..\z3baset.lib . zx ZMAC -zcpr33t.z80 -/P -copy zcpr33t.rel .. +del z3baset.lib +move zcpr33t.rel .. copy ..\z3basen.lib . zx ZMAC -zcpr33n.z80 -/P -copy zcpr33n.rel .. +del z3basen.lib +move zcpr33n.rel .. \ No newline at end of file diff --git a/Source/BPBIOS/ZCPR33/z33hdr.lib b/Source/BPBIOS/ZCPR33/z33hdr.lib index b654d19b..0cdfd4cc 100644 --- a/Source/BPBIOS/ZCPR33/z33hdr.lib +++ b/Source/BPBIOS/ZCPR33/z33hdr.lib @@ -17,7 +17,6 @@ rel equ yes ; This equate MUST be set to YES if assembling ; to a REL file, and it MUST be set to NO if ; assembling to a HEX or COM file. -base equ 0 ;============================================================================= ; diff --git a/Source/BPBIOS/ZCPR33/z33hdr.lib.sav b/Source/BPBIOS/ZCPR33/z33hdr.lib.sav deleted file mode 100644 index 0cdfd4cc..00000000 --- a/Source/BPBIOS/ZCPR33/z33hdr.lib.sav +++ /dev/null @@ -1,539 +0,0 @@ - -; Z33HDR.LIB - -; This is the configuration file for the ZCPR Version 3.3 command processor. -; You should read through this file and set the equates according to the -; features you want to implement. Since the command processor is limited to -; no more than 2K (2048 bytes), it is impossible to include all features. - -; Basic definitions - -no equ 0 -yes equ not no -off equ no -on equ yes - -rel equ yes ; This equate MUST be set to YES if assembling - ; to a REL file, and it MUST be set to NO if - ; assembling to a HEX or COM file. - - -;============================================================================= -; -; R E S I D E N T C O M M A N D S S E L E C T I O N -; -;============================================================================= - -; Commands to include in the command processor - -; The primary function of the command processor is to interpret user commands. -; Providing resident command functions is secondary. As the command processor -; has evolved to provide ever more advanced command processing functions, there -; has been correspondingly less room for resident command code in the -; processor. We recommend that you opt for most if not all of the advanced -; processing features and leave the resident command code to the resident -; command processor (RCP) module and to transient programs (COM files). -; -; There are some interrelations between a number of the possible resident -; commands. Some are so close (LIST and TYPE) that a single equate controls -; both functions. Others like DIR and ERA share code (both display file -; listings). It is efficient to select or deselect them together. The RCP -; has the room to provide more elaborate capabilities. Therefore, it makes -; sense to choose for the CPR those resident commands that are intrinsically -; simple, (e.g., NOTE) or which depend on intrinsic command processing code -; (e.g., GET, GO, JUMP). - - -diron equ no ; DIR command to display disk directory -eraon equ no ; ERA command for deleting files -geton equ yes ; GET command for loading a file to a general address -goon equ yes ; GO command to execute code in TPA (at 100h) -jumpon equ yes ; JUMP command to execute code at a general address -lton equ no ; LIST and TYPE commands for file printing and display -noteon equ no ; NOTE command for comments in multiple command lines -renon equ no ; REN command for changing names of files -saveon equ no ; SAVE command for saving TPA to files - -;----------------------------------------------------------------------------- - -; Wheel control over accessibility of commands - -; To prevent unauthorized users from performing certain dangerous or sensitive -; operations on the computer, ZCPR33 provides the capability of disabling the -; operation of certain commands when the wheel byte is off. In ZCPR30, an -; attempt to use one of these wheel-protected commands when the wheel byte was -; off resulted in an error message. In ZCPR33 things work differently. In the -; same situation, the command simply disappears. In this way a transient -; program or extended command processor function can take over and deal with -; the attempt to use the command in a much more flexible way. -; -; Wheel-protected commands in ZCPR30 had extra code to intercept the function -; and disable it. In ZCPR33, wheel protection is enabled and disabled in a -; different way. To wheel-protect a command the high bit of the first -; character in the command name is set. The command table scanner in ZCPR33 -; will not recognize these commands when the wheel byte is off. Since the same -; command scanner is used to scan the commands in the RCP and FCP (flow control -; package), commands there can be wheel protected in the same way. For skilled -; computer operators it is very easy to use a debugger, file patcher, or disk -; utility to enable and disable wheel protection without having to reassemble -; the CPR, RCP, or FCP. -; -; Because of the way the command scanner works, once one command is wheel -; protected, there is no further code penalty in protecting other commands. -; Therefore, we recommend protecting all possibly sensitive commands or none. - - -wdir equ no ; Wheel-protect DIR -wera equ yes ; " " ERA -wget equ yes ; " " GET -wgo equ yes ; " " GO -wjump equ yes ; " " JUMP -wren equ yes ; " " REN -wsave equ yes ; " " SAVE -wlt equ yes ; " " LIST and TYPE - -;----------------------------------------------------------------------------- - -; Command names - -; The CTABLE macro, which constructs the command dispatch table, includes a -; line for each command, the first parameter of which is the name of the -; command. These names may be changed if you wish. But make sure that you -; do not use a name that is longer than the maximum allowed length. If you -; do, the name will be truncated and a nonfatal error will occur during -; assembly. DO NOT CHANGE ANY PARAMETER OTHER THAN THE COMMAND NAME. Lower -; case letters will be converted to upper case. The macro COMMAND is defined -; in Z33MAC.LIB. - -cmdsize equ 4 ; Maximum length of command names - -; Command table name, enable, wheel, jump_addr -; [ DO NOT CHANGE THESE PARAMETERS ] -ctable macro - command DIR, diron, wdir, dir - command ERA, eraon, wera, era - command GET, geton, wget, get - command GO, goon, wgo, go - command JUMP, jumpon, wjump, jump - command LIST, lton, wlt, list - command NOTE, noteon, false, note - command REN, renon, wren, ren - command SAVE, saveon, wsave, save - command TYPE, lton, wlt, type - endm - -;----------------------------------------------------------------------------- - -; DIR command options - -wide equ yes ; Wide display for 80-column terminals -fence equ '|' ; Separator to use between columns of names -allchar equ 'A' ; Option letter (must be upper case) for - ; showing SYS and DIR files -syschar equ 'S' ; Option letter (must be upper case) for - ; showing only SYS files -slashfl equ yes ; Allow forms "DIR /S" and "DIR /A"? -whldir equ yes ; Allow display of SYS files only if wheel set - -; Do not change - -whldir defl whldir and diron - -;----------------------------------------------------------------------------- - -; ERA command options - -; There are options that control whether or not and in what way the user will -; be prompted before files are erased. If ERAOK is off, then there will never -; by any prompting. If ERAOK is on and INSPFL is off, then the user will be -; prompted before all deletions. If INSPFL is also on, then the user will be -; prompted only when the prompt option character is included on the command -; line. If this character is defined to be a blank space, then any character -; will turn on prompting. - -eraok equ on ; Enable prompting before files are erased -inspfl equ on ; Enable command-line inspection flag -inspch equ ' ' ; Character to use (must be upper case) to - ; invoke inspection. If this is set to - ; ' ' (space character), then any character - ; after the files spec will turn on the - ; inspect option. - -;----------------------------------------------------------------------------- - -; GET command options - -fullget equ yes ; If yes, no memory checks are performed with - ; the GET command (files can even overwrite the - ; command processor or page 0). - -;----------------------------------------------------------------------------- - -; SAVE command options - -sectch equ ' ' ; Option character (must be upper case) to - ; select saving of sectors. If set to ' ' - ; (space), then any character will select the - ; sector-save option. - -bellfl equ yes ; If yes, bell will ring for SAVE and REN - ; commands when the file already exists. - -;----------------------------------------------------------------------------- - -; TYPE command options - -pagefl equ yes ; If enabled, normally page the output. If not - ; enabled, page output only when paging toggle - ; character is present. -pagech equ 'P' ; Option character (must be upper case) to - ; toggle paging. If it is set to ' ' - ; (space), then any character will toggle - ; the paging mode - - -;============================================================================= -; -; C O M M A N D P R O C E S S I N G O P T I O N S -; -;============================================================================= - -; ZCPR33 has many more command processing options than did ZCPR30. These are -; controlled by the following equates. - -;----------------------------------------------------------------------------- - -; Environment access - -; In ZCPR30 the command processor knew about its environment only at the time -; it was assembled. Therefore, all aspects of the environment were fixed. -; Loading a new ENV module might change the way a transient program would -; function (for example by changing the maximum drive and user values that -; would be accepted), but the command processor would not recognize these -; changes. ZCPR33 can be made to recognize dynamically several possible -; changes in the environment. - -duenv equ yes ; If enabled, the CPR will get the values of - ; the maximum drive and user to recognize from - ; the environment descriptor - -aduenv equ yes ; If enabled, the CPR will use the DUOK flag - ; byte in the environment to determine - ; whether or not to accept DU: references - -inclenv equ no ; If enabled, inclusion of the DU in the - ; prompt will be controlled by the DUOK flag - -; The following three functions, if enabled, allow one to dynamically trade off -; buffer space between named directories, resident commands, and flow control. -; By executing a command like "LDR NEW.ENV,NEW.RCP,NEW.FCP,NEW.NDR" one can -; temporarily expand the capabilities of one module at the expense of another. -; To use these capabilities, the three buffers must be contiguous in memory. -; Since making such changes can be risky, it is recommended that it be done -; only with aliases, so that all necessary changes get made automatically and -; at the same time. - -fcpenv equ yes ; If enabled, the CPR will determine the address - ; of the FCP (flow command package) from the - ; environment descriptor. - -rcpenv equ yes ; If enabled, the CPR will determine the address - ; of the RCP (resident command package) from - ; the environment descriptor. - -ndrenv equ yes ; If enabled, the CPR will determine the address - ; of the NDR (named directory registers) from - ; the environment descriptor. - -;----------------------------------------------------------------------------- - -; Control over types of files to load and run as transient programs. - -comtyp macro ; The file type for executable files (this will - db 'COM' ; be changed only in the most unusual - endm ; situtations). This file type will also apply - ; to the extended command processor. - -attchk equ no ; If enabled, the command processor can be made - ; to recognize as executable files only those - ; with particular attributes (defined by the - ; COMATT equate below). - -comatt equ 0 ; 0 = system, 80h = DIR (01h will give both, - ; but in that case setting ATTCHK to false will - ; give the same result with less code). - -;----------------------------------------------------------------------------- - -; Batch processing using the submit facility. This takes up quite a bit of -; space in the command processor, and you may wish to omit it. Most of the -; type of processing that submit can do can be accomplished using either the -; the memory-based ZEX batch processor or command-line scripts (aliases). - -subon equ yes ; If enabled, the command processor will - ; process submit files. - -subnoise equ 0 ; If 0, submit lines, like command lines - ; generated by aliases, will not be echoed - ; to the screen. If 1, then echoing will - ; be controlled by the ENV QUIET flag. If more - ; than 1, submit command lines will always - ; be echoed. - -subclue equ no ; If yes, use the flag returned by the DOS - ; as a clue to the existence of a submit file - ; (some versions of ZRDOS -- including 1.7 -- - ; do not return the correct value, in which - ; case 'no' should be used here). The speed - ; advantage to using 'yes' is probably not - ; great. - -sprmpt equ ']' ; CPR prompt indicating submit command - -subtyp macro ; The file type for the '$$$' file used by the - db 'SUB' ; submit processor (this will very rarely be - endm ; changed) - -; WARNING -- the following equate should not be changed from 'A' unless you -; know what you are doing! - -subdrv equ 'A' ; Drive to use for submit file (normally this - ; will be 'A', but in special cases, such as - ; when there is a RAM disk, you might want to - ; specify another drive) - -;----------------------------------------------------------------------------- - -; PATH options -- ZCPR searches for user programs along a path of directories -; specified in the path buffer. Because of the efficiency it adds, the -; minpath (minimum path) is not an option in ZCPR33 but is always in effect. -; This minimum path eliminates duplicate references that can arise in several -; ways and otherwise cause a useless search of a directory a second or third -; time. - -drvprefix equ yes ; If enabled, an explicit DU: or DIR: prefix on - ; a command verb will be recognized and made - ; the first element of the command search path. - -scancur equ no ; If enabled, the currently logged directory - ; will always be added to the beginning of the - ; symbolic path (we advise disabling this - ; option -- you can always include '$$' in the - ; path, but then you can omit it when you wish - ; and you can control its position in the path, - ; searching your main directories first). See - ; the Z33 User Guide for special precautions - ; required when SCANCUR is off. - -; In order to save space in the CPR for valuable code, the minpath can be -; built in a memory buffer external to the CPR. If your symbolic path has -; no more than 10 elements, the minpath will automatically be built at the -; bottom of the external stack. Otherwise, if you want an external minpath, -; you must set the EXTMPATH symbol to yes and supply the address of the memory -; to use. The memory requirement is twice the length of the symbolic path -; (see Z3BASE.LIB or run SHOW to get this value) plus 2 if SCANCUR is enabled -; plus 2 if DRVPREFIX is enabled, plus 1 for the ending null. - -extmpath equ no ; If yes, the minpath will be built in a buffer - ; external to the command processor at an - ; address supplied in the next definition. - -extmpathadr equ 0 ; If EXPMPATH is enabled, provide the address - ; of the external buffer here. - -; Do not change the following code - - if [ expaths le 10 ] -extmpath defl yes ; Automatic placement of minpath -extmpathadr defl extstk ; ..at bottom of external stack - endif - -;----------------------------------------------------------------------------- - -; Control over the acceptance and display of drive/user and named directory -; forms. With the options provided in ZCPR33 it is quite easy to provide a -; fully secure system with the DU form enabled. The DU form is often the only -; one recognized by non-ZCPR programs and is often more convenient and natural -; to use. We, therefore, recommend that both DU and DIR forms be allowed and -; displayed. Processing of DIR forms will not be carried out, obviously, if -; the named directory register (NDR) is not implemented in the system. - -accptdu equ yes ; Accept DU: form in command lines -accptdir equ yes ; Accept DIR: form in command lines -dufirst equ no ; If enabled, the DU form will be checked - ; before the DIR form. - -incldu equ yes ; Include DU in prompt -incldir equ yes ; Include DIR in prompt - - -; Do not change the following - -incldir defl incldir and [z3ndir ne 0] -accptdir defl accptdir and [z3ndir ne 0] - -;----------------------------------------------------------------------------- - -; Security matters - - -pwcheck equ yes ; If enabled, passwords on named directories - ; will be checked for DIR forms in the command - ; verb and the first two command-line tokens. - ; If disabled, passwords will not be checked - ; even if a directory has a password defined. - -pwnoecho equ yes ; If yes, the BIOS conout routine will be - ; disabled during password input so that the - ; password will not be echoed to the screen. - ; This does involves poking in the BIOS and - ; could in rare instances cause problems. - -wdu equ no ; If enabled, the DU: and DIR: forms will not - ; be allowed for changing the logged directory - ; unless the wheel byte is set. - -wpass equ yes ; If enabled, password checking of named - ; directories is bypassed when the wheel byte - ; is set. - -wprefix equ no ; If set, this option will effectively turn - ; off DRVPREFIX when the wheel byte is off. - ; Explicit drive prefixes will then be allowed - ; only when the wheel byte is set. Otherwise - ; they will be ignored except that ECPs will - ; not be invoked if a prefix was present. - -; Do not change the next lines - -pwcheck defl pwcheck and [ z3ndir ne 0 ] -pwnoecho defl pwnoecho and pwcheck - -;----------------------------------------------------------------------------- - -; Advanced command processing options - -highuser equ no ; If yes, the command processor will log into - ; user numbers higher than 15 (up to 31). - ; WARNING: BECAUSE CP/M USES A SINGLE BYTE AT - ; ADDRESS 0004H TO KEEP BOTH DRIVE AND USER, - ; PROGRAMS THAT USE THAT BYTE TO DETERMINE - ; THE DEFAULT DU MAY NOT RUN PROPERLY WHEN ONE - ; IS LOGGED INTO A USER NUMBER ABOVE 15. - -skippath equ yes ; If yes, command verbs with an explicit DU: or - ; DIR: prefix will not use the search path; if - ; the command is not found in the specified - ; directory, the error handler will be invoked - ; immediately (no path and no ECP). - -fastecp equ yes ; If yes, command verbs with leading spaces will - ; be executed directly by the ECP (saves the - ; time of searching the path for a COM file - ; when one knows the command is for the ECP). - -altspace equ yes ; If yes, the alternate character, ECPCHAR, can - ; also be used to invoke ECP processing - ; immediately (FASTECP must be enabled). - -altonly equ no ; If ALTSPACE is on, then if ALTONLY is also - ; on, the alternate character the only one that - ; will invoke fast ECP processing (spaces will - ; not). - -ecpchar equ '/' ; Alternate (or required) character for fast ECP - ; invocation. - -altcolon equ yes ; If enabled, an alternate character (period - ; recommended) can be used in place of a colon - ; to make the CPR skip resident commands and - ; add the current directory to the search path. - -altchar equ '.' ; Character that serves as an alias for leading - ; colon if it is the first non-blank character - ; in the command. - -badduecp equ yes ; If yes, pass commands that try to log into a - ; bad directory to the ECP for processing; if - ; set to NO, invoke the error handler - ; immediately under these circumstances. - -; WARNING -- do not change the following equate from 'no' unless you -; know what you are doing! - -shellif equ no ; If yes, flow control processing can take - ; place in shell aliases (complex command - ; sequences being used as a shell). The - ; penalty is that each time the shell runs, - ; the entire flow control system is - ; reinitialized. Flow control information - ; will not persist across shell invocations. - ; If SHELLIF is off, flow commands in shell - ; aliases will not be recognized as FCP - ; commands (they will be flushed) and, - ; therefore, should not be used. - -; Do not change the following - -skippath defl skippath and drvprefix - -;----------------------------------------------------------------------------- - -; Extended command processing - -; The extended command processor comes into effect when a way to process a -; command verb has still not been found after the entire search path for a -; COM file has been exhausted. The entire user command is taken as the -; command tail on the extended command processor. In ZCPR30 one could either -; have extended command processing OR error handling. In ZCPR33 one can, and -; should, have both. - -rootonly equ yes ; If yes, the command processor looks for the - ; ECP only in the directory specified as the - ; last one in the path instead of scanning the - ; entire path for the ECP. - -; The following macro defines the name of the ECP. Rename your favorite -; ECP (ours is ARUNZ) to CMDRUN.COM or whatever name you put in below. - -ecpname macro - db 0 ; Drive (do not change this from 0) - db 'CMDRUN ' ; Name of ECP program (exactly 8 characters) - ; '--------' ; (Eight-character space marker) - endm - -;----------------------------------------------------------------------------- - -; Miscellaneous equates - - -cmdsep equ ';' ; Separator between multiple commands - -; The following two equates are used only if the equates to get this -; information from the environment descriptor are not enabled. - -maxusr equ 31 ; Maximum user number accessible -maxdisk equ 4 ; Maximum number of disks accessible - -supres equ false ; Supresses user number in prompt for user 0 - -cprmpt equ '>' ; CPR prompt indicating user command - -numbase equ 'H' ; Character used to designate a hexadecimal - ; number in the SAVE command - -curind equ '$' ; Symbol in symbolic path for current disk - ; or user - -comment equ ';' ; Lines beginning with this character are - ; treated as comments - -; Definition equates - -wheel defl wera or wren or wlt or wgo or wsave or wget or wjump or wdir - -path equ expath ; Definition from Z3BASE.LIB - -; End of Z33HDR.LIB - - \ No newline at end of file diff --git a/Source/BPBIOS/ZCPR33/z3basen.lib b/Source/BPBIOS/ZCPR33/z3basen.lib deleted file mode 100644 index 397ecd97..00000000 --- a/Source/BPBIOS/ZCPR33/z3basen.lib +++ /dev/null @@ -1,128 +0,0 @@ -; B/P Bios System Z3 Definition File. - -; This file is adapted from the basic Z3BASE.LIB configuration file used for -; most ZCPR33 systems. It has added the new definitions for the Resident -; User Space defined in B/P Bios descriptions. -;========================================================================= -;== NOTE: The Starting Address of the User Space marks the lower == -;== base of memory and MUST be entered. B/P Bios Utilities use == -;== this address to locate many portions of the operating system. == -;========================================================================= -; To change your systems definition, first sketch out the memory map in the -; comment table, then set the equates to reflect the memory map, doing any -; required calculations for element sizes and required spaces. As an -; alternative, just leave this file alone and configure everything with -; the utilities provided. - -; FFE0 - FFFF 32 Bytes HBIOS Reserved -; FFB0 - FFDF 48 Bytes ZCPR3 External Stack -; FF00 - FFAF 176 Bytes Multiple Command Line Buffer -; FE00 - FEFF 256 Bytes Environment Descriptor -; Bytes 00H-7FH: Z3 Parameters -; Bytes 80H-FFH: Z3 TCAP -; FDFF 1 Byte Wheel byte -; FDF4 - FDFE 11 Bytes Path (5 elements) -; FDD0 - FDF3 36 Bytes ZCPR3 External FCB -; FD80 - FDCF 80 Bytes ZCPR3 Message Buffers -; FD00 - FD7F 128 Bytes ZCPR3 Shell Stack -; FC00 - FCFF 256 Bytes Named Directory Buffer -; FA00 - FBFF 512 Bytes Flow Command Package -; F200 - F9FF 2.0 KBytes Resident Command Package -; EC00 - F1FF 1.5 KBytes IO Package -; E900 - EBFF .75 KBytes Resident User Space - -; The remainder is for the Operating System. Exact sizes vary depending -; primarily on the Number and sizes of Hard Drive Partitions, but may be: - -; D100 - EBFF 5.0 KBytes B/P BIOS (unbanked version) -; C300 - D0FF 3.5 KBytes ZSDOS 1.0 BDOS -; BB00 - C2FF 2 KBytes ZCPR 3.3 Command Processor -; 0100 - BAFF ~46 KBytes Transient Program Area -; 0000 - 00FF 256 Bytes Standard CP/M Buffers -;======================================================================== - -FALSE EQU 0 -TRUE EQU NOT FALSE - -YES EQU TRUE -NO EQU FALSE - -; The External Stack is placed in the very top position in memory. It is -; mandatory for B/P Bios and ZCPR 3.3. - -;EXTSTK EQU 0FFD0H ; ZCPR3 External Stack -EXTSTK EQU 0FFB0H ; ZCPR3 External Stack -EXTSTKS EQU YES - -; The Multiple Command Line Buffer is placed in the Top Page of Memory to -; place it above the Environment. It is mandatory for ZCPR 3.3. - -Z3CL EQU 0FF00H ; ZCPR3 Command Line Buffer -;Z3CLS EQU 208-5 ; Size of Command Line Buffer-5 -Z3CLS EQU 176-5 ; Size of Command Line Buffer-5 - -; The ZCPR3 External Environment Descriptor is mandatory B/P Bios & ZCPR 3.3. -; The Environment Descriptor MUST begin on an even Page Boundary (xx00H). - -Z3ENV EQU 0FE00H ; Environment Descriptors -Z3ENVS EQU 2 ; Size of Env Descriptor in 128-Byte Blks - -; The ZCPR3 Wheel Byte is mandatory for ZCPR 3.3. - -Z3WHL EQU 0FDFFH ; Wheel Byte Address -Z3WHLS EQU YES - -; The Path is mandatory for ZCPR 3.3. - -EXPATH EQU 0FDF4H ; External Path starting Address -EXPATHS EQU 5 ; (Path Size = EXPATHS*2 + 1 = 11 bytes) - ; This defines 5 2-byte Path Elements - -; The ZCPR3 External FCB is mandatory for ZCPR 3.3. - -EXTFCB EQU 0FDD0H ; 36-Byte ZCPR3 External FCB -EXTFCBS EQU YES - -; The ZCPR3 Message Buffers are mandatory for ZCPR 3.3. - -Z3MSG EQU 0FD80H ; 80-Byte ZCPR3 Message Buffer -Z3MSGS EQU YES - -; Shell Stack definition. Set SHSTKS to 0 to eliminate Shell Stack - -SHSTK EQU 0FD00H ; Shell Stack Starting Address -SHSTKS EQU 4 ; Number of SHSIZE-Byte Shell Stack entries -SHSIZE EQU 32 ; (Stack Size = SHSTKS * SHSIZE = 128 Bytes) - -; ZCPR3 Named Directory Buffer definition. Set Z3NDIRS to 0 to eliminate -; the named directory buffer. - -Z3NDIR EQU 0FC00H ; Start of Named Directory Buffer -Z3NDIRS EQU 14 ; Number of Named Directory Elements - ; (NDIR Size = Z3NDIRS * 18 + 1 = 253 Bytes) - -; Flow Command Package definition. Set FCPS to 0 to eliminate FCP - -FCP EQU 0FA00H ; Start of Flow Command Package -FCPS EQU 4 ; (FCP Size = 128 * FCPS = 512 Bytes) - -; Resident Command Processor Definition. Set RCPS to 0 to eliminate RCP - -RCP EQU 0F200H ; Start of Resident Command Processor -RCPS EQU 16 ; (RCP Size = 128 * RCPS = 2 kBytes) - -; IO Package definition. Set IOPS to 0 to eliminate IOP - -IOP EQU 0EC00H ; Start of IO Package -IOPS DEFL 12 ; (IOP Size = 128 * IOPS = 1.5 kBytes) - -;========================================================================= -; Resident User Space Definition. Set USPCS to 0 to eliminate USPC. -; The USPC Value marks the Lower Limit of Reserved Common High Memory and -; MUST BE PRESENT! - -USPC EQU 0E900H ; Start of Resident User Space (MANDATORY) -USPCS EQU 6 ; (USPC Size = 128 * USPCS = 0.75 kBytes) - -;--- End of Z3BASE.LIB --- - \ No newline at end of file diff --git a/Source/BPBIOS/ZCPR33/z3baset.lib b/Source/BPBIOS/ZCPR33/z3baset.lib deleted file mode 100644 index 9327887a..00000000 --- a/Source/BPBIOS/ZCPR33/z3baset.lib +++ /dev/null @@ -1,126 +0,0 @@ -; B/P Bios System Z3 Definition File. - -; This file is adapted from the basic Z3BASE.LIB configuration file used for -; most ZCPR33 systems. It has added the new definitions for the Resident -; User Space defined in B/P Bios descriptions. -;========================================================================= -;== NOTE: The Starting Address of the User Space marks the lower == -;== base of memory and MUST be entered. B/P Bios Utilities use == -;== this address to locate many portions of the operating system. == -;========================================================================= -; To change your systems definition, first sketch out the memory map in the -; comment table, then set the equates to reflect the memory map, doing any -; required calculations for element sizes and required spaces. As an -; alternative, just leave this file alone and configure everything with -; the utilities provided. - -; FE00 - FFFF 512 Bytes HBIOS Reserved -; FDFF 1 Byte Wheel byte -; FDF4 - FDFE 11 Bytes Path (5 elements) -; FDD0 - FDF3 36 Bytes ZCPR3 External FCB -; FD80 - FDCF 80 Bytes ZCPR3 Message Buffers -; FD00 - FD7F 128 Bytes ZCPR3 Shell Stack -; FC00 - FCFF 256 Bytes Named Directory Buffer -; FA00 - FBFF 512 Bytes Flow Command Package -; F200 - F9FF 2.0 KBytes Resident Command Package -; EC00 - F1FF 1.5 KBytes IO Package -; EBD0 - EBFF 48 Bytes ZCPR3 External Stack -; EB00 - EBAF 176 Bytes Multiple Command Line Buffer -; EA00 - EAFF 256 Bytes Environment Descriptor -; Bytes 00H-7FH: Z3 Parameters -; Bytes 80H-FFH: Z3 TCAP -; E700 - E9FF .75 KBytes Resident User Space - -; The remainder is for the Operating System. Exact sizes vary depending -; primarily on the Number and sizes of Hard Drive Partitions, but may be: - -; D300 - E6FF 5.0 KBytes B/P BIOS (unbanked version) -; C500 - D2FF 3.5 KBytes ZSDOS 1.0 BDOS -; BD00 - C4FF 2 KBytes ZCPR 3.3 Command Processor -; 0100 - BCFF ~47 KBytes Transient Program Area -; 0000 - 00FF 256 Bytes Standard CP/M Buffers -;======================================================================== - -FALSE EQU 0 -TRUE EQU NOT FALSE - -YES EQU TRUE -NO EQU FALSE - -; The External Stack is placed in the very top position in memory. It is -; mandatory for B/P Bios and ZCPR 3.3. - -EXTSTK EQU 0EBD0H ; ZCPR3 External Stack -EXTSTKS EQU YES - -; The Multiple Command Line Buffer is placed in the Top Page of Memory to -; place it above the Environment. It is mandatory for ZCPR 3.3. - -Z3CL EQU 0EB00H ; ZCPR3 Command Line Buffer -Z3CLS EQU 208-5 ; Size of Command Line Buffer-5 - -; The ZCPR3 External Environment Descriptor is mandatory B/P Bios & ZCPR 3.3. -; The Environment Descriptor MUST begin on an even Page Boundary (xx00H). - -Z3ENV EQU 0EA00H ; Environment Descriptors -Z3ENVS EQU 2 ; Size of Env Descriptor in 128-Byte Blks - -; The ZCPR3 Wheel Byte is mandatory for ZCPR 3.3. - -Z3WHL EQU 0FDFFH ; Wheel Byte Address -Z3WHLS EQU YES - -; The Path is mandatory for ZCPR 3.3. - -EXPATH EQU 0FDF4H ; External Path starting Address -EXPATHS EQU 5 ; (Path Size = EXPATHS*2 + 1 = 11 bytes) - ; This defines 5 2-byte Path Elements - -; The ZCPR3 External FCB is mandatory for ZCPR 3.3. - -EXTFCB EQU 0FDD0H ; 36-Byte ZCPR3 External FCB -EXTFCBS EQU YES - -; The ZCPR3 Message Buffers are mandatory for ZCPR 3.3. - -Z3MSG EQU 0FD80H ; 80-Byte ZCPR3 Message Buffer -Z3MSGS EQU YES - -; Shell Stack definition. Set SHSTKS to 0 to eliminate Shell Stack - -SHSTK EQU 0FD00H ; Shell Stack Starting Address -SHSTKS EQU 4 ; Number of SHSIZE-Byte Shell Stack entries -SHSIZE EQU 32 ; (Stack Size = SHSTKS * SHSIZE = 128 Bytes) - -; ZCPR3 Named Directory Buffer definition. Set Z3NDIRS to 0 to eliminate -; the named directory buffer. - -Z3NDIR EQU 0FC00H ; Start of Named Directory Buffer -Z3NDIRS EQU 14 ; Number of Named Directory Elements - ; (NDIR Size = Z3NDIRS * 18 + 1 = 253 Bytes) - -; Flow Command Package definition. Set FCPS to 0 to eliminate FCP - -FCP EQU 0FA00H ; Start of Flow Command Package -FCPS EQU 4 ; (FCP Size = 128 * FCPS = 512 Bytes) - -; Resident Command Processor Definition. Set RCPS to 0 to eliminate RCP - -RCP EQU 0F200H ; Start of Resident Command Processor -RCPS EQU 16 ; (RCP Size = 128 * RCPS = 2 kBytes) - -; IO Package definition. Set IOPS to 0 to eliminate IOP - -IOP EQU 0EC00H ; Start of IO Package -IOPS DEFL 12 ; (IOP Size = 128 * IOPS = 1.5 kBytes) - -;========================================================================= -; Resident User Space Definition. Set USPCS to 0 to eliminate USPC. -; The USPC Value marks the Lower Limit of Reserved Common High Memory and -; MUST BE PRESENT! - -USPC EQU 0E700H ; Start of Resident User Space (MANDATORY) -USPCS EQU 6 ; (USPC Size = 128 * USPCS = 0.75 kBytes) - -;--- End of Z3BASE.LIB --- - \ No newline at end of file diff --git a/Source/BPBIOS/ZCPR33/zcpr33.bin b/Source/BPBIOS/ZCPR33/zcpr33.bin deleted file mode 100644 index 984d1ba6b33dc1404671cf9f0a17e6336ff08516..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2048 zcmaJ?U2Ggz6~42(9*TAumBzg~FtrNKuK38@ckuui{@6u1sTm zuJHcM7XEwFL zBK@^vt7n6-`r}{(hl%`0{j^`5#^K&GKHZh=iPH}pbvLt3s4Y}0$Wi!F577@Dbyy!P z23XY$WaImKI+!E#Q1>d`X*NHm*ZctEc>hXqArOaNevlQME0%tfhHxAI%NlV;nC1%1 z6uGK60J*e?);MG)O!~H?3UQL?5O34Ro!05^zVbIKUVjZh>vuBr=MIhqA(bb?hzth` z3MfMIuZ)laxgN%0ZPBm3RXu>^>J(O3x_hc0DCd0BRuceb>1tX+zJh)32-xiO7l?zn6DnKB_-EQ=*1&+Fblpz|*l5A0 zJ!Lq}g&}0!K-v=-Z-B5W@LjmF-g_n^y@+;V0_d0Lv%OLp78U6zvLMptGfRGCbN@<_ z{v{jecmPbqTccmgsjam-EYi8!+O~eF7*9~!*@CRp@BUyn(5K1HkS+YxAkP z`i9>0ZTy`wtIhT>_X!NPLt;)#{i1@;h@D{xTX#>wEN zYr&hV8?!FM;79ISSqRO-Mgh=MoSQ(Io32Uh%J#-d`Z;Io6Zs#&9pOH2txQ``p;otD zptO*b|2``S@?S0OBcJVeLWF&;Aj%&Ll6*_K0Mx8lb07ww142SB7|mG$%a^2ZKnUSm zlDRyfb=QQOAmM)w*p*?Fw1O+vZR4)~Kuh0AA{#e!;iZy%rP!P0IA_sH65NPp8dM?NFM2*}?Ze zJ}^hW?WmnnxT!26ZV_6A{x+Y7{)3iNkk8mEN|7dqVW(kmpn~%Kw85G(C&Z*s6ChQ> zO_MOLAy;Sz6fa9o5O%+JY_-o-zJVkW$vm55h(pL`EM6bF1|_xx(zW&0^w>30zDe)o zA4134CdcdYjp&I#pvpeg;Yh(h=tX0YMp(YJQm!N@%Jf;bd~@m$)lIsw?6)r~=+qU{BENWGt76et{7A zD)7}~sH$zo7}pNrYk4Cohm1DhGA-s)cgj>u*X6K+ICieIn9(P*AScREcf?cbvQi@+w!A-xpzNX{#(SYrKP)HxLvMF>S1}!#w0- zZtzBHv7D){E1zfb$#p=UOj8eMA%J{kf=sctBJ`mGec4ej(=R!AoV5cmfyucLgi|pf z`#rosd%HMKKGP%4Lg}o- RDzC85lkR@%Q~ZAn{{f6JiOv83 diff --git a/Source/BPBIOS/byteio.z80 b/Source/BPBIOS/byteio.z80 index 35c5ac46..ed11044e 100644 --- a/Source/BPBIOS/byteio.z80 +++ b/Source/BPBIOS/byteio.z80 @@ -130,7 +130,13 @@ PSTR: LD A,(HL) ; General purpose print 0 or Hi-bit OR A JR Z,PSTRX ; Exit if null found in string LD C,A + PUSH BC + PUSH DE + PUSH HL CALL CONOUT ; Send to console device + POP HL + POP DE + POP BC BIT 7,C ; Test for Hi-bit terminator JR Z,PSTR ; ..loop if Not finished PSTRX: EX (SP),HL ; Else swap Ptr to next instr for entry HL val diff --git a/Source/BPBIOS/cboot-ww.z80 b/Source/BPBIOS/cboot-ww.z80 index 17bd0110..ce08a842 100644 --- a/Source/BPBIOS/cboot-ww.z80 +++ b/Source/BPBIOS/cboot-ww.z80 @@ -24,57 +24,10 @@ ; beginning of B2RAM and DSEG. CBOOT: DI ; Disable interrupt system -; IN0 A,(DDRA) ; Get Data Definition of Port A -; SET 4,A ; Bit 4 is Input for SCSI "Int" input -; OUT0 (DDRA),A ; and reset bits - -; LD A,(HICOMM) ; Set Common Bank start to Header locn -; OUT0 (CBAR),A - -; CALL FDRst ; Reset FDC Controller, Re-Initialize - ; (Needed in case ROM Timed out for HD Boot) -; CALL MOTOFF ; Turn Floppy motors Off, clear timer - -; XOR A ; Get a Byte of Zeros -; OUT0 (SCR),A ; and activate ASCI0/ASCI1 vs MIMIC LD HL,(IOBYT) ; Get IOBYTE, Default Drive & User LD (3),HL ; Set values in TPA bank -; Set BIOS Bank Numbers to the RAM base Number as set by Boot ROM. In-context -; RAM will be reflected in CBR which is base. We adjust other bank numbers -; based on configured differences, except for MaxBnk which remains as config'd. -; Since the bootable systems (MOVCPM set to YES) are not banked, the Fast Boot -; option should be OFF, and only the TPABNK will necessarily be Accurate. - -; IN0 C,(CBR) ; Read Current 4k base of RAM -; RR C ; divide -; RR C ; by -; RR C ; 8 for 32k Bank base -; LD HL,TPABNK -; LD B,(HL) ; Get configured TPA Bank # -; LD (HL),C ; (Store actual) -; IF NOT MOVCPM -; DEC HL -; LD A,(HL) ; Get Any User Bank -; SUB B ; (compute difference from TPA) -; JR C,NoUsrB ; ..jump if None -; ADD A,C ; Else Compute new User Bank # -; LD (HL),A ; (save) -;NoUsrB: INC HL ; advance to System Bank # -; INC HL -; LD A,(HL) ; fetch -; SUB B ; Compute diff from System Bnk to TPA Bnk -; ADD A,C ; add new base -; LD (HL),A ; (save) -; INC HL ; Advance to RAM Drive Start Bank # -; LD A,(HL) -; SUB B ; compute difference -; ADD A,C ; Add true base -; LD (HL),A ; (save) -; ENDIF ;~Movcpm. Max Bank # Stays as configured -; - IF BANKED LD SP,USP ; Set to User Stack in High memory CALL HBX_INIT ; WW @@ -286,71 +239,15 @@ BMOVE: RR L ; to give HL = CPR length in bytes ENDIF ;~Movcpm -; ; -; ; SETUP FOR FASTWB -; ; -; ; BTTBL IS USED TO SAVE ORIGINAL CPR -; ; SARL IS USED TO RESTORE CPR -; ; -; ; 0-2: SRC ADDRESS (LLHHB) -; ; 3-5: DEST ADDRESS (LLHHB) -; ; 6-7: LEN (LLHH) -; ; -; ; SET TRANSFER LENGTH IN BTTBL AND SARL -; LD (BTTBL+6),HL ; Save length in boot block -; LD (SARL+6),HL ; and DMA WB block -; ; -; ; L=TPA BANK, H=SYS BANK -; LD HL,(TPABNK) ; Get TPA (L) and System (H) Banks -; ; -; ; CONVERT BANK:DE -> BHHLL, SAVE AS SRC IN BTTBL AND DEST IN SARL -; LD A,L ; Load TPA Bank # -; RL D ; Move MSB of Address to Carry -; ADC A,0 ; Add Carry to Bank # (in case cross banks) -; RRA ; shift for DMA Bank # -; LD (SARL+5),A ; save in Warm Boot DMA Block -; LD (BTTBL+2),A ; and initial move to bank -; RR D ; Move Bank # LSB (Carry) to MSB of Address -; LD (SARL+3),DE ; Save CPR logical address in WB DMA block -; LD (BTTBL),DE ; and initial move to bank -; ; -; ; CONVERT BANK:$0100 -> BHHLL, SAVE AS DEST IN BTTBL AND SRC IN SARL -; LD A,H ; Load System Bank # -; LD HL,100H ; Load Bank Address of CPR Image Start -; RL H ; get rid of MSB -; ; Since we know the MSB=0, bypass adc 0 -; RRA ; Shift for DMA Bank # -; LD (BTTBL+5),A ; save as initial dest bank byte -; LD (SARL+2),A ; and DMA Source Bank byte -; RR H ; Rotate Carry (Bank LSB) to MSB of Address -; LD (SARL),HL ; Save Source Addr in WB DMA block -; LD (BTTBL+3),HL ; and initial move block + ; + ; SETUP FOR FASTWB + ; LD (CPLEN),HL ; Save command processor length LD (CPADR),DE ; Save command processor address (in TPA) ENDIF ;fastwb -; IF BANKED -; ; -; ; SETUP CPYVEC TO COPY IMAGE OF TPA BANK PAGE ZERO TO SYS BANK PAGE ZERO -; LD HL,0000 ; If we are banked, set to copy Page 0 -; LD A,(TPABNK) ; of TPA to System Bank -; OR A -; RRA ; Shift TPA Bank # -; LD (CPYVEC+2),A ; store in DMA Block -; RR H ; adjust Address by Bank LSB (Carry) -; LD (CPYVEC),HL ; and store -; LD H,0 -; LD A,(SYSBNK) -; RRA ; Shift System Bank # -; LD (CPYVEC+5),A ; store in DMA Block -; RR H ; adjust Address by Bank LSB (Carry) -; LD (CPYVEC+3),HL ; and store -; LD HL,40H ; Set length of move -; LD (CPYVEC+6),HL ; and store in DMA Block -; ENDIF ;banked - LD (STKSAV),SP ; Save entry stack since we alter it here LD A,(BLOCKE-BLOCK)/6 LD SP,BLOCK @@ -381,11 +278,6 @@ BLKMV: POP BC ; And number of bytes to move LD (BIOSJT+1),HL ENDIF ;haviop -; LD HL,INTTBL ; Set the Interrupt Vector -; LD A,H ; first the page -; LD I,A ; to CPU Register -; OUT0 (IL),L ; then the segment addr - IF BANKED CALL JDVINI ; Call directly because we are in High Stack ELSE @@ -514,25 +406,25 @@ PTHPTR: DEFW EXPATH IOPPTR: DEFW IOP ENDIF - IF HARDDSK AND HDDMA AND (NOT IDE) - DEFW DMALEN - DEFW DMADAT - DEFW DMATBL - ENDIF +; IF HARDDSK AND HDDMA AND (NOT IDE) +; DEFW DMALEN +; DEFW DMADAT +; DEFW DMATBL +; ENDIF BLOCKE EQU $ ;..... ; Initial HD DMA Control Block data - IF HARDDSK AND HDDMA -DMADAT: DEFW HSTBUF ; Physical sector address - DEFB 00 ; BNK2 SHR 1 if banked, BNK0 SHR 1 If not - DEFW DMAACK ; Dack port address - DEFB 0 - DEFW 400H ; Number of bytes to transfer (1Sct+slop=2Scts) -DMALEN EQU $-DMADAT - ENDIF +; IF HARDDSK AND HDDMA +;DMADAT: DEFW HSTBUF ; Physical sector address +; DEFB 00 ; BNK2 SHR 1 if banked, BNK0 SHR 1 If not +; DEFW DMAACK ; Dack port address +; DEFB 0 +; DEFW 400H ; Number of bytes to transfer (1Sct+slop=2Scts) +;DMALEN EQU $-DMADAT +; ENDIF CMDSET: DEFW Z3CL+4 ; Point to first character in command buffer DEFB Z3CLS ; Command buffer size diff --git a/Source/BPBIOS/dpbm-ww.lib b/Source/BPBIOS/dpbm-ww.lib index 1da3be8d..f0c37bff 100644 --- a/Source/BPBIOS/dpbm-ww.lib +++ b/Source/BPBIOS/dpbm-ww.lib @@ -32,8 +32,8 @@ DPBRAM: DEFW 32 ; Sectors/Track DEFB 0FH ; Block Mask DEFB 1 ; Extent Mask DEFW MSIZ-1 ; Disk Size-1 256 kB 512 kB 1024 kB - DEFW 128 - 1 ; Dir Max -or- 64 128 256 - DEFB 0C0H, 00 ; Alloc 0, 1 80H,0 0C0H,0 0F0H,0 + DEFW 256 - 1 ; Dir Max -or- 64 128 256 + DEFB 0F0H, 00 ; Alloc 0, 1 80H,0 0C0H,0 0F0H,0 DEFW 0000 ; Check Size DEFW 0000 ; Trk Offset from beginning of Ram Bank base diff --git a/Source/BPBIOS/dph.sav b/Source/BPBIOS/dph.lib.sav similarity index 100% rename from Source/BPBIOS/dph.sav rename to Source/BPBIOS/dph.lib.sav diff --git a/Source/BPBIOS/fdc-ww.z80 b/Source/BPBIOS/fdc-ww.z80 index 5bc26624..2def4ed6 100644 --- a/Source/BPBIOS/fdc-ww.z80 +++ b/Source/BPBIOS/fdc-ww.z80 @@ -166,9 +166,9 @@ READID: CALL PANIC ;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: RETDST: CALL PANIC - LD HL,ST0 ; Point to Status Byte (Reg 3 contents) - LD A,(HL) ; fetch it - LD BC,765 ; load Controller ID + ;LD HL,ST0 ; Point to Status Byte (Reg 3 contents) + ;LD A,(HL) ; fetch it + ;LD BC,765 ; load Controller ID RET ;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: @@ -187,7 +187,7 @@ RETDST: CALL PANIC ;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: FMTTRK: CALL PANIC - XOR A + ;XOR A RET ;============================================================================= @@ -198,8 +198,8 @@ FMTTRK: CALL PANIC ; Uses : AF,BC FDCMD: CALL PANIC - LD A,(ST0) ; Else get first byte of Status - AND 0C0H ; check for Normal termination + ;LD A,(ST0) ; Else get first byte of Status + ;AND 0C0H ; check for Normal termination RET ; ..return w/Error Flags set ;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: @@ -212,7 +212,7 @@ FDCMD: CALL PANIC ; Return: Head Delay bit set in Command in A if needed ; Uses : None. All Registers Preserved/Not Affected -;MOTOR: CALL PANIC +MOTOR: CALL PANIC XOR A RET @@ -231,7 +231,7 @@ FDCMD: CALL PANIC ;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: FHDRW: CALL PANIC - XOR A + ;XOR A RET @@ -271,35 +271,35 @@ HDR: DEFS 1 ; Head (B2), Drive (B0,1) (** Global **) ; FDC Operation Result Storage Area -ST0: DEFS 1 ; Status Byte 0 -ST1: DEFS 1 ; Status Byte 1 (can also be PCN) -ST2: DEFS 1 ; Status Byte 2 +;ST0: DEFS 1 ; Status Byte 0 +;ST1: DEFS 1 ; Status Byte 1 (can also be PCN) +;ST2: DEFS 1 ; Status Byte 2 RC: DEFS 1 ; Track # (** Global **) -RH: DEFS 1 ; Head # (0/1) +;RH: DEFS 1 ; Head # (0/1) RR: DEFS 1 ; Sector # (** Global **) RN: DEFS 1 ; Sector Size (** Global **) ;-->>> Do NOT re-order the following two bytes !! <<<-- -MTM: DEFS 1 ; Floppy Time down-counter -MOTIM: DEFS 1 ; Motor On Time Counter +;MTM: DEFS 1 ; Floppy Time down-counter +;MOTIM: DEFS 1 ; Motor On Time Counter ; DISK Subsystem Variable Storage -FDMOT: DEFS 1 ; Motor on required flag +;FDMOT: DEFS 1 ; Motor on required flag RDOP: DEFS 1 ; Read/write flag -RETRYS: DEFS 1 ; Number of times to try Opns -RWRTRY: DEFS 1 ; Number of read/write tries -DRVSPD: DEFS 1 ; Drive Speed -DRVSIZ: DEFS 1 ; Drive Size +;RETRYS: DEFS 1 ; Number of times to try Opns +;RWRTRY: DEFS 1 ; Number of read/write tries +;DRVSPD: DEFS 1 ; Drive Speed +;DRVSIZ: DEFS 1 ; Drive Size STEP2: DEFS 1 ; <> 0 for Double Step (** Global **) -MODE: DEFS 1 ; Bit 6 = 1 if MFM, 0 = FM -ACTIVE: DEFS 1 ; Current bits written to Dev Contr Reg (DCR) -DLYCNT: DEFS 1 ; Delay value reading Main Status Reg -FSPT: DEFS 1 ; Format Sectors/Track value +;MODE: DEFS 1 ; Bit 6 = 1 if MFM, 0 = FM +;ACTIVE: DEFS 1 ; Current bits written to Dev Contr Reg (DCR) +;DLYCNT: DEFS 1 ; Delay value reading Main Status Reg +;FSPT: DEFS 1 ; Format Sectors/Track value TSBSCF: DEFS 1 ; 0=Hd always 0 (TSBSC) (** Global **) TTRK: DEFS 1 ; Storage for Track (** Global **) -TRKARY: DEFS 4 ; Track storage locations for four drives +;TRKARY: DEFS 4 ; Track storage locations for four drives ;=========================== End of FDC-DX ============================== diff --git a/Source/BPBIOS/hardhb.z80 b/Source/BPBIOS/hardhb.z80 index 25a3cb08..39d2afab 100644 --- a/Source/BPBIOS/hardhb.z80 +++ b/Source/BPBIOS/hardhb.z80 @@ -38,8 +38,7 @@ ; Uses : A,HL ;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -HDVALS: LD (DATADR),DE ; Save the Users Data Area - LD A,CMDSIZ +HDVALS: CALL PANIC ; NOT IMPLEMENTED!!!! RET ;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: @@ -49,8 +48,7 @@ HDVALS: LD (DATADR),DE ; Save the Users Data Area ; Uses : AF ;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -HDSLCT: AND 01H ; Strip any garbage - LD (hdUnit),A ; save in Command Block +HDSLCT: CALL PANIC ; NOT IMPLEMENTED!!!! RET ;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: @@ -120,26 +118,6 @@ HDREAD: DSEG ENDIF -HRTrys: DEFS 1 ; Retry counter storage -hdUnit: DEFS 1 ; IDE Drive (0 = Master, 1 = Slave) -hdTrks: DEFS 2 ; Number of Tracks on IDE Drive -hdHds: DEFS 1 ; Number of Heads on IDE Drive -hdSPT: DEFS 1 ; Number of Sectors-Per-Track on IDE Drive - -; IDE Command Block for User Direct Driver Access - -hdComd: DEFS 1 ; Command Byte -hdBMap: DEFS 1 ; Bit Map (B6..0) of Following Bytes to Set -hdHead: DEFS 1 ; Head Number/Number of Heads in B3..0 -hdTrkH: DEFS 1 ; Hi-Track (Cylinder) Byte -hdTrkL: DEFS 1 ; Lo-Track (Cylinder) Byte -hdSec: DEFS 1 ; Sector Number -hdSCnt: DEFS 1 ; Sector Count -hdErr: DEFS 1 ; Error Reg Value -hdDigO: DEFS 1 ; Digital Output Reg Value -CMDSIZ EQU $-hdComd ; Size of Command Block - -DATADR: DEFS 2 ; Pointer to User Buffer Space (user bank) ;======================= End of HARDIDE =========================== diff --git a/Source/BPBIOS/icfg-ww.z80 b/Source/BPBIOS/icfg-ww.z80 index 3fca3f55..4b17951a 100644 --- a/Source/BPBIOS/icfg-ww.z80 +++ b/Source/BPBIOS/icfg-ww.z80 @@ -113,7 +113,7 @@ MONTIM: DEFB 100 ; Motor On Time (1 to 255) in tenths-of-seconds SPINUP: DEFB 8 ; Spinup delay (1 to 255) in tenths-of-seconds MXRTRY: DEFB 4 ; Maximum Number of retries on Floppy Opns -IVCT: DEFW INTTBL ; Pointer to interrupt vectors +IVCT: DEFW 0 ; Pointer to interrupt vectors ;-------- Physical Hard Drive Configuration Information ---------- ; Hard Disk data begins w/Controller Type, followed by data for 3 drives. diff --git a/Source/BPBIOS/iio-ww.z80 b/Source/BPBIOS/iio-ww.z80 index 093e4835..64f4fbae 100644 --- a/Source/BPBIOS/iio-ww.z80 +++ b/Source/BPBIOS/iio-ww.z80 @@ -2,26 +2,6 @@ ; Byte I/O Routines *** Hardware Specific *** ; - D-X Designs Pty Ltd P112 - ************************* ; -; Several serial and parallel options exist on the P112, with two serial -; ports available at RS-232 signalling levels. The primary port defined here -; as COM1 uses SCC Channel A of the Z80182. A 16550-compatible serial port -; on the SMC FDC37C665 is used as COM2. Three other serial ports (the two -; ACSI ports in the Z180 core, and SCC Channel B) are available at TTL -; voltage levels on a single header and may be defined as COM3-5 if the pins -; from the Z182 are not otherwise used. -; This code supports the additional serial channels if the MORDEV equate -; is set to YES. If any of the three additional serial ports are defined -; (ESCC_B, ASCI_0, ASCI_1), then the System Configuration Register is set to -; Zero activating the additional signals in the conditions specified herein -; as activated by options in DEF-DX.LIB. -; A full Parallel port on the SMC FDC37C655 (in Normal Centronics mode) is -; used as the primary List (Printer) Device. -; -; NOTE: At the present time, it appears that port 0D9H (ENH182) cannot be set -; so ESCC operation at 24 MHz will occur at the full clock rate instead -; of being divided by Two as specified in Zilog documentation. Code -; managing ENH182 is commented out with ";;--" markers (HFB). -; ; 1.2 - 28 Aug 01 - Final scrub for GPL release. HFB ; 1.1a- 11 May 97 - Cleaned code, fixed added port accesses. HFB ; 1.1 - 25 Jan 97 - Revised ESCC Baud rate calcs, added COM3-5. HFB @@ -30,24 +10,13 @@ ; Place constants for Expansions here CSEG + ;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ; Byte Device Control Tables ;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::: DEVCFG: -; The Clock Rate for the SCC channels on the Z80182 is based on a divider -; constant loaded in extended registers, the Processor Crystal frequency, -; and the setting of the divider in the SCC Register (1FH). -; -; NOTE: Divisor values are computed based on a compromise between the Crystal -; rates considered "standard" (6.144, 9.216, 12.288 MHz, etc) and the -; 16.000 MHz initially placed on the P112. Higher data rates (38.4 kbps -; and higher) may be out of tolerance, particularly at low CPU speeds. -; -; Clock rates for the serial port on the SMC 37C655 are based on a software -; programmable divider from the 24 MHz crystal driving the chip. - COM1: DEFB 'COM1' ; 4-Char ID DEFB 11101011B ; Baud Rate ; ||||++++--- Baud Rate setting (19.2 kbps) @@ -121,20 +90,13 @@ DEVTBL: LD HL,DEVCFG ; BYTE device table ; COM1 Drivers ;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::: - IF HBIOS ; Uses HBIOS ;..... ; COM1 Input Status Test COM1IS: - PUSH BC - PUSH DE - PUSH HL LD BC,0200H + HB_IODEV ; Func=$02 (IS), Device/Unit=HB_IODEV CALL HBX_INVOKE - POP HL - POP DE - POP BC RET ;..... @@ -142,130 +104,67 @@ COM1IS: ; Remain in Loop until Char ready, then Return Char in A COM1IN: - PUSH BC - PUSH DE - PUSH HL LD BC,0000H + HB_IODEV ; Func=$00 (IN), Device/Unit=HB_IODEV CALL HBX_INVOKE LD A,E - POP HL - POP DE - POP BC RET ;..... ; COM1 Output Status Test COM1OS: - PUSH BC - PUSH DE - PUSH HL LD BC,0300H + HB_IODEV ; Func=$03 (OS), Device/Unit=HB_IODEV CALL HBX_INVOKE - POP HL - POP DE - POP BC RET ;..... ; COM1 Output Routine (Byte to Send in C) COM1OT: - PUSH BC - PUSH DE - PUSH HL LD E,C ; Character to E LD BC,0100H + HB_IODEV ; Func=$01 (OT), Device/Unit=HB_IODEV CALL HBX_INVOKE - POP HL - POP DE - POP BC - RET - - ELSE -;..... -; COM1 Input Status Test - -COM1IS: IN A,(_LSR) ; Input Status Reg Byte - RRA ; Rcv Rdy Bit[0] -> Carry - SBC A,A ; A=00 if Not Ready, FF if Char received RET -;..... -; COM1 Input Routine - -COM1IN: CALL COM1IS ; Char Ready? - JR Z,COM1IN ; ..loop if Not - IN A,(_RBR) ; Else Read Receive Buffer - LD C,A ; Save byte - LD A,(COM1+6) ; .get mask - AND C ; ..apply it - RET - -;..... -; COM1 Output Status Test - -COM1OS: - IN A,(_LSR) ; Read Status Reg - AND 20H ; Mask Bit of interest - RET Z ; ..return if nothing valid - OR 0FFH ; Else set flags for Ready - RET - -;..... -; COM1 Output Routine - -COM1OT: CALL COM1OS ; Test if ready - JR Z,COM1OT ; ..loop if not - LD A,(COM1+7) ; Get output mask - AND C ; apply - OUT (_THR),A ; and send char to Xmt Holding Reg - RET - - ENDIF - PAGE ;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ; COM2 Drivers ;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -; Uses generic 16550 UART + +; Uses HBIOS ;..... ; COM2 Input Status Test -COM2IS: IN A,(_LSR) ; Input Status Reg Byte - RRA ; Rcv Rdy Bit[0] -> Carry - SBC A,A ; A=00 if Not Ready, FF if Char received +COM2IS: + LD BC,0200H + HB_IODEV + 1 ; Func=$02 (IS), Device/Unit=HB_IODEV + CALL HBX_INVOKE RET ;..... ; COM2 Input Routine +; Remain in Loop until Char ready, then Return Char in A -COM2IN: CALL COM2IS ; Char Ready? - JR Z,COM2IN ; ..loop if Not - IN A,(_RBR) ; Else Read Receive Buffer - LD C,A ; Save byte - LD A,(COM2+6) ; .get mask - AND C ; ..apply it +COM2IN: + LD BC,0000H + HB_IODEV + 1 ; Func=$00 (IN), Device/Unit=HB_IODEV + CALL HBX_INVOKE + LD A,E RET ;..... ; COM2 Output Status Test COM2OS: - IN A,(_LSR) ; Read Status Reg -SOSTV: AND 20H ; Mask Bit of interest -RETST: RET Z ; ..return if nothing valid -ISTRUE: OR 0FFH ; Else set flags for Ready + LD BC,0300H + HB_IODEV + 1 ; Func=$03 (OS), Device/Unit=HB_IODEV + CALL HBX_INVOKE RET ;..... -; COM2 Output Routine +; COM2 Output Routine (Byte to Send in C) -COM2OT: CALL COM2OS ; Test if ready - JR Z,COM2OT ; ..loop if not - LD A,(COM2+7) ; Get output mask - AND C ; apply - OUT (_THR),A ; and send char to Xmt Holding Reg +COM2OT: + LD E,C ; Character to E + LD BC,0100H + HB_IODEV + 1 ; Func=$01 (OT), Device/Unit=HB_IODEV + CALL HBX_INVOKE RET PAGE @@ -294,28 +193,12 @@ PIO1OS: JP ISTRUE ; Not implemented PIO1OT: JP ISFALSE ; Not implemented ;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -;:: I n t e r r u p t T a b l e :: +;:: Helper Functions :: ;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -; The Z80182 Interrupt Vector table is placed here on a 32-byte -; boundary for internal peripherals. - - DEFS 32-[$-BIOSJT AND 31] ; Align -INTTBL: - DEFW BADINT ; FDC Controller w/Ints (FDCINT if Real Ints) - DEFW BADINT ; Parallel output port (INTPIO if Real Ints) - DEFW TIMER ; Timer0 - DEFW BADINT ; Timer1 - DEFW BADINT ; DMA Channel 0 - DEFW BADINT ; DMA Channel 1 - DEFW BADINT ; Clocked Serial IO - DEFW BADINT ; ASCI 0 if Not Interrupt/Mordev - DEFW BADINT ; ASCI 1 if Not Interrupt/Mordev - -; Error trap for unimplemented Interrupts - -BADINT: CALL PRINT - DEFC CR,LF,'Bad Int.' - JP WBOOT + +ISTRUE: OR 0FFH ; Else set flags for Ready + RET + ;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ;:: D e v i c e I n i t i a l i z a t i o n :: diff --git a/Source/BPBIOS/tim-ww.z80 b/Source/BPBIOS/tim-ww.z80 index 2d772ef5..ab2563d7 100644 --- a/Source/BPBIOS/tim-ww.z80 +++ b/Source/BPBIOS/tim-ww.z80 @@ -28,132 +28,8 @@ CSEG -; Come here every 50 milliseconds from Programmable Reload Timer 0 - -TIMER: DI ; Don't Interrupt from here - LD (TIMSTK),SP ; Save entry Stack Pointer - LD SP,TIMSTK ; ..set up Local Interrupt Stack - PUSH HL - PUSH AF ; Save the registers - - IN0 A,(TCR) - IN0 A,(TMDR0L) - IN0 A,(TMDR0H) ; Clear the interrupt - - LD HL,FLAG50 ; Point to 50 mS Flag - LD A,(HL) ; fetch - XOR 01H ; and toggle LSB - LD (HL),A ; Re-save - JR NZ,TDONE ; ..exit if Odd 50 mS Tick - - LD HL,DCNTR ; Adjust User GP Down-Counter - DEC (HL) - - LD HL,MTM ; Adjust Bios GP Down-Counter - DEC (HL) - - INC HL ; Point to Motor On-timer (MOTIM) - LD A,(HL) - OR A ; Already Timed Out? - JR Z,TIMER0 ; ..jump if So - DEC (HL) ; Else count down - CALL Z,MOTOFF ; turning Motors Off if timed out -TIMER0: - -; Adjust the Interrupt-driven Real Clock (if no Real Time Clock exists). -; This "Clock" maintains Date and Time in a DateStamper(C) compatible -; string per ZSDOS specifications. - - IF CLOCK AND [NOT DS1202] - LD HL,TENTHS ; 100ms counter - INC (HL) ; Bump Tenths-of-Seconds - LD A,(HL) ; get the value - SUB 10 ; Subtract limit value (in decimal times 2) - JR NZ,TDONE ; jump to exit if no rollover - LD (HL),A ; Else save a zero - DEC HL ; back down time string - - LD A,(HL) ; Get Seconds - INC A ; bump - DAA ; in BCD - LD (HL),A ; and save - SUB 60H ; Subtract limit value - JR NZ,TDONE ; ..jump to exit if no rollover - LD (HL),A ; Else save a zero - DEC HL ; back down time string - - LD A,(HL) ; Get Minutes - INC A ; bump - DAA ; in BCD - LD (HL),A ; and save - SUB 60H ; Subtract limit value - JR NZ,TDONE ; ..jump to exit if no rollover - LD (HL),A ; Else save a zero - DEC HL ; back down time string - - LD A,(HL) ; Get Hours - INC A ; bump - DAA ; in BCD - LD (HL),A ; and save - SUB 24H ; Subtract limit value - JR NZ,TDONE ; ..jump to exit if no rollover - LD (HL),A ; Else save a zero - DEC HL ; back down time string - - LD A,(HL) ; Get Day - INC A ; bump - DAA ; in BCD - LD (HL),A ; and save - PUSH DE ; Save regs - PUSH AF - EX DE,HL - LD HL,DPM-1 ; Point to days per month table indexed base 1 - DEC DE ; back up to Months byte - LD A,(DE) - INC DE ; move ptr back - CP 10 ; >Sept? - JR C,TIMER1 ; ..jump if Not - SUB 6 ; Else convert BCD to binary -TIMER1: CALL ADDAHL ; Offset into table based on Month - POP AF ; Get current day count - CP (HL) ; Time for new month? - EX DE,HL ; (put regs back) - POP DE - JR C,TDONE ; ..exit here if not time - LD (HL),1 ; Else start out on first of month - DEC HL ; back down to month - - LD A,(HL) ; Get month - INC A ; Bump - DAA ; in BCD - LD (HL),A ; and save - SUB 13H ; Time for new year? - JR C,TDONE ; ..exit if not - LD (HL),1 ; Else start at month 1 (Jan) - DEC HL ; back up to Years byte - - LD A,(HL) ; Get Year - INC A ; bump - DAA ; in BCD - LD (HL),A ; and save - SUB 99H ; Time for next century? - JR NZ,TDONE ; ..exit if not - LD (HL),A ; Else save 0 year - - ENDIF ;Clock & Not DS1202 - -TDONE: POP AF - POP HL ; Restore registers - LD SP,(TIMSTK) ; and Stack Pointer -; EI ; allow Ints again - RET - - IF CLOCK AND [NOT DS1202] ; Table of Days-per-Month -DPM: DEFB 31H+1, 28H+1, 31H+1 ; January, February, March - DEFB 30H+1, 31H+1, 30H+1 ; April, May, June - DEFB 31H+1, 31H+1, 30H+1 ; July, August, September - DEFB 31H+1, 30H+1, 31H+1 ; October, November, December - ENDIF ;Clock & Not Ds1202 +TIMER: + RET ; NOT IMPLEMENTED FOR HBIOS ;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ; TIME - Set or Return the time string as defined for ZSDOS. If Reading, @@ -177,7 +53,7 @@ DPM: DEFB 31H+1, 28H+1, 31H+1 ; January, February, March ; YR MO DA HH MM SS TT ;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: - IF CLOCK AND DS1202 + IF CLOCK IF SIMHCLK SIMHPORT EQU 0FEH @@ -258,66 +134,23 @@ WRCLK: ENDIF ; HBCLK - ENDIF ;Clock & Ds1202 - - JP ISTRUE ; Handle fall thru if no clock driver - - - IF HBCLK -TIMBUF DEFS 6 - ENDIF - -;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: - IF CLOCK AND [NOT DS1202] ; Not Dallas, make Intrpt Code - -TIME: LD A,C ; Get Clock Operation Flag - LD BC,5 ; and set up for ZSDOS Read/Write - LD HL,YEAR ; Pointing to Clock String - OR A ; Is it a Read? - JR Z,TIMES ; ..jump it so - EX DE,HL ; Else swap pointers for write -TIMES: DI ; disable Interrupts - LDIR ; and move 5 bytes of 6 bytes (.1 Sec = 7) - LD C,(HL) ; Get the Seconds byte - INC HL ; bump to 1/10th Seconds - LD H,(HL) ; and Get -; EI ; Re-enable Interrupts - EX DE,HL ; Swap pointers - LD E,(HL) ; Preserve original Sec field contents in E - LD (HL),C ; and store the Seconds byte (.1 Sec in D) - LD BC,DCNTR ; Get Address of User Down-Counter - LD A,01 ; Set Ok exit value of 1 - RET - - ENDIF ;Clock & Not Ds1202 - IF NOT CLOCK ; If No Clock.. XOR A ; Set Error Return RET ; and exit - ELSE - DSEG + ENDIF ; Clock -; Real Time Clock Buffer - IF NOT DS1202 ; Don't need this if D-X Designs P112 -YEAR: DEFS 1 ; Year - packed BCD - DEFS 1 ; Month - packed BCD - DEFS 1 ; Day - packed BCD - DEFS 1 ; Hour - packed BCD - DEFS 1 ; Minute - packed BCD - DEFS 1 ; Seconds - packed BCD -TENTHS: DEFS 1 ; Tenths of Seconds - Binary (Int, else..) - ENDIF - ENDIF ;Clock ;..... ; Save some space in the Common RAM Area for a local stack DSEG + DCNTR: DEFS 1 ; User 100 mS General-Purpose Down-Counter -FLAG50: DEFS 1 ; Flag for dividing 50mS to 100mS ticks - DEFS 12 ; We use 6 levels of stack (worst case) -TIMSTK: DEFS 2 ; Store the entry Stack pointer here + + IF HBCLK +TIMBUF DEFS 6 + ENDIF + CSEG ; End up by restoring CSEG ;=========================== END of TIM-DX ================================== - \ No newline at end of file diff --git a/Source/BPBIOS/wboot-ww.z80 b/Source/BPBIOS/wboot-ww.z80 index cb648265..df9d135c 100644 --- a/Source/BPBIOS/wboot-ww.z80 +++ b/Source/BPBIOS/wboot-ww.z80 @@ -152,20 +152,6 @@ GOZSYS: LD BC,80H ; Default DMA address is 80H JP (HL) ; Go to Z-System for further processing -;..... -; Common DMA move sequence placed here in CSEG for Common access -; Enter with HL pointing to a DMA definition block - - IF [BANKED OR FASTWB OR RAMDSK] -DMAMOV: LD BC,8*256+SAR0L ; Send 8 bytes to Ports SAR0L - OTIMR - LD A,00000010B ; Set DMA Mode control to Burst Mode - OUT0 (DMODE),A - LD A,40H ; Enable DMA0 - OUT0 (DSTAT),A ; ..and move the block - RET - ENDIF - IF [Z3 AND HAVIOP] ; Aux Jump Table so IOP's can find routines. After Cold Boot, the ; address of this table is placed in BIOSJT+1. diff --git a/Source/BPBIOS/z3basen.lib b/Source/BPBIOS/z3basen.lib index 397ecd97..0a84f197 100644 --- a/Source/BPBIOS/z3basen.lib +++ b/Source/BPBIOS/z3basen.lib @@ -34,10 +34,10 @@ ; The remainder is for the Operating System. Exact sizes vary depending ; primarily on the Number and sizes of Hard Drive Partitions, but may be: -; D100 - EBFF 5.0 KBytes B/P BIOS (unbanked version) -; C300 - D0FF 3.5 KBytes ZSDOS 1.0 BDOS -; BB00 - C2FF 2 KBytes ZCPR 3.3 Command Processor -; 0100 - BAFF ~46 KBytes Transient Program Area +; CE00 - E8FF 5.0 KBytes B/P BIOS (unbanked version) +; C000 - CDFF 3.5 KBytes ZSDOS 1.0 BDOS +; B800 - BFFF 2 KBytes ZCPR 3.3 Command Processor +; 0100 - B7FF ~46 KBytes Transient Program Area ; 0000 - 00FF 256 Bytes Standard CP/M Buffers ;======================================================================== @@ -47,6 +47,10 @@ TRUE EQU NOT FALSE YES EQU TRUE NO EQU FALSE +BASE EQU 0 + +CCP EQU 0C000H ; ZCPR3 COMMAND PROCESSOR + ; The External Stack is placed in the very top position in memory. It is ; mandatory for B/P Bios and ZCPR 3.3. @@ -125,4 +129,3 @@ USPC EQU 0E900H ; Start of Resident User Space (MANDATORY) USPCS EQU 6 ; (USPC Size = 128 * USPCS = 0.75 kBytes) ;--- End of Z3BASE.LIB --- - \ No newline at end of file diff --git a/Source/BPBIOS/z3baset.lib b/Source/BPBIOS/z3baset.lib index 9327887a..8ee0fa35 100644 --- a/Source/BPBIOS/z3baset.lib +++ b/Source/BPBIOS/z3baset.lib @@ -47,6 +47,10 @@ TRUE EQU NOT FALSE YES EQU TRUE NO EQU FALSE +BASE EQU 0 + +CCP EQU 0BD00H ; ZCPR3 COMMAND PROCESSOR + ; The External Stack is placed in the very top position in memory. It is ; mandatory for B/P Bios and ZCPR 3.3. @@ -123,4 +127,3 @@ USPC EQU 0E700H ; Start of Resident User Space (MANDATORY) USPCS EQU 6 ; (USPC Size = 128 * USPCS = 0.75 kBytes) ;--- End of Z3BASE.LIB --- - \ No newline at end of file diff --git a/Source/BPBIOS/zcpr33n.rel b/Source/BPBIOS/zcpr33n.rel deleted file mode 100644 index f9f24ee8f8ffe0eaef5fcde485cea0da6cfceeb6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2304 zcmXw)dsGu=8phw5Op*!aGC@=jkO@)D3L*kVN^6;LbFH}Is(~omf`%MWV$oLCtr{jF z0%Ga~1utlcNY^S<*6dE0eJ7 zayLV7a^%;v|8eP4r?$voDLZrzmre#kOgqC5R-Q50R)0Ixf0kL060_Rs-1W|!1|I}C z4&t_W!Y4SO%FFkqyK{MX&)xJ0m++3wDxbxfsK`ayDE@zsxx1>EqV2N>so!$xgqCx^ z{EI@OAYqvErU)opXY;SfR?QqX?{@JN2{(&2fwv{>kw5vQ_UbO07Z@9(X^6z%@zf1E zR8;E61%|5~!*sCnB!`Cx2ed*(Nc}b!Y0ZiLocYfXSherM!d8TGF0S~<$OW}NoaZHu zkJKU+NydE~)%}F=NdiY>Yx2Z<^D!Q8jbeY=gl-V>{4W6e!b|D@{~Q9aJsjO5M@Elm zd<2d715TO&a4U$Cad1zMiO{E$RzFXv*>2>YQ=T#*w}0FmQTM)Q?rF_6EwTPXMsq!x zpgi(nA7psi@2%t)aoijwIbJ5|*7^1DQJ z!1*6+)*$xJ_y08v0>MxmFXJ`ONa!le z_gLI28ptrtwe+C?;H?|v-U*ggp1gjApk7NM;AiO!GlCxnky>AeW!38ya?d6s{zWlI z*<%VvgBY|ab1ikI`r1b?@#nHfSMu~v(R{HPtt(rFN^fka9k{|%a2nD=)iuh;#)b`- z*Yq~=1=x4j2c^T|=a^X9J4fl6Wz#fTarZMY0US^D=1tDRp;=j@97iJml1?bV^O^s~ zE4fEryJddp)V-3q(wjw9{9+e0YHQk4jtMUEu!s+>(-TU&s^A;C!nKaXBt=6(`WYM{ z(j2?gIdL+9Y8LDC1W${%NRBHCe=&;uLXHQsgX5?YP}>A0OO0Vj>k50{yIPAaox|!v za$<9+H$0P8nzyO-Uvqu&*`Y)j8Of4-V1(nMI;7@i$&%f3gPuvaX|<0|<3nCE;#O`~ z#RpB_agAc=9v6j8wG(I_RsjaXSzB06aSbeHQSMU zB?tz{{2!fkvVg@Pahj~8>l~dURqdL>y>k?Cii);V>%Z??S)2HLUQOlskvc4w#{vw2 zQ5M{gk8|OAuyVv?TP_-FeoV*D2(GM3*xg`Oc-Cj*3hSKc{F~}w=#KXUVP$1ALdAa^ zn!m7ZnlZV~y*EufbADUL(1xk$?c6=r579kvEMGj~&d7;5q~|Z*TiW$^EB#>Yyo+so zI50YJ8nqW{-r7*B&hi3#mQ6i+ zxCB5f;`z5ZbECrkonrY+(mmC~uiuhOz9<#ryg3d>amI*DeRFkZUTo9PtTP#B?*Or& z&|CiF>pgy?Fw{gYby^bT93*b#2v~xMJ(VZt5Ba(%#a@rT(IV&b(#vm(&zK6ADl0@Nb_hTFX(vZG|gDNNTxsN+~@LTSe6^V&^n+2^Ec z^tObnX^fKgbqEnuMu67csKp(jcwZKUMU@Z9e+lwJ7QS zcvS$Se9!Bj-Jap`^SU9P1R-LcD!c$_n3gvsk|l+rBBvskn~!Z2rALn%`lWSgIgds? zg22~4w?}RcdyEALstDH22+7qJIpCS)ewjsaqgOgqPnToitGkYf{CHrZ#k~hIOUXIM z+gi@{JNJaZ+bi=%{VTMHB(Bdt9h2kVc5bJbzs7!pD&33$m9x~4x5u$^nE!gYgKY!18?yO94B^MkxvzmS1G zp-gpCqt{KHTb#r@GUm=qSGB6$+zPb{U9|k^zVzQy&fH?nahrlCJ|($tvwZy6aHe(3 zn2i;#Xki;?R`$ZQ2{guRq6L0IvjsP&ie(i$?5*N89`;GY#u8-H61yvr+#MP(32RAm z$fJte8E6TK+iARuMwB#ZyA8!^$qP1aI)jU$#ld=v0u3l1M>|6cj`ARKAXIB=l%- z3EH_8&(4Ab>jV^lxR<_wPw09bGEpC2xVU3D{G*1VZT8ljfh1v9t<_X0S5}*F{LYJ` z_Hh{nK2y0Q&WBrY*4vV3ke>W>IM{$LXmrSHQ1Lrn7|mvsM>L1#*BBYh*%ZL>P4VL1 zd8X@S67?&v++wh^oP>LCEv5jOzH|JIW(F91Z$`gU)w>kgc$LqlxjS0hnTIgbS$sbO F_#gh+m`MNt diff --git a/Source/BPBIOS/zcpr33t.rel b/Source/BPBIOS/zcpr33t.rel deleted file mode 100644 index 3a2fd0547116bd5f219d398efb48f208732b1835..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2304 zcmXw)dsGu=8phw5Op*!YGC{N;AQPgPZIB{hq_ma^H`j_Qt_noi7Bu955{nmDw`!P# z2ozE;C|HY@h;*$&s}YoVO4kWDQHn(rq=;*vTk003GNO(XTQJRZ_fLj`DWhV z^E?M@j@AKsfGqo#Uvi?qYW=wN>Bd3sky4&2U)atm+St#X26t1UpfDE{W-p1yjfZ0Gz@>bC+qspIS~ z|Duo>NE+w-UIdqJum{!VsppNG_qlnBr0Zo{z|Ru#Ac%a_ba^k$3yF`@v_#`?`shZT zYARz-iQ#h3IIUEj{RTD_LW~z}qm&y`_}aoxFO9pk7EJXoqyJ8NpA0C{1s}a+~!ExlfxB|E!#& z8Zbqop$yuVvz|KLaAo&1{E6(rr6T=fv{-CLZPjZ~>9tKwBbRszPD^HZTBGWrv1QZ6 zb%Sku0ru_HQR#T(Stg$L%UAj2+BL0K+%pL#fD;*hyqB-w(5`A!O(W5N$s!csGa0n` zQo+#|9$6qdd#_Zk^mmsUF8^hOKY)baadhQ zKH3`Y2b0n|^NuwASKI)6emD_9MzbVWPH@~*kJQ{QS+;Ls=%j?3+4SHPKIS_&Vf9XR zV(6S*S15)aa8uZ9OKGJ!6)&XY0aiCfj2B)@(vE5THhf|DVD3)?bIhsl2gN;V+=<+& zKrlcS|KOri1uO>1-m;3mvvj^xy>}M(-YLW-D%(kI{BCGw?(g>uKZApXdX^y1I6RO577( zxTMS5m}ifHuzPEnSg)Tl+ zPK}(x9l4h^EoNzV-?^+qs#WgfR_%(+8^7uoV|)L>k&u<@X|dPqo0`&ceZi4yPn$YY z0U#Ffg1TG7}zgrj&g7U#jM)Hny`_0 zeAd`3Tf9}rOu_FmXBb(N*Za+RpM`Xdcl$-<#mI<{G2H->mcT+2PBTXT7amf}J}1>v zHziz6Ym9WLM~I*@0<@l1Eq)*6pMMcT?meuLHzYjYK`IYbUmUbscU{yCyOQ-948MDX zr_aZH1=unYJS+S+vfC7l;C9zHf2q1=@!n7rZQgrIU5Y7&((pjJgK?|EHD}sxL4AN%(W5qDsNqp(+8+jQtS*`gs?{QrgrT4;OpbrkyOUxO`WH2=LW9$sA+_RF(Gu4fLA=C8;6SkD_l>NZWzVl^WpXQCH%)&AQUwPhK&pf zW$No1y>9m0(iGm&r=FZFb!VD~TbrgvUt9V3pmj3+^bOV=cPMz`k0p2QmOT#*r#rVj zwX?z%E$QOClD8yt28}bDXhC4;e8KhEVnyvPN2hq5w|dC1xdPd;%;8QZ_k|})B05r> z@|f~&20FqL3XQkXsERgizoC4S*v7_9ud*CEoUF$v(BPVJBti9kNjbF7=IaDULQg3x z(BAEMUM?hAXP^YcgYHir@6bXf~s~VmUOw(a2z~wqQ;`x-a+E zq;8N&)~~_}%E7^M66v?SoC0J{;q>pC8Da1P*~2dN;BsX1Wj>qco>*;f5yH%2@%;qg Ef9W)l>;M1& diff --git a/Source/Build.cmd b/Source/Build.cmd index d8ff3400..3881bebc 100644 --- a/Source/Build.cmd +++ b/Source/Build.cmd @@ -5,4 +5,5 @@ setlocal & call BuildDoc || exit /b 1 & endlocal setlocal & call BuildHardware || exit /b 1 & endlocal setlocal & call BuildImages || exit /b 1 & endlocal setlocal & call BuildShared || exit /b 1 & endlocal +setlocal & call BuildBP || exit /b 1 & endlocal setlocal & call BuildROM %* || exit /b 1 & endlocal \ No newline at end of file diff --git a/Source/BuildBP.cmd b/Source/BuildBP.cmd new file mode 100644 index 00000000..e6dfc646 --- /dev/null +++ b/Source/BuildBP.cmd @@ -0,0 +1,4 @@ +@echo off +setlocal + +setlocal & cd BPBIOS && call Build || exit /b 1 & endlocal \ No newline at end of file diff --git a/Tools/simh/Sim.cfg b/Tools/simh/Sim.cfg index 06ae10a0..2b86fdb4 100644 --- a/Tools/simh/Sim.cfg +++ b/Tools/simh/Sim.cfg @@ -23,8 +23,8 @@ attach n8vem0 %1 ; hard disks ;set hdsk debug=read;write;verbose -attach hdsk0 Output\hd0.img -attach hdsk1 Output\hd1.img +attach hdsk0 ..\..\Binary\hd0.img +attach hdsk1 ..\..\Binary\hd1.img set hdsk0 format=HDSK set hdsk1 format=HDSK set hdsk0 geom=T:520/N:256/S:512