GEOS 64 2.1e Kernal

June 6, 2016
Ankara/Turkey

by Ilker Ficicilar
http://cbm.ficicilar.name.tr/


This new version of GEOS kernal is bootable from EPROM.

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 six flavors in a .rar archive.

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

_BENIOKU-ISO_8859_9.TXT
_README.TXT
geos21e-4108.crt
geos21e-4109.crt
geos21e-7108.crt
geos21e-7109.crt
geos21e-8108.crt
geos21e-8109.crt
GEOS64.D64
GEOS64.D71
GEOS64.D81
GEOS64-2.1e-Manual_EN.odt
GEOS64-2.1e-Manual_TR.odt

 
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
geos21e-8108.crt - for 1581 drive with device no 8
geos21e-8109.crt - for 1581 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, GEOS64.D71 or 
GEOS64.D81 image, which can be found in the geos64-21e.rar archive file.

Appropriate D64, D71 or D81 image should be transferred to a real 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, D71 and D81 files contain GEOS 
Configure_r and Configure_2.1e 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, GEOS64.D71 and GEOS64.D81 Contents

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

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

GEOS64.D81 additionally includes Configure 2.1e and uIecSwitch utility.


Known Problems

. Original Configure 2.0/2.1 utility detects EasyFlash as REU and crashes
the system. This means, instead of Configure 2.0 or 2.1, the Configure_r 
or Configure 2.1e (provided with the archive) should be used.

. 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.


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 or use a DS3231 RTC module on the user-port and save rtcgeosload into
your boot disk for automatic date and time setting. 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/commodore/books.htm#LANGUAGES_-_OS )


Recommended Links

. "GEOS Wiki" - https://www.c64-wiki.com/index.php/GEOS
. "GEOS FAQ" - http://www.zimmers.net/geos/GEOSFAQ.html
. "GEOS for the C64" - http://lyonlabs.org/commodore/onrequest/geos.html
. "GEOS CD" - http://www.lyonlabs.org/commodore/onrequest/geos/geoSpecific/
. "GEOS 64 2.0 Source Code" - https://github.com/ytmytm/c64-GEOS2000
. "GEOS 128 2.0 Source Code" - https://github.com/ytmytm/c64-GEOS128


Recommended Videos

. "GEOS 64 2.1e ROM Boots from EasyFlash" - https://youtu.be/CkcTa5VgADM
. "Booting GEOS in 10 Seconds" - https://youtu.be/EZLgPM4m_Zw
. "IRQhack64 Turbo (GEOS Boot in 4 Seconds)" - https://youtu.be/Lv3V5gn9QSA
. "Some GEOS Games" - https://youtu.be/5OT3DoPty4Y
. "PC vs C64 - GEOS DeskTop" - https://youtu.be/oh5Uql2sNa4
. "Commodore 64 Online with GEOS and GeoLink" - https://youtu.be/B-El9AbyR0w
. "GEOS + GeoTerm Dialing/Telnetting to a BBS" - https://youtu.be/Qw-wdKtCaP0


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/D81 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.


Appendices

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

drive=$08
 LDA #$0D
 LDX #<geos64d64
 LDY #>geos64d64
 JSR $FFBD ; SETNAM
 LDA #$01
 LDX #drive
 LDY #$0F
 JSR $FFBA ; SETLFS
 JSR $FFC0 ; OPEN
 JSR $FFC3 ; CLOSE
geos64d64:
 !text "CD:GEOS64.D64"


Appendix 3: EasyBoot code for EasyFlash

 LDX #$0E
easyloop:
 LDA easyboot,X
 STA $DF0C,X
 DEX
 BPL easyloop
 ... 
easyboot:
 SEI
 LDA #$01
 STA $DE00
 LDA #$07
 STA $DE02
 JMP $8009


Appendix 4: RAM Expansion I/O Conflict Table

Addr.		REU	GeoRAM	EasyFlash	+60K	RamCart64	RamC128
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

Legend:

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 - Ankara/Turkey
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
http://cbm.ficicilar.name.tr/

--

