80-Bus News

  

September–October 1984 · Volume 3 · Issue 5

Page 28 of 47

Since you have to type in the code of CRC.COM, the first thing you should then do is type the command:–

CRC CRC.COM

which should give the answer B2 07, proving both that it works and that you haven’t made any mistakes.

Perhaps when I tell you that hundreds of disks full of free software like this are available from the CP/M user group, and that it produces an interesting journal several times a year, you will send a cheque for £7.50 for your individual annual subscription to:–

CP/M Users Group (UK)
__ ____ ____
Hawley
Dartford
Kent ___ ___

This is also the address of Derek Fordred, the software librarian, who can give you information about the amazing service which he offers.

The object code for CRCK V5.0 is given elsewhere.

Lost Characters In CP/M

By Richard Beal

One of the advantages of having a buffered keyboard like that provided by the Gemini GM812 and GM832 video boards is that you can key ahead. However when using CP/M these characters can sometimes get lost. There are several reasons for this. One is that some programs check the keyboard and “gobble” any characters they find. Some programs, like MBASIC and Wordstar can gobble one character while they are starting up, and then it can reappear when the program is exited. But the most common problem and the one which is most annoying is that one character gets lost when a warm boot occurs, for example at the end of a PIP command. This is because the one character workspace in the BDOS is overwritten during a warm boot, and its contents are lost.

This article describes how to cure the problem of characters getting lost during a warm boot. I have used this patch for a long time, and have found it a useful improvement. It is very dangerous to make any alteration to the BDOS, since this leads to a non standard system, but this small change is harmless. I do not recommend any other changes to the BDOS. The SYS BIOS has implemented this alteration by patching the BDOS after each warm boot, but this article shows how to make the same change to the standard Gemini versions of CP/M, including the excellent new version called BIOS 3.

The solution is to move the location of the one byte workspace out of the BDOS into a spare location in the BIOS, by altering all references in the BDOS to this location. The location in the BIOS must be zero initially, otherwise a spurious character will appear on the screen after a cold boot. The method of installing the patch is to change the CP/M system which is generated by running either MOVCPM in the case of older versions of the BIOS, or GENSYS in the case of BIOS 3.

Having generated the system, use your debugging program to load the CP/M image, and examine location 13FC. This will contain 0E. (If it doesn’t – STOP!) Change this to 8D. Now examine the next location, 13FD. Take the value in this byte, add 0B to it, and replace it. Now repeat the above for 1424-1425 and 1443-1444. Then SAVE the CP/M image to disk and use SYSGEN to write it to the system tracks. Use CONFIG as usual. This will place the workspace in the 32 byte patch area provided in the Gemini BIOS. No other changes are needed.

Page 28 of 47