This project patches the original "The Servant V4.84" ROM with new functionality, aimed for users with SD2IEC 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
HELP
key to start the menu. - SD2IEC folders and disk images 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.
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.MOD
file from RAMSHIFT
++
to reset prefs to defaults
Option '4' (file browser) will now recognize DIR
filetype as a directory that you can enter.
- use
RETURN
to 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):
XI0
to list disk images only asPRG
files (not recommended)XI1
to list disk images only asDIR
files (recommended)XI2
to list disk images asDIR
files and again asPRG
filesXW
to 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
RETURN
to initialize C64 mode in bank 1 - use option 9 then press
C=
+RETURN
to 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
+9
then pressRETURN
to 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
+9
then pressC=
+RETURN
to 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
+9
then pressRETURN
to 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
+RETURN
recall last commandUI
warm resetUJ
cold reset#<number>
change (or swap if it already exists on the bus) device number to<number>
; for exampleCTRL
+@
followed by#9
makes drives 9 and 11 swap their device numbers
For 1571
U0>M0
enter 1541 modeU0>M1
enter 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>V0
turn off write verifyU0>V1
turn 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
make
or simply
java -jar <path-to-KickAss>/KickAss.jar servantpatch.asm
Flash the result onto a 32K EEPROM, put into U36 socket and try it out.