16KB GEOS 64 2.1e Kernal .crt image for EPROM / EasyFlash

GEOS 64 2.1e Kernal 16KB ROM Image

This new version of GEOS kernal is bootable from EPROM.

Click here to download: http://cbm.ficicilar.name.tr/p...-rom-image

It features:

  • - GEOS boot in 13 seconds (power-up to first appearance of the mouse pointer).
    - SD2IEC support to mount D64 image on boot.
    - Faster graph routines.
    - EasyFlash support.
    - REU support (Upcoming version will support GEORAM).
    - 2MHz support for C128 in C64 mode.
    - And, numerous little tweaks to make it even faster.

Performance Video

Its performance can be watched on YouTube: https://youtu.be/CkcTa5VgADM

Archive Contents

The GEOS 2.1e kernal eprom comes in four flavors in a .zip archive.

The geos64-21e.zip archive includes these files:


Desired .CRT file needs to be burned into the 27C128 EPROM (or EasyFlash).

As the names of CRT files suggest, each .crt image supports a specific setup:

  • geos21e-4108.crt - for 1541 drive with device no 8
    geos21e-4109.crt - for 1541 drive with device no 9
    geos21e-7108.crt - for 1571 drive with device no 8
    geos21e-7109.crt - for 1571 drive with device no 9

Supported Hardware

In addition to real drive hardware, these EPROMs support SD2IEC.

On boot, selected eprom tries to mount either GEOS64.D64 or GEOS64.D71 image, which can be found in the geos64-21e.rar archive file.

Appropriate D64 or D71 image should be transferred to a real 5.25" floppy diskette or copied to the root directory of a SD card. As an alternative, other GEOS diskettes can be used as well. However, EasyFlash conflicts with GEOS Configure, that's why the included D64 and D71 files contain GEOS Configure_r version instead.

For EasyFlash users, it writes a small code to EasyFlash's RAM to reboot GEOS with a simple SYS from BASIC. That is, the SYS 57100 command reboots GEOS.

GEOS64.D64 and GEOS64.D71 Contents

The sample D64 and D71 images, given with this geos64-21e.zip archive, contain the following:

  • Desk Top 2.0
    Joystick input driver
    Note Pad
    Calendar 2016
    Convert 2.5
    Preference Mgr
    Pad Color Mgr
    MPS-803 printer driver
    Comm 1351(a) input driver
    Neos Mouse input driver
    CONFIG-r.cvt / Configure_r

Known Problems

. The Configure 2.0/2.1 utility changes the value of memory configuration register $01, and makes the GEOS code at $8000-9FFF unreachable (it switches ON this EPROM), causing a crash. This means, instead of Configure 2.0 or 2.1, the Configure_r (provided with the archive) should be used. So, there is a REU support but we can't configure it, without rewriting the Configure utility or permanently switching off the EPROM.

. Another systematic problem: EasyFlash and REU use the same I/O space. That is, EasyFlash uses $DF00-DFFF as RAM, and, REU has its registers at $DF00-DF0A. Therefore, it's not possible to use EasyFlash and REU at the same time unless one of them uses another I/O area.

. Although this GEOS64 2.1e version of kernal switches off EasyFlash ROM image at $8000-BFFF, it can't switch off real EPROM unless the GEOS Cartridge contains an additional logic to switch off following a write at $DFXX. That is, one can't go to C64's BASIC from GEOS without switching off the EPROM first.

GEOS Tips (Excerpts from the GEOS Tips & Tricks Book)

Tip 0: Use Shortcuts for Speed

C= + I: Change input method (Mouse, Joystick, Lightpen, etc.)
C= + C: Close disk
C= + O: Open disk
C= + A: Switch to Drive A
C= + B: Switch to Drive B
1....9: Switch to Page #

Tip 4: Selecting different names for the diskettes

Give all of your diskettes different names. GEOS recognizes disks by the names and can get confused if you try to copy something between two disks with the same name. Suddenly icons disappear from the border or GEOS will stop the copy process.

Tip 6: Always click OPEN after changing disks

Don't forget to select open after changing disks. In the least harmful situation the deskTop will ask the disk which you just removed. More unpleasant things can happen, however.

Tip 8: VALIDATE and SCRATCH from GEOS only

Never use the commands scratch and validate from BASIC on GEOS diskettes. If this happens accidentally, do not store anything more on this disk before you have executed a validate on it from GEOS. The GEOS command naturally recognizes the additional used sectors and allocates them in the BAM (Block Allocation Map), protecting them from being overwritten.

Tip 11: Never turn the disk drive off

Never turn the disk drive off while working with GEOS. (There is only one exception: When you want to connect a second drive, you will be explicitly told to turn it off). GEOS puts part of the Speeder (disk drive accelerator) in the memory of the disk drive. When you turn the drive off, this Speeder will be lost. This will not just cause all subsequent disk operations to run slowly, it will simply cause GEOS to display an error message at the next disk access and you will no longer be able to access the disk! If you try to add a drive the GEOS system will crash.

Tip 16: Putting icons on another page

To move an icon to a given page (such as the first), it must be placed on the border. Then select the desired page and move the icon somewhere on this page. If there is space there, GEOS will put it there. It is not possible to double-click the icon, then select the desired page and move it. When you start paging the icon will automatically be put back in its old place, and you won't have accomplished anything.

Tip 17: Put system files on the last pages

The best thing to do is to put the FONTS, INPUT DRIVERS, PRINTERS, NOTES, and PREFERENCES on the last pages so that these files cannot be accessed directly. This way you can't double-click notes to load the notepad, for instance. The programs which require these system files are also found on the last pages.

Tip 19: Date and time help with your work

Use the ability to store the date, time, and comments with each file. The first two pieces of information are stored with each file by GEOS itself. Set the time and date using the preference mgr when you start working with GEOS. You can then display the latest version of your graphic picture by selecting by date under view. The last-created file will always be on top.

Tip 25: GEOS convert has no risks

If you want to use a disk with GEOS which was not created (formatted) by GEOS, GEOS will ask if you want to convert the disk to GEOS FORMAT. You may have been annoyed at this point because you were afraid you might lose some data. (FORMAT sounds rather dangerous), while on the other hand you can't copy files from a non-GEOS FORMAT disk. GEOS identifies its disk by attempting to place an icon on the border of a disk, since this is possible only on a GEOS disk.
You can let your disks be converted to GEOS FORMAT without worrying. GEOS requires an extra sector in which to place information for the border. Normally track 19, sector 8 is used for this, but if this is used, GEOS will look for a free sector. This way no data will be lost. You should not use this procedure on program disks which you have purchased. These diskettes often have copy-protection, which can be destroyed by using GEOS.

Tip 29: Paging with the keyboard

You can save some work and time if you don't use the joystick to page through the various directory pages. You can just press the corresponding number instead. Using the keyboard often simplifies certain processes, even if a user interface with a "mouse" is a good idea.

Tip 47: Right margin at 5 saves time and makes text easier to read

The left and right margins in geoWrite are not placed very well, in our opinion. You can write quickly and easily if you set the right margin to "5" at the beginning of your work. To do this, move the arrow to the right as far as possible. At the right edge next to the "7" you will find a strange symbol — the marker for the right margin. If you click on it you will get a moving "M" which you can simply move to the "5" and let go of the mouse button. Now GEOS doesn't have to switch between the left and right halves of the page and the screen does not have to be redrawn every time.

Tip X: Never remove a disk from the disk drive without first closing the disk

Never remove a disk from the disk drive while on the deskTop, or while you are using an application, without first closing the disk (unless you are specifically asked to do so by a dialog box).

Recommended Books

  • . "GEOS Tricks & Tips" by M. Kerkloh and R. Tornsdorf
    . "How to Get the Most out of GEOS" by Jr. Jim Oldfield and Tim Sickbert
    . "GEOS Version 2.0 Manual" by Berkeley Softworks
    . "Geos Inside and Out" by M. Tornsdorf

(You can find them at http://www.bombjack.org/commod...UAGES_-_OS )

Recommended Links

Recommended Videos

Technical Info

The GEOS 2.0 Source at https://github.com/ytmytm/c64-GEOS2000 was modified for this GEOS 2.1e kernal. The compiled image was restructured and part of it was exomized.

The resulting memory maps of the EPROM and Kernal as follows:

EPROM Memory Map:

8000-8008: Boot vectors and signature
8009-80C5: First relocator
80C6-B7FF: Exomizer code
B800-BFFF: 9000-97ff - GEOS code Part 1

Decrunched code:

B5B0-B63F: Second relocator
B640-B7EF: 5000-51AF - GEOS booter
B7F0-B83F: 51B0-51FF - D64/D71 mount
B840-BF3F: 9800-9EFF - GEOS code Part 2
BF40-FFF8: BF40-FFF8 - GEOS code Part 3

Exomizer was used with these parameters:

exomizer sfx "\$b5b0" -n -c -o outputfile inputfile

First relocator code changes part of the exomizer decruncher for desired memory configuration.


Appendix 1: C64 Memory Configurations

Value of     A000-BFFF   E000-FFFF   D000-DFFF
Location 1   Basic ROM   Kernal ROM  I/O Area
----------   ---------   ----------  ---------
   $30       ram         ram         ram
   $31       ram         ram         Char ROM
   $32       ram         ROM         Char ROM
   $33       ROM         ROM         Char ROM
   $34       ram         ram         ram
   $35       ram         ram         I/O
   $36       ram         ROM         I/O
   $37       ROM         ROM         I/O

Appendix 2: D64 mounting code for SD2IEC

 LDA #$0D
 LDX #<geos64d64
 LDY #>geos64d64
 LDA #$01
 LDX #drive
 LDY #$0F
 !text "CD:GEOS64.D64"

Appendix 3: EasyBoot code for EasyFlash

 LDX #$0E
 LDA easyboot,X
 BPL easyloop
 LDA #$01
 STA $DE00
 LDA #$07
 STA $DE02
 JMP $8009

Appendix 4: RAM Expansion I/O Conflict Table


Addr.       REU    GeoRAM EasyFlash  +60K  RamCart64 RamCart128
D100        -      -      -          Bsel  -         -
DE00        -      RAM    Bsel       -     Psel      Psel
DE01        -      RAM    -          -     Mrr       Bsel
DE02        -      RAM    Cfg        -     -         -
DE03-DFFF   -      RAM    -          -     -         -
DF00        St.    -      RAM        -     RAM       RAM
DF01        Cmd.   -      RAM        -     RAM       RAM
DF02        Cbs<   -      RAM        -     RAM       RAM
DF03        Cbs>   -      RAM        -     RAM       RAM
DF04        Rbs<   -      RAM        -     RAM       RAM
DF05        Rbs_   -      RAM        -     RAM       RAM
DF06        Rbs>   -      RAM        -     RAM       RAM
DF07        Tr<    -      RAM        -     RAM       RAM
DF08        Tr>    -      RAM        -     RAM       RAM
DF09        Int    -      RAM        -     RAM       RAM
DF0A        AdrC   -      RAM        -     RAM       RAM
DF0B-DFFD   -      -      RAM        -     RAM       RAM
DFFE        -      Psel   RAM        -     RAM       RAM
DFFF        -      Bsel   RAM        -     RAM       RAM


St.   : Status
Cmd.   : Command
Cbs<   : C64 base addr. low
Cbs>   : C64 base addr. hi
Rbs<   : REU base addr. low
Rbs_   : REU base addr. mid
Rbs>   : REU base addr. hi
Tr<   : Transfer length low
Tr>   : Transfer length hi
Int   : Interrupt mask
AdrC   : Address control
Psel   : Page select
Bsel   : Bank select
Cfg   : Config. register
Mrr   : Mirroring reg.

According to this table, EasyFlash can only be recommended with the +60K RAM Expansion.
REU or GeoRAM should only be used with a real 16K EPROM.

Time to time, some eBay sellers offer universal EPROM cartridges. You can buy them by asking seller to burn the specific GEOS64 2.1e .CRT image you want.

Note: 1764/1750 Ram Expansion Units have a place to put an EPROM.

This version of GEOS64 2.1e EPROM image only supports REU.
(Upcoming version 2.1r will support GeoRAM)
Please contact me, if you desire support for other RAM Expansions.


June 6, 2016
Ilker Ficicilar
i l k e r f (the magic char) g e o c i t i e s D O T c o m


Ilker Ficicilar