Classic Computer Magazine Archive ANTIC VOL. 1, NO. 6 / FEBRUARY 1983


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

Page 3

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