Memory Map: Page 2 Continued
by James Capparell
Memory Map is an on-going feature of ANTIC. See issue #1, 2, and 3 for previous installments. We intend to publish the function of all the low memory RAM locations. The format for our description is:
- 12 $C 2 DOSINI
- The Operating System variable called DOSINI uses 2 continguous locations starting at address 12 (decimal) or C (hexidecimal).
Page 2 continued
- 673 $2A1 1 TMPLBT
- 674 $2A2 1 ESCFLG
- Used by screen editor. Flag set to $80 when ESC [$1B] character detected. Reset to 0 following output of next character. Causes character following ESC to be displayed. Only exception is EOL [$9B].
- 675 $2A3 15 TABMAP
- Logical Line start.
- 690 $2B2 4 LOGMAP
- Logical line bitmap. When a bit is set then a logical line starts at the corresponding physical row number. All bits set to 1 when text screen is opened or cleared.
- 694 $2B6 1 INVFLG
- Inverse video flag toggled by ATARI logo key sets bit 7 = 1.
- 695 $2B7 1 FILFLG
- Indicates to display handler whether current operation is fill <> 0 or draw = 0.
- 696 $2B9 1 TMPROW
- 697 $2B9 2 TMPCOL
- 699 $2BB 1 SCRFLG
- Scroll flag set to number of physical lines - 1 that were deleted from top of screen. Since logical lines range from 1-3 physical lines then this variable ranges from 0-2.
- 700 $2BC 1 HOLD4
- Used to save and restore value in ATACHR [$2FB] during fill process when ATACHR is temporarily set to value in FILDAT [$2FD].
- 701 $2BD 1 HOLD5
- Temporary used by draw.
- 702 $2BE 1 SHFLOK
- Shift/control lock flag initialized to $40 at powerup.
$00 = normal mode lowercase alpha $61-$7A
$40 = caps lock upper case $41-$5A
$80 = control lock $01-$1A
- 703 $2BF 1 BOTSCR
- Bottom of screen = 4 then mixed mode, = 24 then normal.
- 704 $2C0 4 PCOLR0-PCOLR3
- Player color registers and shadows.
PCOLR0 = COLPM0 [$D012]
PCOLR1 = COLPM1 [$D013]
PCOLR2 = COLPM2 [$D014]
PCOLR3 = COLPM3 [$D015]
- 708 $2C4 5 COLOR0-COLOR3
- Playfield color registers and shadows.
COLOR0 = COLPF0 [$D016]
COLOR1 = COLPF1 [$D017]
COLOR2 = COLPF2 [$D018]
COLOR3 = COLPF3 [$D019]
COLOR4 = COLBK [$D01A]
- 713 $2C9 23 SPARE
- 736 $2E0 2 GLBABS
- Contains entry address of code for auto-boot/run.
- 738 $2E1 2 SPARE
- 740 $2E4 1 RAMSIZ
- Size in pages of available RAM permanently retains RAM top address contained in TRAMSZ [$6] with BASIC and 48k the = $160 = 40960.
- 741 $2E5 2 MEMTOP
- Top of available user memory RAMSIZ less display list and display memory (first nonuseable address). This value established by powerup logic and reset re-established when screen display is opened.
- 743 $2E7 2 MEMLO
- Bottom of available user memory established at powerup and reset, not altered after that.
- 745 $2E9 1 SPARE
- 746 $2EA 4 DVSTAT
- Device status buffer. Get status command puts information in these bytes.
- 750 $2EE 1 CBAUDL
- Cassette baud rate low byte.
- 751 $2EF 1 CBAUDH
- Cassette baud rate high byte.
- 752 $2F0 1 CRSINH
- Cursor inhibit flag. If = 0 then cursor on. If > 0 then no visible cursor.
- 753 $2F1 1 KEYDEL
- Key delay set to 3 whenever key code acepted. Decremented every 1/60 sec by stage 2 VBLANK process until it reaches 0.
- 754 $2F2 1 CHI
- Prior key code read and acepted. Current key pressed compared with contents of CH1 if same then debounce time checked. If OK then accepted. If current key not same as CH1 then accepted. When accepted stored in CH [$2FC].
- 755 $2F3 1 CHACT
- Shadow for CHACTL [$D401] char control register.
bit 2 = 1 causes current character line to invert sampled at every char. line.
bit 1 = 2 in 40 char. mode if bit 7 of current char. code = 1 then char is blue on white
bit 0 = 1 in 40 char. mode if bit 7 of current char. code = 1 then car. will be black blinking char produced by setting bit 7 of char. and periodically changing bit 0 here.
- 756 $2F4 1 CHBAS
- Vector to page address of character set init's to E0 (upper case and punctuation) char set in ROM is $E000-E3FF shadow for CHBASE [$D409].
- 757 $2F5 5 SPARE
- 762 $2FA 1 CHAR
- Contains internal code corresponding to what is in ATACHR [$2FB]. This will be converted to ATASCII.
- 763 $2FB 1 ATACHR
- ATASCII character for most recent char read or written or value of the graphics point. This value also determines color of line in draw and fill commands.
- 764 $2FC 1 CH
- Holds keyboard code for a character (not ATASCII). Keyboard handler gets all data from here when it gets a character. It writes $FF here to indicate code read. This location loaded when a key is pressed causing an IRQ interrupt which vectors at $208. This interrupt service routine loads the code into $2FC for processing at VBLANK stage 2.
- 765 $2FD 1 FILDAT
- Right fill data for draw.
- 766 $2FE 1 DSPFLG
- Display flag will allow control codes other than EOL [$98] to be displayed if flag <> 0. If flag = 0 then control codes processed normally.
- 767 $2FF 1 SSFLAG
- Start/stop flag toggled by control-1 keys cleared by break key, reset key, or powerup.
DCB--Device Control Block
Used for hanler/SIO communication and between user and disk handler.
- 768 $300 1 DDEVIC
- Peripheral unit 1 bus I.D. number.
- 769 $301 1 DUNIT
- Unit number.
- 770 $302 1 DCOMND
- Bus command.
- 771 $303 1 DSTATS
- Command type status return.
- 772 $304 2 DBUFLO
- Data buffer pointer. Set by handler to indicate source or destination data buffer.
To be continued in another issue