You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README-Atari.md
+18-20Lines changed: 18 additions & 20 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -12,7 +12,7 @@ GEOS 2.0 was ported to 8-bit Atari by *Maciej Witkowiak*
12
12
13
13
## What is GEOS?
14
14
15
-
Please read main README.md for that.
15
+
Please read [main README.md](README.md) for that.
16
16
17
17
## Atari port requirements
18
18
@@ -59,14 +59,14 @@ Compatibility problems come from:
59
59
- memory map changes (hires bitmap screen with different organization for ANTIC than for VIC)
60
60
- missing capatibilities (24-pixel wide sprites, color matrix for hires mode)
61
61
62
-
Programs will not work correctly if:
62
+
Programs will not work correctly if they:
63
63
64
-
-they use sprites or change their colors (e.g. Preferences Manager)
65
-
-they change color matrix in 40-column mode (e.g. DESK TOP)
66
-
-they require REU
67
-
-they access bitmap screen in 40-column mode directly (e.g. Maverick)
68
-
-they have custom recovery routine (e.g. GeoWrite)
69
-
-they write directly to I/O registers (e.g printer drivers)
64
+
- use sprites or change their colors (e.g. Preferences Manager)
65
+
- change color matrix in 40-column mode (e.g. DESK TOP)
66
+
- require REU
67
+
- access bitmap screen in 40-column mode directly (e.g. Maverick)
68
+
- have custom recovery routine (e.g. GeoWrite)
69
+
- write directly to I/O registers (e.g printer drivers)
70
70
71
71
They may not work at all or show some graphical glitches. For example, if an application tries to add some color it will write to `COLOR_MATRIX` space, which is now occupied by Player0/1/2/3 data, so mouse pointer will be temporarily overwritten.
72
72
@@ -105,7 +105,7 @@ It will take every third byte to show only the leftmost 8-pixels. The sprite wil
105
105
106
106
You can see how it works in DeskTop if you select a file and then try to drag it to the border area (under disk window).
107
107
108
-
Missiles/Player5 are not used.
108
+
Missiles/Player4 are not used.
109
109
110
110
### Input devices
111
111
@@ -147,18 +147,18 @@ Atari has less RAM available because it can't switch off I/O and allocates whole
147
147
148
148
| Pages | Description |
149
149
|-------:|:--------------|
150
-
| $00 | used for Kernal and application virtual registers, but addresses used by C64/128 Kernal are not touched (about $80-$FF) |
150
+
| $00 | used for Kernal and application virtual registers, but locations used by C64/128 Kernal are not touched (about $80-$FF) |
151
151
| $02-$03 | not touched by loader, boot code nor GEOS Kernal itself |
152
152
| $04-$5F | free to be used by applications |
153
-
| $60-$7F | screen backbuffer, but I moved them to bank 0 of expanded RAM, so any native Atari GEOS application (or pathed DeskTop) can use it |
153
+
| $60-$7F | screen backbuffer, but on Atari moved to bank 0 of expanded RAM; any native Atari GEOS application can use it |
154
154
| $80-$8B | system variables |
155
-
| $8C-$8F | on C64/128 this is color matrix, on Atari this is reserved for Player0-3 graphics |
155
+
| $8C-$8F |color matrix on C64/128, Player0-3 graphics on Atari|
156
156
| $90-$9D | reserved for disk driver, this would be swapped with expanded RAM by *SetDevice* function |
157
157
| $9E-$9F | GEOS Kernal code and variables |
158
158
| $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 |
159
159
| $C0-$CF | GEOS Kernal code |
160
160
| $D0-$D7 | I/O |
161
-
| $D8-$FE | GEOS Kernal code, except 16 byte buffers at $DC00-0F and $DD00-0F. Atari Kernal emulates CIA#1 TOD clock in that space and remaining area is a buffer in case a user program wants to use TOD clock from CIA#2, write directly to user port (parallel printer port) or alter keyboard/joystick ports |
161
+
| $D8-$FE | GEOS Kernal code, except 16 byte buffers at $DC00-0F and $DD00-0F. Atari GEOS Kernal emulates CIA#1 TOD clock in that space and remaining area is a buffer in case a user program wants to use CIA#2 TOD clock, write directly to user port (parallel printer port) or alter keyboard/joystick ports |
all the remaining areas are free to be used by files
175
-
176
-
Unlike C128 there is no special handling for desk accessories - they will have swap file created on RAM disk, which will be only a little slower than copying memory to reserved space.
174
+
all the remaining areas are free to be used by files.
177
175
178
176
### Disk drives
179
177
180
178
There is only one disk device available: RAM drive.
181
179
182
-
The supposed disk driver for SIO devices may use hardware directly or via ROM code. There are functions *InitForIO* and *DoneForIO* that in GEOS64/128 prepare
180
+
A disk driver for SIO devices may use the hardware directly or via ROM code. There are functions *InitForIO* and *DoneForIO* that in GEOS64/128 prepare
183
181
the system for using ROM routines for I/O. GEOS doesn't touch memory in $0200-$03ff. Some of zero-page registers are used by the system, but they can be easily preserved.
184
182
185
-
The requirements for a disk driver are:
183
+
The requirements for such disk driver are:
186
184
187
185
- it needs to read/write 256-byte sectors at a time
188
186
- sectors are addressed by 8-bit track and sector numbers
0 commit comments