This project patches the original "The Servant V4.84" ROM with new functionality, aimed for users with SD2IEC / Ultimate II+ devices and owners of C128s expanded to 256K RAM.
To make it distinct from the original "The Servant" release I changed the version number to 4.85.
Download servant.bin or the archive from Releases, flash to a 32K EEPROM and plug into U36 socket.
Use XI1 command on your SD2IEC to list disk images as folders and just use directory browser (menu option 4) with RETURN and / to go through folders and disk images.
- The patched version of The Servant uses
HELPkey to start the menu. - SD2IEC folders and disk images can be entered/exited from the directory browser
- Ultimate II+ SoftIEC folders can be entered/exited from the directory browser
- RAM bank 3 can be used as 64K Quick Brown Box (QBB) (256K C128 only)
- RAM bank 2 can be used as an additional C64 mode area (256K C128 only)
The patched version of The Servant uses HELP key to start the menu. This can be changed if you reassemble the patch yourself.
If you want to copy settings (colors, function key assignments) from your current Servant ROM then replace first $0123 bytes in provided servant.bin by data copied from your ROM.
Read below how to patch the whole ROM instead.
New features needed some extra space. Because of that two functions were disabled:
CTRL++to save configuredSERVANT.MODfile from RAMSHIFT++to reset prefs to defaults
Option '4' (file browser) will now recognize DIR filetype as a directory that you can enter.
- use
RETURNto enter a folder; equivalent toCD:<name>DOS command - use
/to go up one level; equivalent toCD:<leftarrow>DOS command
To enter disk images (d64, d71, d81) SD2IEC must be configured first to list them as DIR files.
Use one of these DOS commands from Servant (@ key):
XI0to list disk images only asPRGfiles (not recommended)XI1to list disk images only asDIRfiles (recommended)XI2to list disk images asDIRfiles and again asPRGfilesXWto save this setting to EEPROM
The original functionality of entering/exiting 1581 partitions (CBM filetype) still works.
If your C128 has 256K of memory (4 banks) you can use QBB functions of The Servant to store some files in bank 3 instead of QBB. This will be lost after you power off the computer but it may be handy to load often used programs quickly.
Follow the original manual for explanations about QBB integration. There is no more QBB code, but the functions are exactly the same.
After powerup press ^ key to format bank 3 RAM as QBB area. Servant will ask for number of (16K) banks - answer '4'.
New options will appear on the bottom of the main menu. The manual explains them but I found F3 to copy some files from disk to QBB area a bit confusing.
After selecting F3 you will see the file browser (the same as after choosing option '4' from main menu).
Here you need to select one file and use one of the function keys to choose how it should be executed when loaded from QBB.
For example F7 means that this file will run in C64 mode. You can load as many files as you need and then use ESC key to go back to main menu.
Now there will be even more information on the screen - a list of files within QBB that you can choose to load and execute via letter keys.
The original manual explains how option '9' (GO 64) differs from GO64 command from BASIC.
The stock GO64 command runs C64 mode in RAM bank 0.
The Servant will run C64 mode in RAM bank 1 so that most of it will stay intact after reset.
There is more: if you hit SHIFT+9 from the main menu The Servant will enter C64 mode in bank 1 through warm reset and the BASIC program will be still there.
If your C128 has 256K of memory (4 banks) you can have two different such C64 enviroments.
Right after pressing 9 (or SHIFT+9) the Servant will ask to press RETURN for confirmation.
If you press RETURN here then the computer will enter C64 mode using bank 1 as C64 RAM, just like the manual explains.
If you press C=+RETURN instead then bank 2 will be used.
Here is an example of a workflow after C128 powerup:
- use option 9 then press
RETURNto initialize C64 mode in bank 1 - use option 9 then press
C=+RETURNto initialize C64 mode in bank 2 - write some BASIC code, it will stay in bank 2
- reset machine, go back to C128 mode and Servant menu
- use option
SHIFT+9then pressRETURNto warm restart C64 in bank 1 - write some different basic program, it will stay in bank 1
- reset machine, go back to C128 mode and Servant menu
- use option
SHIFT+9then pressC=+RETURNto warm restart C64 in bank 2 - your first BASIC program is still there!
- reset machine, go back to C128 mode and Servant menu
- use option
SHIFT+9then pressRETURNto warm restart C64 in bank 1 - your second BASIC program is still there!
Note that switching to RAM bank 2 works only for option '9' confirmed with C=+RETURN. Functions like Run 64 and Load"*",64 will still use bank 1.
Here is a short list of original features of The Servant that are easily overlooked in the manual:
Boot/Run/Run64/directory/DOS command (@) options will use device 8 by default.
You can choose a different device by holding a modifier key before choosing the option:
- device 9:
SHIFT - device 10:
C= - device 11:
CTRL - device 12:
ALT
SHIFT+RETURNrecall last commandUIwarm resetUJcold reset#<number>change (or swap if it already exists on the bus) device number to<number>; for exampleCTRL+@followed by#9makes drives 9 and 11 swap their device numbers
For 1571
U0>M0enter 1541 modeU0>M1enter 1571 modeU0>H0(in 1541 mode only) select head 0 (default)U0>H1(in 1541 mode only) select head 1 (this is not like flipping the disk, it spins the wrong way)U0>V0turn off write verifyU0>V1turn on write verify
For 1581
/0:<name>change to<name>partition/go back to root folder
For SD2IEC
CD<name>change to<name>folder or enter disk imageCD<leftarrow>go to parent folder or exit disk image
(Note: if you want to try it out now just download the servant.bin file from repository or releases on the right)
You need KickAss to assemble this code.
There is only one file here: servantpatch.asm. It reads servant.mod ROM dump as an input, applies patches and saves the result as servant.bin.
You can provide your own ROM dump here. Just rename it to servant.mod or change that name in the servantpatch.asm.
On the top of the servantpatch.asm you can configure the colors for 40- and 80-column screen and the key used to recall Servant. Disable that patch if you use your own ROM dump.
Assemble the file to get patched ROM as a result. Just type
makeor simply
java -jar <path-to-KickAss>/KickAss.jar servantpatch.asmFlash the result onto a 32K EEPROM, put into U36 socket and try it out.
