Banked Zsystem Version 1.34 for the Intelligent Computer Designs Corporation XL-M180 S-100 Single Board Computer Documentation and latest revisions by Wells Brimhall Phoenix, Az. Z-Paradise (ZNODE #52) Sysop (602)996-8739 24hrs/day 300/1200/2400 bps .CW 24 USER'S GUIDE TABLE OF CONTENTS OVERVIEW..........................................PAGE 3 FEATURES..........................................PAGE 4 LIMITATIONS.......................................PAGE 5 FUTURE ENHANCEMENTS...............................PAGE 6 MINIMUM HARDWARE REQUIREMENTS.....................PAGE 6 SUPPORTED FLOPPY DISK FORMATS.....................PAGE 7 RAM DISK..........................................PAGE 8 IOBYTE............................................PAGE 9 GETTING STARTED...................................PAGE 9 ZCPR3.............................................PAGE 13 CUSTOMIZATION.....................................PAGE 16 NEW UTILITIES.....................................PAGE 16 MEMORY BANK OVERVIEW..............................PAGE 17 T-FUNCTION CALLS..................................PAGE 19 I/O PORT ADDRESSES................................PAGE 20 S-100 INTERRUPTS..................................PAGE 20 DISK ASSIGNMENTS..................................PAGE 21 IMP MODEM PROGRAM.................................PAGE 22 MOVE-IT OVERLAY...................................PAGE 22 DISCLAIMER........................................PAGE 22 .TC OVERVIEW..........................................PAGE # OVERVIEW This guide only covers the basic system specific aspects of Zsystem on the XL-M180. Users should also read the following documentation for a full description of the system. "ZCPR3 The Manual" by Richard Conn, "ZRDOS Programmer's Guide" by Dennis Wright and the new "Z-System Users Guide" by R. Jacobson & B. Morgen (All are available from Echelon Inc. at (415)948-3820.) I have been a Zsystem user for some time and purchased an XL-M180 over a year ago for use on my ZNODE bulletin board system. It is an impressive piece of hardware and I had hoped it would greatly extend the life of 8 bit S-100 systems. It's unfortunate that ICD's business management ability was not up to the same level as their hardware design ability. The writing was on the wall from the way they were handling their customers and it was not a great suprise when they finally closed up shop. As most of you already know, ICD designed the XL-M180 for use with Turbodos. It is a very impressive operating system but it's high price makes it difficult to justify for single user non commercial applications. I decided to write the Zsystem BIOS myself after waiting several months for ICD to do it with no results. (They shipped me over 10 versions of their Zsystem BIOS and not even 1 of them would boot up!) Some of the design goals of this implementation were to include several features of TurboDOS, keep the cost low and still be compatible with all the existing Zsystem utilities. It turned into bigger project than anticipated and has taken over a year to get this Banked version functional, but I feel it is now one of the most powerful 8 bit single user operating systems available. I'd like to give special thanks to Frank Gaude' and Dave McCord at Echelon. Their quick response in sending out disks & documentation has been most helpful. Please forward any questions, bug reports or suggestions to my Bulletin Board Number (602)996-8739. I'm quite dedicated to supporting the XL-M180 and Zsystem so give me a call! (I will also keep the latest versions on-line for downloading.) .TC FEATURES..........................................PAGE # FEATURES + The system is written in about a dozen relocatable modules that are assembled with Echelon ZAS 3.0 assembler and linked with LINK.COM from Digital Research. ZRDOS 1.9 must be in .REL format and links right in with the rest of the modules. The ZSETUP utility is now used to fully configure the system without reassembly. + The system is booted from a file named OSLOAD.COM instead of from reserved system tracks. This allows the system to be larger than the 1st 2 tracks, eliminates the need for SYSGEN programs and frees up the reserved tracks for files. + The CCP is stored in RAM so the boot disk is not necessary after the system is cold booted. This also speeds up the warm boots considerably. + The operating system is now split into 2 banks which gives a 58k tpa in bank 1. + The full ZCPR3 implementation is supported. It includes: Input Output Package, Resident Command Package (with new BANK command), Flow Command Package, and Named Directories. + Supports up to four floppy drives in any combination of 5.25" 48 tpi, 5.25" 96 tpi or 8". The drives can be single or double sided and single, double or high density. + Supports a 394k ram disk. + Supports 2 hard disk drives using the OMTI SCSI controller. The drives can be split split into partitions of up to 8meg which allows the total capacity of each drive to be 128meg. + There are several new utilities including ZSETUP.COM which allows you to configure the system, FMTF.COM which initializes & verifies over 14 of the most popular floppy disk formats and PARTH.COM which is used to partition a hard disk. All of these functions are now considerably easier to perform and no longer require reassembling the system. + A table driven scheme is used to support floppy disks with many different formats. To use a new format all you have to do is create a small Disk Specification Table and link it into the system. The system automatically checks each drive's disk format, locates the appropriate DST and creates the necessary CP/M compatible DPH & DPB tables. Additional parameters have now been added to each DST to support practically any diskette format including Kaypro 4 and AMPRO/Micromint SB-180. + Supports switching between low & high density on dual mode 5.25" 96 tpi IBM AT compatible floppy drives like the Teac FD55GFv-17. + A multitasking dispatcher is implemented and all the physical drivers support a multitasking environment. This allows specially coded external processes to run in the background without interfering with the DOS and should make it easier to upgrade to a future multi-tasking Zsystem. + The system is compatible with older S-100 main frames and I/O cards. (The HD64180 internal I/O register base has been relocated up to 80h so you won't have to reconfigure your old boards and software.) It's running right now on a 10 year old IMSAI system with it's original S-100 serial & parallel I/O boards! (Some of the IMSAI front panel functions need some additional hardware to implement, but Reset, Stop, Single Step and the address display LED's work fine.) + Selected Turbodos system calls are supported to give Turbodos compatible bank switching and SIO channel modem control. + A parallel printer driver is now included along with full CP/M physical/logical device reassignment through the IOBYTE at 0003h. + A logical/physical disk assignment table is implemented. This allows any physical drive to be reassigned as A: so it can take advantage of drive A's special access features like the ROOT: directory. Disk assignments are changed through the console with the ASSIGN.COM or ZSETUP.COM utility programs. + Overlays for the IMP.COM vers 2.44 & MOVE-IT.COM vers 3.0 modem/communication programs are included so you can use sio channel 1 for a modem or a serial link between another system. LIMITATIONS - The BIOS does not presently detect diskette format changes. You must perform a warm boot after changing to a diskette with a different formats. - There is no hard disk format utility but the ICD FORMATH.COM program will run under this version of the system. .TC FUTURE ENHANCEMENTS...............................PAGE # FUTURE ENHANCEMENTS + Automatic assignment of the boot drive to A: so the system can boot from any drive. + A disk write verify option that can be selectively enabled or disabled on any combination of the 16 logical drives. + Read 48 tpi disks in a 96 tpi drive. + An option to make Read Only System Files public to all user areas on a drive. + Table driven hard disk format utility for the OMTI SCSI controller. + A floppy DST installer utility that will allow you to add or remove floppy disk formats without reassembly. + Hard disk to tape backup utilities for the OMTI SCSI controller. ++ Any suggestions for additional future improvements will be appreciated. MINIMUM HARDWARE REQUIREMENTS Console Terminal The console should be a CRT terminal with 19.2k baud capability. The first time you boot up the system the TCSELECT utility will display a menu of terminals and allow you to select the one that you are using. From then on your selected terminal capability file will be loaded into the System Enviorment each time you cold boot. Main Frame The main frame must have a 6mhz or faster motherboard. Floppy Disk Drives The standard distribution disk is configured for the following floppy disk drives: A:= 5.25" 48 tpi flpy drv 0 C:= 5.25" 96 tpi flpy drv 2 B:= 5.25" 48 tpi flpy drv 1 D:= 8" flpy drv 3 If you want to boot up on the standard boot disk you will have to attach a 5.25" 48tpi DS/DD drive strapped as floppy 0. Any other type of drive will require a special order system distribution disk and possibly the new version boot rom. (Once the system is up the above assignments can be changed to meet your needs.) Here's a table of all the supported formats: .TC SUPPORTED FLOPPY DISK FORMATS.....................PAGE # SUPPORTED FLOPPY DISK FORMATS fmt size- sec sec/ Old New disk # Name tpi sides dens size trk ROM ROM Read Wrt Fmt cap. = ======== === ===== ==== ==== === === === ==== === === ==== 1 Tdos48-2 48 5"-2 dbl 1024 5 yes yes yes yes yes 400k 2 Tdos48-1 48 5"-1 dbl 1024 5 yes yes yes yes yes 200k 3 Kpro2 48 5"-1 dbl 512 10 no yes yes yes yes 193k 4 Kpro4 48 5"-2 dbl 512 10 no no yes yes yes 394k 5 Amp48-2 48 5"-2 dbl 512 10 no no yes yes yes 396k 6 Amp96-2 96 5"-2 dbl 1024 5 no no yes yes yes 797k 7 Kpro96 96 5"-2 dbl 512 10 no no yes yes yes 796k 8 Tdos96-2 96 5"-2 dbl 1024 5 no yes yes yes yes 800k 9 Tdos96-1 96 5"-1 dbl 1024 5 no yes yes yes yes 400k 10 IBM8-1 48 8"-1 sgl 128 26 yes yes yes yes yes 250k 11 ICM8-2 48 8"-2 dbl 512 16 no no yes yes yes 1m 12 Tdos8-2 48 8"-2 dbl 1024 8 yes yes yes yes yes 1.2m 13 Tdos8-1 48 8"-1 dbl 1024 8 yes yes yes yes yes 600k 14 TdosHD 96 5"-2 hi 1024 8 no no yes yes yes 1.2m 15 ICMHD 96 5"-2 hi 512 16 no no yes yes yes 1.2m (The BIOS supports all of the above formats, the old rom only restricts the formats that you can boot from. Tdos48-2 is the standard system boot disk format. It is also available in any of the other bootable formats on special order.) 1) Tdos48-2 is the standard format for distribution. It can be read with both boot rom versions and provides the maximum storage per 48 tpi floppy. It is recommended that you have at least one 48 tpi ds/dd drive installed on the system to support this format. 2) Tdos48-1 is supported for those that only have a single sided 48 tpi drive or want to use single sided diskettes. It is not recommended for normal use. 3) Kpro2 is provided for portability between other 8 bit systems and is the only non Turbodos 5.25" format that you can boot from. Both Kaypro formats have reserved system tracks so you can not use the entire disk for file storage like you can with the Tdos formats. 4) Kpro4 is used by several Kaypro machines including the 2 and 10. It is a double sided format and gives twice the capacity of the Kpro2 above. 5) AMP48-2 is used by AMPRO and Micromint in the SB-180. It is one of the more common formats for 8 bit machines. It does not have quite the same capacity as the Tdos formats because of it's reserved tracks. 6) AMP96-2 is also used by AMPRO and Micromint in the SB-180. It gives twice the capacity of the AMP48-2 above. 7) Kpro96 is used in Kaypros with the PRO-8 ROM. It is similar to the Kpro4 format with twice the tracks. 8) Tdos96-2 is the preferred format for local use due to its 800k storage capacity along with the convenience and price of 5.25" diskettes. 9) Tdos96-1 is supported for those that want to use single sided diskettes. It is not recommended for normal use. 10) IBM8-1 is the industry standard IBM 8" single sided, single density format. This should provide the maximum portability between systems. 11) ICM8-2 is used by Inter-Continental Microsystems. It is included for portability between systems and is not recommended for general use due to it's smaller sector size and reserved system tracks. 12) Tdos8-2 is the Highest capacity format supported. It also gives the best performance due to the 500k transfer rate of 8" drives. There is a tradeoff though when you consider the cost of these diskettes vers the Tdos96-2 format. 13) Tdos8-1 gives gives similar performance to the Tdos8-2 but only has half the storage capacity. It is not recommended unless you have a single sided drive or need to use single sided disks. 14) TdosHD is identical to the Tdos8-2 format but it is for use with 5" high density IBM AT compatible floppy drives like the Teac FD55GFv-17. 15) ICMHD id identical to the ICM8-2 format but it is for use with 5" high density IBM AT compatible floppy drives like the Teac FD55GFv-17. RAM DISK The system supports a ram disk as physical drive 5. It is initially configured to be logical drive E:, but can be reassigned with the ASSIGN.COM utility to be any logical drive. Every time the system is powered up the ram disk's directory will contain random data. You must run the following utility program to format the ram disk directory before it can be used: ERADIR E: ;format ram disk directory Remember that everything on the ram disk will be lost whenever the system is powered down. Make sure you copy anything you want to save onto a floppy before turning off the power!! The ram disk will greatly speed up disk intensive operations like assemblies, links and compiles. (The ram disk links this vers of the system 300% faster than my Kaypro 10!) .TC IOBYTE............................................PAGE # IOBYTE The standard Intel/CPM IOBYTE is now implemented at 0003h. It can be viewed and changed with the ZSETUP utility. GETTING STARTED Naturally you will have to install your board into a S-100 main frame. It is strongly recommended that you first check all power supply voltages on the buss to verify that they are within +/- 10% of the values below and remember to never install or remove the board with the power on! Here's a list of steps for the installation: 1) If you have one of the older 2mhz motherboards in your system you will have to replace it with a faster one. What appeared to be a DMA channel problem on my XL-M180 turned out to be my old 2mhz buss. Visyn (Compupro) makes a new 10mhz mother board that fit into my Imsai cabinet with minimal modifications. 2) Check for +8 volts on S-100 lines 1 and 51 ,+16 volts on line 2 and -16 volts on line 52. Lines 20, 50, 53, 70 and 100 are grounds. 3) If you have an older S-100 system like the IMSAI with a front panel then you will need to make the following modifications before installing the board: a) Cut the trace going to S-100 pin 20 on the front panel edge connector to disconnect the old UNPROTECT memory signal. The XL-M180 grounds this pin so it would place a 1k resistor across the power supply at all times and could possibly mess up some of the front panel functions. b) Cut the trace going to S-100 pin 68 of the XL-M180 edge connector. This is the MWRITE signal which should be generated by the front panel when it is in a system. c) The 14 pin data buss flat cable is not connected. Make sure the pins are insulated with tape so they won't short out on anything. 4) Insert the board into any slot of your S-100 mainframe. 5) Connect a 14 pin flat cable from J9 (on the far right) of the XL-M180 to a RS232 serial paddle card. 6) Plug your Console terminal into the 25 pin DB connector on the RS232 paddle card. The RS232 signals are on the following pins when the jumpers on j2 and j3 are in the B position: +--- Supported on ch0 (j9) | +- Supported on ch1 (j8) | | | | HD64180 RS232 | | signals DB25 pin = = ======= ========= x x GND <-> 1 GND << Pins 1 & 7 are tied together. x x /txd --> 2 txd << To reverse pin 2 with 3 move the x x /rxd <-- 3 rxd jumpers on J2 from B to A. x x /cts <-- 5 cts << Must be at + level to enable tx. x x /cts <-- 6 dsr << Pins 5 & 6 are tied together x x GND <-> 7 COM << Pins 1 & 7 are tied together x /rts --> 8 dcd << Should be an input instead of output. <-- 19 rts << No connection on XL-M180 x /dcd --> 20 dtr << To reverse pins 5 & 6 with 20 move jumpers on J3 from B to A. As you can see, there are some serious problems with the modem control signals. I am working on a cut & jump list for the RS232 paddle card to straighten out the signals along with a schematic. For now there appears no be no problem using it with a terminal. 7) Set your console to 19.2k baud, 8 data bits, 1 stop bit, no parity, and Full duplex. If your console doesn't support these values then you will have to order a special system boot disk that is configured to your specifications. 8) The system should be turned on before connecting the drives to verify that the console is functional. Turn on the AC power and press the reset button. If the Console Return key is pressed several times within the next 5 seconds the system monitor will sign on. If it doesn't go back and check your baud rates, voltages, and serial port connections. 9) Connect your floppy drive(s) to the system with the appropriate ribbon cables. There are usually numerous straping combinations for each drive. Make sure that you have the drive you are going to boot off strapped as DRIVE 0. It is probably easier to determine the best head load and led options by trial and error once the system is running, but you should make sure they are set to a valid combination before booting. I have the following straps installed on my TEAC fd55bv: DS0, U2, RE, RY This seems to work out pretty good. The motor and head load are both controlled by the motor signal from the XL-M180. A diskette must be in place, the door must be closed, the motor line must be asserted and the drive must be selected (the latter 2 are done by the BIOS) before the head will load and the LED will turn on. The head will stay loaded until the motor timer process in the BIOS turns the motor off. It is set to go off after appx. 15 seconds of no activity. Avoid using a head load strap combination that loads and unloads the head on each access. The LED will emit a slight glow when idle which indicates that the FDC chip is polling the drives. The standard system boot disk expects 5.25" 48 tpi drives to be strapped as drive 0 and 1, a 5.25" 96 tpi drive to be strapped as 2 and a 8" drive as 3. If you need a different configuration then you will have to order a special boot disk. (The initial configuration can be changed fairly easily once the system is up.) You can physically connect four 5.25" drives and four 8" drives to the system but the FDC chip has a limitation of addressing only 4 drives. 10) Turn the system on and insert the boot disk into drive 0. Make sure none of the other drives are closed with diskettes in them. Now close the boot drive and press the reset button. The motor will turn on, the head will load and the LED will light. You should also be able to hear the drive seeking to the right tracks. If everything is ok the system will signon within a few seconds then it will finish initializing the Zsystem packages and give the A0:Root> prompt. If you have any problems go back and double check your drive straps. There is also a BOOT command in the monitor. It may be helpful to determine where the problem is. 11) Once you get the system booted up immediately make a backup copy of your system boot disk! Here are a few suggestions if you only have 1 drive: Format the ram disk directory with the following command line. (This must be done each time the system is powered up.) ERADIR E: ;format ram disk directory Use this command line to copy the boot disk to the RAM disk. There will probably be a few files that won't fit since the Tdos48-2 format diskettes are about 20k larger than the RAM disk. (The remaining files can be copied one at a time after the mass transfer.) AC E:=A:*.* ;copy all files to E: with verify Now insert a blank disk into your drive and initialize it with the FMTF.COM utility. Make double sure that you don't initialize the distribution boot disk! This example assumes that you are using a 5.25" 48tpi drive as A: and that you are using the TD482 format. Look at FMTF.DOC for information on using FMTF with other drives and formats. E:FMTF A: TD482 ;format new diskette in drive A: Type a ^C to reboot. Then copy the files from the RAM disk back to your new diskette with this command line: E:AC A:=E:*.* ;copy all files to E: with verify 12) Two drives are strongly recommended! I have one 5.25" 48 tpi floppy, one 5.25" 96 tpi floppy, one 8" floppy and a 85meg hard disk on my system. This way I can read, write and format all of the diskette formats. (I considered attaching two 96 tpi drives and using them for 48 tpi diskettes as well, but there is a serious compatibility problem when you try to read a disk in a 48 tpi drive that was formatted and written on a 96 tpi drive.) To make a copy of a diskette I have to copy it to another drive then copy it back, but this seems like a small inconvenience compared to the price of 3 more floppy drives. 13) I just picked up a Teac FD55GFv-17 5.25" 96 tpi drive which I am very impressed with. It is an exact replacement for my old 800k FD55F 96 tpi drive but it will also support the IBM AT 1.2 meg high density 500k transfer rate diskettes. It has an extremely quiet stepper, looks identical to my FD55Bv-16 48 tpi drive from the front, and has the same strapping layout. The system can automatically detect the density of the diskette and adjust the drive accordingly. (In the high density mode you can also configure it to appear to be an 8" drive to the system.) At under $125 it looks like the days of the 8" floppies are over. 14) To use my old IMSAI SIO boards with the XL-M180 I had to cut the traces going to the old 2mhz ph2 clock line on their S-100 edge connectors which is now 6mhz (pin 24) and jump them over to the new IEEE 2mhz clock line (pin 49). This modification may be necessary on other old boards as well. 15) A serial printer can be connected to sio ch1. Connect a RS232 paddle board between J8 and your printer. Look at item 6 above for the pinout on the paddle card. The cts line must be at a positive level for the uart to output characters. It can be used for the printer busy hand shake signal. Taking it negative will stop output to the printer. The standard configuration of the system will send all LST: device output to sio ch1. ZCPR3 This implementation supports the following ZCPR3 packages and commands. Please refer to the ZCPR3 manual by Richard Conn for full information on each commands use. You can use the SHOW.COM utility program to view the commands that are supported and see where each package resides in memory. Command Processor Commands These commands are contained in the 2k ZCPR3 Console Command Processor (CCP). They are loaded into ram each time the system does a cold or warm boot and are available for use whenever the the Drive/User:> prompt is present. SAVE n file ;Saves n pages starting at 100h to file GET adr file ;Load a file into the tpa @ hex address JUMP adr ;jump to hex address & execute code in tpa Resident Command Package These commands are contained in the M180.RCP file. It is loaded into memory above the BIOS on cold boots by the LDR.COM utility program. Once loaded the following commands will be available. (Since these routines stay in memory, they provide very quick response.) H ;Display list of commands. CP dest=source ;Copy source file to dest file. ECHO string ;Echo string back to console. ERA file ;Erase file(s). NOTE string ;Treat string as a comment. P adr ;Peek at memory & display in hex & ascii. POKE adr val ;Poke hex or ascii values into memory. PROT file atrb ;Set/reset files R/O or SYS attributes. REN new=old ;Rename old file to new. WHL pwd ;Set/Reset Wheel byte (pwd='SYSTEM'). WHLQ ;Display Wheel status. The above are all standard commands as described in the ZCPR3 manual. The following new command was added to display the XL-M180 Memory Management Unit registers and optionally change the memory bank. BANK Display the current MMU register values. BANK n Set the tpa BANK number to n (0 or 1) and display the MMU registers. Flow Command Package These commands are contained in the M180.FCP file. It is loaded into memory above the BIOS with LDR.COM just like M180.RCP above. Once loaded the following additional commands will be available: IF op Set the flow state to the value of op. ELSE Toggle the flow state. FI Terminate the IF level. XIF Exit all pending IFs back to level 0. The following options can be used with the IF command: ER = True if error flag is set. EX afn = True if file exists. IN = True if T,Y, or are input at console. NU afn = True if afn is null. When the flow state is true console commands are processed as usual. If the flow state is set to false, console commands will be read but not executed. One of the best uses of this feature is selective execution of programs within ZEX batch command files. Input Output Package The IOP feature of Zsystem allows you to write custom drivers for your IO devices as a separate IOP segment. They can then be easily added to the system with the LDR.COM utility. (You may want to have several different IOP segments since they can be changed so easily.) Once the IOP segment is loaded, the DEVICE.COM utility is used to display and change the device IO assignments. You can also use the RECORD.COM utility to save CON: or LST: output to a disk file. A sample XL-M180 IOP is included along with source code. You can modify it to meet your needs. The IOP memory area is initialized to the specifications in the "ZCPR3 and IOPs" tutorial by Richard Conn. The jump vector located at BIOS+0 is also modified during cold boot to address an internal IOP vector table within the BIOS for the BIOS device drivers. This allows an IOP segment to locate the BIOS device routines through the old cold boot vector. STARTUP.COM Alias When the system is cold booted ZCPR3 loads the file STARTUP.COM and executes it. STARTUP.COM is an ALIAS program that executes the following command lines: LDR M180A.RCP,M180.NDR,M180.FCP,XLM11.IOP IF ~EXIST SYSTEM.Z3T;TCSELECT SYSTEM;FI LDR SYSTEM.Z3T;TPASIZE This finishes the initialization by allowing you to select your terminal and loading the 4 ZCPR3 packages into their places in memory above the BIOS. You can use one of the ALIAS utilities to modify STARTUP.COM so it will also execute other initialization programs necessary for your system. Zsystem Utilities The full system includes appx 80 Zsystem utility programs. Most of the utilities will display built in help info if you enter the following command line: Utility // ;Utility= Utility program name Most of the utilities must be installed before they can be used. All of the utilities included with the system were already installed for you by running the following command line. Z3INS M180 ZSYSTEM.INS Z3INS.COM and M180.ENV should be on the disk along with the programs being installed. When you add new utilities to this system you will have to install them like this: Z3INS M180 Utility.COM I recommend downloading the following Public Domain programs from your local ZNODE and renaming them for use as your DIR and TYPE commands. DIR.COM = SD115.COM TYPE.COM = TYPEL36.COM CUSTOMIZATION The ZSETUP.COM utility now performs full system customization. (It is no longer necessary to edit and reassemble the system to configure it.) ZSETUP gives you the option of configuring the OSLOAD.COM file or configuring the system presently in memory. ZSETUP uses the OSLOAD.SYM file to determine the patch addresses within the system so make sure it is in the current directory before ZSETUP is run. ZSETUP must be in bank 0 to work properly. It will abort if you try to run it from bank 1. ZSETUP is menu driven and is pretty self explanatory. The only way you can get into trouble is by not backing up your distribution disk. When ZS130.ZEX is run in the disk mode it will overwrite any existing OSLOAD.COM file that is on the disk. If any mistakes are made in configuring the system you won't be able to get it to boot again so make sure your original OSLOAD.COM is backed up!!! Summary of ZSETUP configuration parameters: 1) SIO port parameters 2) IOBYTE 3) Physical disk drive parameters 4) Logical/physical drive assignments 5) Floppy motor turn off time 6) Wait states 7) Signon message version If you have the ZBIOS disk you can modify the source files, reassemble them with ZAS 3.0 and then use this command line to generate your new system with ZEX.COM and LINK.COM from Digital Research Inc. ZEX ZOS193 ; Generate OSLOAD.COM by linking all the ; BIOS modules. NEW UTILITIES The following utilities are now part of the system package. FMTF.COM This is a table driven Multi-format floppy disk initialize/verify program. See FMTF.DOC for full instructions on it's use. PARTH.COM This is a table driven Hard disk partition utility. See PARTH.DOC for full instructions on it's use. ZEX.COM This is ZEX vers 3.1b which has been slightly modified to run in either bank0 or bank1. It does a BIOS version check and will only work with Zsystem vers 1.34 and up. Earlier versions of ZEX will not work with this banked Zsystem!.TC MEMORY BANK OVERVIEW..............................PAGE # MEMORY BANK OVERVIEW This BIOS now utilizes 2 memory banks for the Disk Operating System. The primary advantage of doing this is to provide the maximum possible TPA size for application programs. When the system cold boots BANK 1 is selected for the TPA. It is appx 58k in size. Several utilities will only operate from bank 0. You can easily change between banks with the following RCP command which is always resident in memory and can be executed whenever the ZOS command line prompt is present. BANK 0 ;select bank 0 for the TPA BANK 1 ;select bank 1 for the TPA To make the banked BIOS scheme work with the largest possible TPA it was necessary to place ZCPR3 at a non standard address and the size of the BDOS in bank is only 3 bytes. The only programs that I have found that this affects are the Z3LOC utility and ZEX. The system includes a modified ZEX, but instead of using Z3LOC you should refer to this address map: High Memory +----------- Unbanked Common Memory -----------+ | | | address range size disc. | | ------------- ------ ---------------- | | ffd0 - ffff 48 Z3 ext stack | | ff00 - ffcf 208 Z3 command buffer | | fe80 - feff 128 Z3 tcap | | fe00 - fe7f 128 Z3 Environment desc | | fdff 1 Z3 Wheel byte | | fdf4 - fdfe 11 Z3 External path | | fdd0 - fdf3 36 Z3 External FCB | | fd80 - fdcf 80 Z3 message buffer | | fd00 - fd7f 128 Z3 shell stack | | fc00 - fcff 256 Z3 Named directory | | fa00 - fbff 512 Z3 FCP | | f200 - f9ff 2048 Z3 RCP | | ec00 - f1ff 1536 Z3 IOP | | e800 - ec00 1024 bank manager | | e7fd - e7ff 3 Upper BDOS vector | | e000 - e7ff 2048 ZCPR3 | | | +----------------------------------------------+ +-- Bank 0 of Banked Mem. --+ +-- Bank 1 of Banked Mem. --+ | | | | | ae00 - dfff BIOS | | | | a000 ~ adff BDOS | | | | 8000 ~ 9fff DSA | | | | 0100 ~ 7fff Bank 0 TPA | | 0100 - dfff Bank 1 TPA | | 0000 - 00ff Page 0 | | 0000 - 00ff Page 0 | | | | | +---------------------------+ +---------------------------+ LOW MEMORY ( DSA = Dynamic Storage Area for disk tables, sector buffers & etc. ) ( Page 0 = CP/M page 0 vectors & buffers ) There is no fixed limit on the size of the BDOS or BIOS so long as their combined size fits into bank 0 and leaves reasonable room for the DSA and TPA. The common memory area is in physical bank 0. This phantoms out e000 to ffff in banks 1 through n. ZCPR3 is saved in bank 1 at e000 and DMA'ed back to bank 0 during warm boots. This allows application programs to overlay ZCPR3 just like the CP/M specifications to provide a 58k tpa which appears to be just about as large as possible for a full Zsystem implementation. Banks 2 thru 7 are reserved for Ram Disk use. They are accessed through DMA as physical memory so the above common memory area assignment does not use any of the space. .TC T-FUNCTION CALLS..................................PAGE # T-FUNCTION CALLS The following TurboDOS compatible T-function calls are supported by the system. They provide a convenient and portable way to access the interrupt driven SIO routines and the tpa bank select routines. To perform a T-function you must load the function number into the C register, load any necessary parameters and call 50h. (You should assume that all registers will be destroyed during the call.) NAME: COMST CALL WITH: c= 34 d= SIO channel number (0 or 1) a= 0 if input character is not available COMMENTS: Return the input status of the specified SIO channel. NAME: COMIN CALL WITH: c= 35 d= SIO channel number (0 or 1) RETURNS: a= input character COMMENTS: Input a character from the specified SIO channel. NAME: COMOUT CALL WITH: c= 36 d= SIO channel number (0 or 1) e= output character COMMENTS: Output a character to the specified SIO channel. NAME: SETBAUD CALL WITH: c= 37 d= SIO channel number (0 or 1) e= baud rate code 4= 150, 5= 300, 6= 600 7= 1200, 10= 2400, 12= 4800 14= 9600, 15= 19200, 0= 38400 COMMENTS: Sets baud rate of specified SIO channel. NAME: GETBAUD CALL WITH: c= 38 d= SIO channel number (0 or 1) RETURNS: a= baud rate code (bits 0-3) 4= 150, 5= 300, 6= 600 7= 1200, 10= 2400, 12= 4800 14= 9600, 15= 19200, 0= 38400 COMMENTS: Returns current baud rate of specified SIO channel. NAME: SETMDM CALL WITH: c= 39 d= SIO channel number (0 or 1) e= modem control byte bit 7 set to assert RTS COMMENTS: Set the state of the modem control signals for the specified SIO channel. NAME: GETMDM CALL WITH: c= 40 d= SIO channel number (0 or 1) RETURNS: a= modem status byte bit 7 set for CTS asserted bit 5 set for DCD true COMMENTS: Returns the current state of the modem control signals for the specified SIO channel. NAME: MEMBNK CALL WITH: c=43 e= -1 to interrogate the tpa bank e= 0 or 1 to set the tpa bank RETURNS: a= bank selected for the tpa. COMMENTS: Get or set the TPA memory bank. (The bank does not actually change until the next warm boot. Otherwise a program would hang up the system by switching itself out of memory.) I/O PORT ADDRESSES Look at the included HD64180.LIB and M180.LIB files if you need to know the address of any I/O ports on the board. Remember that the HD64180 I/O register base address is relocated to 80h in the loader module. This allows existing software and S-100 I/O boards to work without being re-addressed. S-100 INTERRUPTS A mode 2 interrupt vector table is based at BIOS + 100h for the 8 interrupt lines on the S-100 buss. Application programs can use the WBOOT jmp vector at 1h to locate and initialize the necessary interrupt vector. (I haven't had time to verify that the XL-M180 S-100 interrupt hardware is functional so good luck.) .TC DISK ASSIGNMENTS..................................PAGE # DISK ASSIGNMENTS The ASSIGN.COM utility program is used to change the logical/physical disk assignments from the console. The main reason in doing this is so any drive can be reassigned as A: to take advantage of drive A's special access features like the root: directory and auto login on warm boots. This feature is also useful for reassigning a hard disk or ram disk as the A: drive to take advantage of its higher speed performance for your most used drive. ASSIGN.COM will only execute from bank 0. If you attempt to run it from bank 1 an error message will be displayed and it will abort. Here are some examples of ASSIGN.COM command lines: BANK 0 ;Select bank 0 for the tpa ASSIGN // ;Display built in help info ASSIGN ;Display current drive assignments ASSIGN A:5 ;Assign phy drive 5 (ram disk) to A: ASSIGN A:6,B:1 ;Assign phy drive 6 (hard disk) to A: ;and phy drive 1 (floppy 0) to B: When the system is initially configured, each drive is assigned a unique physical drive number. The system will support up to 23 physical drives and comes with the following 15 physical drives (1-15) configured. They can be assigned to any of the 16 logical drives (A:-P:). Accessing the same drive by more than one Drive letter can cause loss of data due to the CP/M type disk allocation scheme that Zsystem uses. To insure that this does not happen, ASSIGN.COM will clear any duplicate physical assignments to 0 when a new assignment is made. You cannot assign the physical drive number presently assigned to A: to any other logical drive. This would clear the assignment for A: to 0 which will hang the system when it warm boots. If you attempt to do so ASSIGN.COM will display an error message and abort. To get around this you just assign A: to a different phy drive first, then the old physical drive can be reassigned to any logical drive. The initial logical/physical assignment is: A: = 1 (5.25" 48 tpi floppy drive with ds0 strapped) B: = 2 (5.25" 48 tpi floppy drive with ds1 strapped) C: = 3 (5.25" 96 tpi floppy drive with ds2 strapped) D: = 4 (8" floppy drive with ds3 strapped) E: = 5 (Ram disk) F: = 6 (hard disk 0 partition 0) G: = 7 (hard disk 0 partition 1) H: = 8 (hard disk 0 partition 2) I: = 9 (hard disk 0 partition 3) J: = 10 (hard disk 0 partition 4) K: = 11 (hard disk 0 partition 5) L: = 12 (hard disk 0 partition 6) M: = 13 (hard disk 0 partition 7) N: = 14 (hard disk 0 partition 8) O: = 15 (hard disk 0 partition 9) P: = 0 (unassigned drive) IMP MODEM PROGRAM The IMP244 modem program by Irv Hoff is now included with the system. It is called IMPXLM1.COM and has already been configured to use sio channel 1 on the XL-M180. You can used this IMP program to download the IMP244.LBR library file which is available on most Z-nodes around the country. It contains a detailed .DOC file and utilities to change phone numbers. The IMP program must be used with an RS232 "AT" command set modem connected to sio ch1 (J8) through a cable with pins 1 thru 8 and 20 wired pin for pin. You must set the straps on the RS232 paddle card with J3 to A and J4 to B. Pin 11 of the 1488 ic should be removed from it's socket on the paddle board, otherwise it will drive the Carrier Detect output line of your modem and possibly blow one of the 2 chips that would be driving each other. I have verified that this configuration of the IMP program will work with a US Robotics Courier modem. (If you don't have a modem yet I strongly recommend the Courier. Most RBBS systems use the Courier and it's priced less than most comparable units.) If you have a different brand of modem you may have to make some changes. (You must use ZAS.COM to reassemble the overlay source. M80 & L80 won't generate a .HEX file that will properly overlay the main IMP program.) MOVE-IT OVERLAY An overlay file named XLMOVIT1.HEX is included to configure the MOVE-IT.COM vers 3.0 computer/computer file transfer program by Woolf Software Systems for the XL-M180. A Zex command file is also included to perform the installation. The serial channel of the other computer must be connected to sio ch1 of the XL-M180. Look at item 6 under Getting Started a few pages back for the pinout on the channel 1 RS232 paddle card. The MOVE-IT program must be purchased from Woolf Software, but it is indispensable for transferring files between systems with incompatible disk formats. DISCLAIMER As usual we have to warn you that you must accept all the risks with this software. It has only had a few days of testing, but we felt you would rather get a version now that possibly has a few bugs over a version next month that has been fully tested. The effort that has gone into this will probably never be fully compensated financially, but it will be more than worth while if a few more people are able to see the power that is still available in 8 bit machines. I hope this version can get everyone going till the next release which will really show you what the HD64180 can do! .CW 24 USER'S GUIDE INDEX Command Processor Commands, 13 Memory Bank Overview, 17 Customization, 16 Minimum Hardware Requirements, 6 MOVE-IT Overlay, 22 Disclaimer, 22 Disk Assignments, 21 New Utilities, 16 Features, 4 Overview, 3 Flow Command Package, 14 Future Enhancements, 6 RAM DISK, 8 Resident Command Package, 13 Getting Started, 9 S-100 INTERRUPTS, 20 I/O Port Addresses, 20 STARTUP.COM Alias, 15 IMP Modem Program, 22 Supported Floppy Disk Formats, 7 Input Output Package, 14 IObyte, 9 T-Function Calls, 19 Limitations, 5 ZCPR3, 13 Zsystem Utilities, 15 Trademarks: Z-SYSTEM, ZCPR3, ZRDOS, Echelon Inc; TurboDOS, Software 2000; HD64180, Hitachi; CP/M, Digital Research Inc; M80, MicroSoft; MOVE-IT, Woolf Software Systems.