Skip to content

Commit 09b017a

Browse files
authored
Update README-Atari.md
1 parent 82be494 commit 09b017a

File tree

1 file changed

+18
-20
lines changed

1 file changed

+18
-20
lines changed

README-Atari.md

Lines changed: 18 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ GEOS 2.0 was ported to 8-bit Atari by *Maciej Witkowiak*
1212

1313
## What is GEOS?
1414

15-
Please read main README.md for that.
15+
Please read [main README.md](README.md) for that.
1616

1717
## Atari port requirements
1818

@@ -59,14 +59,14 @@ Compatibility problems come from:
5959
- memory map changes (hires bitmap screen with different organization for ANTIC than for VIC)
6060
- missing capatibilities (24-pixel wide sprites, color matrix for hires mode)
6161

62-
Programs will not work correctly if:
62+
Programs will not work correctly if they:
6363

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)
7070

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

@@ -105,7 +105,7 @@ It will take every third byte to show only the leftmost 8-pixels. The sprite wil
105105

106106
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).
107107

108-
Missiles/Player5 are not used.
108+
Missiles/Player4 are not used.
109109

110110
### Input devices
111111

@@ -147,18 +147,18 @@ Atari has less RAM available because it can't switch off I/O and allocates whole
147147

148148
| Pages | Description |
149149
|-------:|:--------------|
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) |
151151
| $02-$03 | not touched by loader, boot code nor GEOS Kernal itself |
152152
| $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 |
154154
| $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 |
156156
| $90-$9D | reserved for disk driver, this would be swapped with expanded RAM by *SetDevice* function |
157157
| $9E-$9F | GEOS Kernal code and variables |
158158
| $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 |
159159
| $C0-$CF | GEOS Kernal code |
160160
| $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 |
162162
| $FE-$FF | input driver (joystick) |
163163

164164
Extra memory banks:
@@ -168,21 +168,19 @@ Extra memory banks:
168168
| 0 | $4000-$4FFF | GEOS Kernal code (using jump table from $D800)
169169
| 0 | $5000-$5FFF | is reserved for (future) SIO disk driver |
170170
| 0 | $6000-$7FFF | screen back buffer, drawing routines with imprint/recover screen from this area, not from system RAM |
171-
| 1 | $4000-$40FF | disk header and block allocation map (BAM) |
172-
| 1 | $4100-$41ff | first directory block
171+
| 1 | $4000-$40FF | disk header and block allocation map (BAM) (track 1 sector 0) |
172+
| 1 | $4100-$41ff | first directory block (track 1 sector 1) |
173173

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

178176
### Disk drives
179177

180178
There is only one disk device available: RAM drive.
181179

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

185-
The requirements for a disk driver are:
183+
The requirements for such disk driver are:
186184

187185
- it needs to read/write 256-byte sectors at a time
188186
- sectors are addressed by 8-bit track and sector numbers

0 commit comments

Comments
 (0)