Scor­pio News

  

July–September 1987 – Volume 1. Issue 3.

Page 29 of 67

discrete trimming of the signon messages might help. These are usually output until a 0 is found.

If the BIOS source code is available, the modifications can be made tidier. The extra code could be added just before signon messages are printed, and the extra data could be placed after the jump to warmboot, but before the actual signon message.

The code listed is really ALL that is needed to implement Z3, but it is rather obscured in the Z3 installation instructions. It consists of about 45 bytes of Z80 code and about 75 bytes of data, which could be trimmed by some 20 bytes if desired by removal of the Z3 welcome message that is included in the startup command string. You can be more elaborate if you wish, but there is no need.

Note that if segments are loaded to memory from disk files by LDR.COM, the SYS.ENV segment MUST be loaded first if it is not already present, since LDR.COM then refers to it to find out where to load the other segments.

Installation without BIOS modifications.

If the Z3 segments and buffers are loaded from the system tracks of a Winchester or Floppy, all that is needed in the cold boot is to set the Wheel byte, and path unless they are also defined in the system track area, for example in the spare space in the TCAP.

In the case where insufficient system track space is available, and BIOS modifications are to be avoided, there seems to be a possible solution. During implementation of Z3 on a friend’s Alphatronic PC, I had booted a system that loaded the segments and initialized the buffers, and Z3 was running. A little later I booted, by mistake, a disk that did not have LDR.COM or any of the SYS segment files on it, but did have a Z3 CCP in the system on the system tracks. When this disk booted, I got the error message:

‘LDR SYS.ENV,SYS.NDR,SYS,RCP?’

since these files could not be found or loaded. When Z3 commands were given however, they all worked correctly, since all necessary data was in RAM already from the previous BOOT. So, provided they have not been corrupted, it is sufficient to get the Z3 segments, etc, into RAM only once, on the initial Cold boot. They do NOT need to be reloaded unless they are later corrupted for some reason. This suggests that the problem can be solved as follows.

A CP/M system is created that has the CCP, BDOS and BIOS at the same addresses as the Z3 system, but with a CCPZ or ZCPR Vers. 1 CCP. This can be booted, and will it will not use RAM in the area to be used by Z3 segments and buffers. The ‘GET’ command of this CCP then can be used to load a complete Z3 composite ‘SEGMENT.BIT’ file from the disk to the Z3 RAM area. (This could be made an auto run command.) Once this file has been loaded, a disk with a Z3 CCP in the system track can be booted, and it will find everything ready in RAM when it starts up. Alternative ways of loading the ‘SEGNEMT.BIT’ might also be devised, such as loading and relocating from the Z3 boot disk itself. The method described above is probably the simplest though. The ‘SEGMENT.BIT’ file can be made up in a similar way to that used to build up the Z3 part of a complete Winchester based system, as will now be described.

Generating a ZCPR3 System for Direct Booting.

Fig. 1 shows in diagrammatic form a typical Z3 system supporting all features except redirected I/O. The addresses on the left hand side are those that the various parts would start at when the system is in RAM. Those on the right are referenced to a system ‘image’ file, that is to be written to the system tracks of a Winchester, and will subsequently load to RAM. Note that these addresses and those given below represent only one of many possible configurations of CP/M and Z3.

Page 29 of 67