Skip to content

Commit 03429a6

Browse files
authored
Update README-Atari.md
1 parent 09b017a commit 03429a6

File tree

1 file changed

+11
-8
lines changed

1 file changed

+11
-8
lines changed

README-Atari.md

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,9 @@ GEOS 2.0 by Berkeley Softworks
44

55
This is a fork of [GEOS 2.0 for C64/128 reverse-engineered](https://github.com/mist64/geos) by *Maciej Witkowiak*, *Michael Steil*
66

7-
GEOS 2.0 was ported to 8-bit Atari by *Maciej Witkowiak*
7+
GEOS 2.0 was ported to 8-bit Atari by *Maciej Witkowiak* in October 2022.
8+
9+
There is also a patched [geoWrite](https://github.com/ytmytm/geowrite-atari) that works better on an Atari.
810

911
<img src="screenshots/desktop.png" alt="DeskTop on an Atari" width=800>
1012
<img src="screenshots/notepad.png" alt="Desk accessory over DeskTop" width=800>
@@ -77,20 +79,20 @@ They may not work at all or show some graphical glitches. For example, if an app
7779
| IconEditor | too many visual glitches to be usable |
7880
| GeoPublish | not as bad as GeoPaint, but still not usable |
7981
| GeoCalc | crashes because it needs CBM BASIC for floating-point calculations |
80-
| GeoWrite | patched to Atari works ok-ish if you type slowly |
82+
| [GeoWrite](https://github.com/ytmytm/geowrite-atari) | patched for Atari works ok-ish if you type slowly |
8183
| GeoFile | minimal visual glitches |
8284
| GeoChart | works fine except area-fill chart |
8385
| GeoDex | works fine |
8486

85-
Just like on C64 the processes (sleep and multitasking) are clocked by video frame rate.
86-
8787
### Performance
8888

8989
Atari port is probably somewhat faster than C64/128. Atari has higher CPU clock rate and linear screen organization that is easier to handle than VIC bitmap.
9090
All the rectangle functions (*Rectangle*, *InvertRectangle*, *ImprintRectangle*, *RecoverRectangle*) have been optimized to reuse calculated screen coordinates.
9191

9292
Keyboard has its own interrupt and doesn't have to be scanned for every row/column.
9393

94+
Just like on C64 the processes (sleep and multitasking) are clocked by video frame rate.
95+
9496
### System startup
9597

9698
The boot code jumps right into DeskTop, but eventually it should at least try to run Auto-Exec applications from RAM disk.
@@ -113,7 +115,7 @@ Missiles/Player4 are not used.
113115

114116
A very simple joystick driver controls the mouse pointer. This driver doesn't support acceleration (but it should!). I couldn't get the original joystick driver to work.
115117

116-
Joystick driver can be changed during runtime, but the code has to be ported - you can't use any joystick drivers from GEOS64/128.
118+
Joystick driver can be changed during runtime, but the code has to be ported first - you can't use any joystick drivers from GEOS64/128.
117119

118120
#### Keyboard
119121

@@ -153,7 +155,7 @@ Atari has less RAM available because it can't switch off I/O and allocates whole
153155
| $60-$7F | screen backbuffer, but on Atari moved to bank 0 of expanded RAM; any native Atari GEOS application can use it |
154156
| $80-$8B | system variables |
155157
| $8C-$8F | color matrix on C64/128, Player0-3 graphics on Atari |
156-
| $90-$9D | reserved for disk driver, this would be swapped with expanded RAM by *SetDevice* function |
158+
| $90-$9D | reserved for disk driver, this area would be swapped with expanded RAM by *SetDevice* function |
157159
| $9E-$9F | GEOS Kernal code and variables |
158160
| $A0-$BF | front buffer for 320x200 hires screen, it is shifted by 56 bytes to match exactly the 4K boundary on 101st line and keep linear addressing |
159161
| $C0-$CF | GEOS Kernal code |
@@ -204,9 +206,9 @@ There are none, they will have to be ported. See Disk Drive section for notes ab
204206

205207
### Time and date
206208

207-
There is no CIA time-of-day (TOD) clock, timekeeping is done by counting vertical blank interrupts. During banked operations a short interrupt routine is called and some of these events may be lost.
209+
There is no CIA time-of-day (TOD) clock, timekeeping is done by counting vertical blank interrupts. During banked operations a short interrupt routine is called that doesn't advance seconds.
208210

209-
TOD clock from CIA#1 is emulated by converting current time into BCD and storing into $DC08-$DC0A, where DeskTop reads it directly.
211+
TOD clock from CIA#1 is emulated by converting current time into BCD and storing it back into $DC08-$DC0A (as if it came from CIA chip), where DeskTop reads it directly.
210212

211213
There is no support for an alarm clock. It's tied to CIA TOD clock hardware feature.
212214
The system doesn't provide any function to set the alarm (it's done in hardware by a Desk Accessory) you can only choose if/how it should react to the alarm.
@@ -240,3 +242,4 @@ There is another program in `tools` directory, that analyses resulting `build/<a
240242
uses optimizer to put GEOS Kernal code into all available gaps as neatly as possible, so that as much as possible remaining area stays
241243
just under $FE80 (input driver) address.
242244

245+
[GeoWrite](https://github.com/ytmytm/geowrite-atari) can be rebuilt by checking out `atari` branch and issuing `make` followed by `make cvt`.

0 commit comments

Comments
 (0)