[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Jon Relay's Apple II Info Archives (Part 1 of 2)
Jon Relay's Apple II Info Archives:
* Zero Page Addresses
* ProDOS File Types
* Macintosh Computer Setups that Produce Readable ProDOS Disks
* Standard Color HiRes Information
* Video Display Theory
* Description of Memory Areas
* I/O Memory
* Screen Holes
* Graphics Modes
* Super Serial Card DIP Switches
This file is best viewed with a monospaced
font (i.e. Monaco, Courier, etc.).
All topics are preceded with a ###. You
can easily jump to one by searching for
### <topic name>:
using your newsgroup reader's/web
browser's/text viewer's find command.
This file is posted every two months, starting
with February each year. Any input is welcome.
### Zero Page Addresses:
Please note: No free space is really free
when using the Sabine 9-bit Text System.
$00-$05 - ???
$06-$09 - Free Space
$0A-$0C - JMP to USR() User Function Routine
$0D-$17 - ???
$18 - First Data Track
$19 - First Data Sector
$1A-$1B - Shape Pointer for DRAW
$1C - Last COLOR Used
$1D-$1E - Free Space
$1F - ???
$20 - Left Margin (0 - 39/79, 0 is default)
$21 - Width (1 - 40/80, 40 is default, 0 crashes Applesoft)
$22 - Top Margin (0 - 23, 0 is default, 20 in graphics mode)
$23 - Bottom Margin (0 - 23, 23 is default)
$24 - Horizontal Cursor Position (0 - 39/79)
$25 - Vertical Cursor Position (0 - 23)
$26-$27 - Address of Byte Containing X,Y
$28-$29 - Base Address of Text Cursor's Position
$2A - ???
$2B - Boot Slot * 16
$2C - Lo-Res HLIN/VLIN Endpoint
$2D-$2F - ???
$30 - COLOR Value * 17
$31 - ???
$32 - Text Mask ($FF = Normal, $7F = Inverse, $3F = Flashing)
$33 - Prompt Character
$34-$35 - ???
$36-$37 - Address of Output Routine
$38-$39 - Address of Input Routine
$3A-$4F - ???
$50-$51 - Result of the Conversion of the FAC to a 16-Bit Integer
$52-$66 - ???
$67-$68 - Address of Beginning of BASIC Program ($0801 is default)
$69-$6A - Address of Beginning of BASIC Variables
$6B-$6C - Address of Beginning of BASIC Arrays
$6D-$6E - Address of End of BASIC Variables
$6F-$70 - Address of End of String Data
$71-$72 - Address to Move String To
$73-$74 - Address of Beginning of String Data
$75-$76 - Current Line Number Being Executed
$77-$78 - Line Number Where END or STOP or BREAK Occurred
$79-$7A - Address of Line Number Being Executed
$7B-$7C - Current Address of DATA
$7D-$7E - Next Address of DATA
$7F-$80 - Address of Input or Data
$81-$82 - Last Used Variable's Name
$83-$84 - Last Used Variable's Address
$85-$9A - ???
$9B-$9C - Pointer for $D61A and $F7D9
$9D-$A3 - Floating Point Accumulator (FAC)
$A4 - ???
$A5-$AB - Floating Point Argument Register (ARG)
$AC-$AE - ???
$AF-$B0 - Address of End of BASIC Program
$B1-$B6 - Subroutine to Increase the String Data Pointer
$B7-$BE - Subroutine to Return the Character Pointed to by the String Data
Pointer
$BF-$CD - ???
$CE-$CF - Free Space
$D0-$D3 - ???
$D4 - Error Code Flag
$D5-$D6 - ???
$D7 - Free Space
$D8 - Error Flag (Bit 7 Set if an Error Handler is Used)
$D9 - ???
$DA-$DB - Line Number Where Error Occurred
$DC-$DD - ???
$DE - Error Code
$DF - ???
$E0-$E1 - Horizontal Coordinate of HPLOT
$E2 - Vertical Coordinate of HPLOT
$E3 - Free Space
$E4 - HCOLOR Value (0=0, 1=42, 2=85, 3=127, 4=128, 5=170, 6=213, 7=255)
$E5 - ???
$E6 - High Byte of Address of First Byte of Where HGR is Plotted
$E7 - SCALE Value (0 = 256)
$E8-$E9 - Address of Shape Table
$EA - DRAW/XDRAW Collision Count
$EB-$EF - Free Space
$F0 - ???
$F1 - SPEED Value (Subtracted From 256)
$F2 - ???
$F3 - Text OR Mask for Flashing Text
$F4-$F5 - Address of Error Handler (Line Number after ONERR GOTO)
$F6-$F8 - ???
$F9 - ROT Value
$FA-$FE - Free Space
$FF - Used by Applesoft's STR$ Function
### ProDOS File Types:
$0 Types: General Files
$00 UNK Unknown
$01 BAD Bad Block File
$02 PCD Pascal Code
$03 PTX Pascal Text
$04 TXT ASCII Text
$05 PDA Pascal Data
$06 BIN Binary File
$07 FNT Apple III Font
$08 FOT HiRes/Double HiRes File
$09 BA3 Apple III BASIC Program
$0A DA3 Apple III BASIC Data
$0B WPF Generic Word Processor File
$0C SOS SOS System File
$0F DIR ProDOS Directory
$1 Types: Desktop Publishing
$10 RPD RPS Data
$11 RPI RPS Index
$12 AFD AppleFile Discard
$13 AFM AppleFile Model
$14 AFR AppleFile Report
$15 SCL Screen Library
$16 PFS PFS Document
$19 ADB AppleWorks Database
$1A AWP AppleWorks Word Processor
$1B ASP AppleWorks Spreadsheet
$2 Types: Program Code
$20 TDM Desktop Manager File
$21 IPS Instant Pascal Source
$22 UPV UCSD Pascal Volume
$29 3SD SOS Directory
$2A 8SC Source Code
$2B 8OB Object Code
$2C 8IC Interpretted Code
$2D 8LD Language Data
$2E P8C ProDOS 8 Code Module
$4 Types: OCR
$41 OCR Optical Character Recognition File
$5 Types: General File Types
$50 GWP Apple IIgs Word Processor File
$51 GSS Apple IIgs Spreadsheet File
$52 GDB Apple IIgs Database File
$53 DRW Object Oriented Graphics File
$54 GDP Apple IIgs Desktop Publishing File
$55 HMD HyperMedia
$56 EDU Educational Program Data
$57 STN Stationery
$58 HLP Help File
$59 COM Communications File
$5A CFG Configuration File
$5B ANM Animation File
$5C MUM Multimedia File
$5D ENT Entertainment Program File
$5E DVU Development Utility File
$6 Types: PC Transporter
$60 PRE PC Pre-Boot
$6B BIO PC BIOS
$6D DVR PC Driver
$6E PRE PC Pre-Boot
$6F HDV PC Hard Disk Image
$7 Types: KES Software
$70 AH0 {Amy Holland Tribute}
$71 KMT {Karen Torrez Tribute}
$72 CS1 {Camille Sanchez Tribute}
$73 LP0 {Lilyann Page Tribute}
$74 CS2 {Chelsea Strong Tribute}
$75 KG0 {Kalie Gardella Tribute}
$76 SA0 {Sumie Arnold Tribute}
$77 KES General File {Kelly Smith Tribute}
$78 JAP Joanna Anna Pastel
$79 CSL Chelsea Sumi Little
$7A TME Tammy Morgan Eighteen
$7B TLB {Tammy Bastien Tribute}
$7C RS0 {River School Tribute}
$7D MLR General Mylar City Data
$7E MMM {Margaux Mertz Tribute}
$7F JCP {Joanna Pastcan Tribute}
$8 Types: GEOS Files
$80 GES System File
$81 GEA Desk Accessory
$82 GEO Application
$83 GED Document
$84 GEF Font
$85 GEP Printer Driver
$86 GEI Input Driver
$87 GEX Auxilary Driver
$8B GEC Clock Driver
$8C GEK Interface Card Driver
$8D GEW Formatting Data
$A Types: Apple IIgs BASIC
$A0 WP WordPerfect File
$AB GSB Apple IIgs BASIC Program
$AC TDF Apple IIgs BASIC TDF
$AD BDF Apple IIgs BASIC Data
$B Types: Apple IIgs Files
$B0 SRC Apple IIgs Source Code
$B1 OBJ Apple IIgs Object Code
$B2 LIB Apple IIgs Library
$B3 S16 Apple IIgs Application Program
$B4 RTL Apple IIgs Runtime Library
$B5 EXE Apple IIgs Shell
$B6 PIF Apple IIgs Perminent INIT
$B7 TIF Apple IIgs Temporary INIT
$B8 NDA Apple IIgs New Desk Accessory
$B9 CDA Apple IIgs Classic Desk Accessory
$BA TOL Apple IIgs Tool
$BB DRV Apple IIgs Device Driver
$BC LDF Apple IIgs Generic Load File
$BD FST Apple IIgs File System Translator
$BF DOC Apple IIgs Document
$C Types: Graphics Files
$C0 PNT Apple IIgs Packed Super HiRes
$C1 PIC Apple IIgs Super HiRes
$C2 ANI PaintWorks Animation
$C3 PAL PaintWorks Palette
$C5 OOG Object-Oriented Graphics
$C6 SCR Script
$C7 CDV Apple IIgs Control Panel
$C8 FON Apple IIgs Font
$C9 FND Apple IIgs Finder Data
$CA ICN Apple IIgs Icon File
$D Types: Sound Files
$D5 MUS Music File
$D6 INS Instrument File
$D7 MDI MIDI File
$D8 SND Apple IIgs Sound File
$DB DBM DB Master Document
$E Types: Miscellaneous
$E0 LBR Archive File
$E2 ATK AppleTalk Data
$EE R16 EDASM 816 Relocatable Code
$EF PAR Pascal Area
$F Types: System Files
$F0 CMD ProDOS Command File
$F1 OVL User Defined 1
$F2 User Defined 2
$F3 User Defined 3
$F4 User Defined 4
$F5 BAT User Defined 5
$F6 User Defined 6
$F7 User Defined 7
$F8 PRG User Defined 8
$F9 P16 Apple IIgs System File
$FA INT Integer BASIC Program
$FB IVR Integer BASIC Variables
$FC BAS Applesoft BASIC Program
$FD VAR Applesoft BASIC Variables
$FE REL EDASM Relocatable Code
$FF SYS ProDOS System File
### Macintosh Computer Setups that Produce Readable ProDOS Disks:
PowerMac 7100/66 @ 88MHz
DiskCopy: fails
Mac Finder: succeeds
iMac 233 (Bondi rev A) @ 266MHz
DiskCopy: fails
Mac Finder: succeeds
PowerBook 5300c
DiskCopy: succeeds
Mac Finder: succeeds
### Standard Color HiRes Information:
On screen, every 14 columns:
|G| |CT1| |CT1| |CT1| |---CT1---| |CT1| |CT1| |CT1|
v v v v v v v v v v v v v v v v
Column: CGB C00 C01 C02 C03 C04 C05 C06 CGB C07 C08 C09 C10 C11 C12 C13
Bit Value: 128 001 002 004 008 016 032 064 128 001 002 004 008 016 032 064
^ ^
|G|
In memory, every 2 bytes:
|G| |CT2| |CT2| |CT2| |G| |CT2| |CT2| |CT2|
v v v v v v v v v v v v v v v v
Column: CGB C06 C05 C04 C03 C02 C01 C00 CGB C13 C12 C11 C10 C09 C08 C07
Bit Value: 128 064 032 016 008 004 002 001 128 064 032 016 008 004 002 001
^ ^
|---------------------------CT1---------------------------|
CT1 bit pairs:
00 = Black 01 = Blue or Magenta 10 = Orange or Green 11 = White
CT2 bit pairs:
00 = Black 01 = Orange or Green 10 = Blue or Magenta 11 = White
G (color group) bits:
0 = Black, White, Magenta, or Green 1 = Black, White, Orange, or Blue
Column values are column on screen modulo 14.
On the two bits that are from two different bytes, if the two bytes have
different color group bits then 01 or 10 will result in some weird colors.
The results I get trying to expiriment with them are often inconsistant.
My first results where like this:
Color Group Bits As In Memory
\/ \/
01 10
+> 01 Brown Pink
+> 10 Cyan Purple
|
+- Bit Pair Bits
Just recently, I got different results that were more consistant, but
wackier than my earlier table:
Bit Pair: Group Bits: Background Color: Result:
01 10 Black Purple
01 01 Black Cyan
11 10 Black Aqua
01 10 White Yellow
01 01 White Brown
11 01 White Red
If you think about it for a really long time, it makes sense that:
Bit Pair: Group Bits: Result:
01 10 Purple
01 01 Cyan
10 10 Yellow
10 01 Brown
11 10 Aqua
11 01 Red
Which is sacraficing consistancy for being less weird.
There was a program posted on comp.sys.apple2 a long time ago that put all
12 colors on a black background. Looking at it, I can find this:
Bit Pair: Group Bits: Start at Column: Result:
00 00 6 Black
10 10 6 Blue
10 00 6 Magenta
10 11 6 Light Blue
10 01 6 Purple
10 10 13 Brown
10 11 13 Orange
11 10 13 Pink
01 00 6 Green
10 01 13 Yellow
11 10 6 Cyan
11 00 6 White
To work around some of these wacky limitations, you can use the following
subroutines:
Pix^2 Version 1:
63999 HCOLOR=ZZ : HPLOT (XX*2),(YY*2) TO (XX*2)+1,(YY*2) TO (XX*2)+1,(YY*2)+1
TO (XX*2),(YY*2)+1:RETURN
Draws bulky square pixels on the screen. XX is loaded with the horizontal
coordinate, a number between 0 and 139. YY is loaded with the vertical
coordinate, a number between 0 and 95. ZZ is loaded with a color number,
which is from 0 to 7. 0 or 4 is black, 1 is green, 2 is magenta, 3 or 7 is
white, 5 is orange, and 6 is blue. Color group conflicts will occur.
Pix^2 Version 2:
63999 HCOLOR=ZZ : HPLOT (XX*2),YY TO (XX*2)+1,YY : RETURN
Draws rectangular pixels on the screen. XX is loaded with the horizontal
coordinate, a number between 0 and 139. YY is loaded with the vertical
coordinate, a number between 0 and 191. ZZ is loaded with a color number,
which is from 0 to 7. 0 or 4 is black, 1 is green, 2 is magenta, 3 or 7 is
white, 5 is orange, and 6 is blue. Color group conflicts will occur.
Pix^2 Version 3 Beta:
63990 IF ZZ = 7 THEN ZZ = 3
63991 IF ZZ = 4 THEN ZZ = 0
63992 XX = XX*2
63993 IF ZZ <> 0 AND ZZ <> 3 THEN GOTO 63008
63994 VTAB INT(YY/8)+1:BA=((PEEK(40)+(256*PEEK(41)))-1024)+8192
63995 BA=BA+(1024*(YY-(INT(YY/8)*8)))+INT(XX/7)
63996 IF BA <> INT(BA) THEN BA = INT(BA)
63997 IF PEEK(BA) > 128 THEN ZZ = ZZ + 4
63998 XX = XX/2
63999 HCOLOR=ZZ : HPLOT (XX*2),YY TO (XX*2)+1,YY : RETURN
Draws rectangular pixels on screen. XX is loaded with the horizontal
coordinate, a number between 0 and 139. YY is loaded with the vertical
coordinate, a number between 0 and 191. ZZ is loaded with a color number,
which is from 0 to 7. 0 or 4 is black, 1 is green, 2 is magenta, 3 or 7 is
white, 5 is orange, and 6 is blue. Checks the color group bit of the
existing pixels so that using white or black won't change the color group
bit regardless of whether you use 0, 3, 4, or 7 as the value of ZZ. Since
this subroutine is in beta, don't expect it to work.
These subroutines are backwards compatible. Version 2 does everything
version 1 did, and version 3 does everything version 2 does. Programs that
use version 1 can also use versions 2 and 3 (although the height of the
picture will be shrunken down [up?]), and programs that use version 2 can
also use version 3.
### Video Display Theory:
This came up on comp.sys.apple2 long ago. It was on a thread about a new
Apple II emulator, I think, and they needed help with high-resolution
graphics. Here was my theory. (At least as I remember it. The Deja
archives are temporarily unavailable, and I didn't save it.)
A composite video signal has a chroma and a luma signal. The luma controls
the brightness of a pixel. The chroma is actually two axes on a
two-dimensional surface of color. The x axis goes from magenta to green,
and the y axis goes from orange to blue. At the center of each axis is
white:
+-----------+
| O | O=Orange, G=Green,
| | B=Blue, M=Magenta,
|M W G| W=White
| |
| B |
+-----------+
Filling in the corners, we can find the whole spectrum:
+-----------+
|R O Y| R=Red, O=Orange,
| | Y=Yellow, G=Green,
|M W G| C=Cyan, B=Blue,
| | P=Purple, M=Magenta,
|P B C| W=White
+-----------+
You'll notice that at the extremes of each axis are the four
high-resolution graphics colors. Someone, I don't remember who, replied
that the hi-res color magenta was actually purple. The Apple people were
confused when purple didn't fit on the color table (as was I), so they
called it magenta in the documentation.
It wasn't in the post (although someone did reply with it) that the color
group bit of each byte of graphics data determined which axis to use for
color, and the two bits of each pair of columns defined the polarity of
the axis at that point.
One explanation for why you get weird colors on byte boundaries was
because the Apple II's composite video output wasn't exactly NTSC (or
PAL). You got what was called "color bleeding." A single point of light
somewhere on the screen showed a variety of colors depending on exactly
where it was. The different color group bits on the bytes at the byte
boundaries pushed and pulled the pixel one way or another, and that's why
you get all sorts of weird colors there. The Apple IIgs has a totally
different video system, but it still uses a slightly-off color-bleeding
composite signal.
The earlier Apple II's used TTL logic and all that off-the-shelf stuff to
display video, so the signals where just switched on and off. The Apple
IIgs has a complicated microchip to handle video, so it can produce all
those 4096 colors you can use. With an RGB monitor, the Apple IIgs doesn't
do a very good job at putting high-resolution and double high-resolution
up on an RGB screen, so you get some bad colors there. Some colors show up
as all black, or all white, or a different color. And, of course, my
favorite; dark green shows up as a flickering green that seems to
stabilize to solid green at some times.
### Description of Memory Areas:
{ All Apple II Computers
{ $0000 - $00FF (0 - 255): Zero Page
{ $0100 - $01FF (256 - 511): 6502 Processor Stack
{ $0200 - $02FF (512 - 767): GETLN Line Input Buffer
{ $0300 - $03CF (768 - 975): Free Space for Machine Language, Shape Table, etc.
{ $03D0 - $03FF (976 - 1023): DOS, ProDOS, and Interrupt Vectors
{ $0400 - $07FF (1024 - 2047): Text Video Page and Peripheral Screenholes
{ $0800 - $0BFF (2048 - 3071): Text Video Page 2 or Applesoft Program and
Variables
{ $0C00 - $1FFF (3072 - 8191): Free Space for Machine Language, Shapes, etc.
{ (might be overwritten if you use a lot of variables or BASIC program is long)
{ $2000 - $3FFF (8192 - 16383): High Resolution Graphics Page 1
{ $4000 - $5FFF (16384 - 24575): High Resolution Graphics Page 2
{ $6000 - $95FF (24576 - 38399): Applesoft String Data
{ (may have a little space free)
{ (some BASIC programs move the variables all the way up to $4000 or even $6000)
{ (Sabine's Notebook moves it all the way up to $8000!)
{ DOS 3.2 / 3.3 and Custom DOSes
{ $9600 - $9CFF (38400 - 40191): Disk I/O Buffers
{ $9D00 - $BFFF (40192 - 49151): DOS Routines
{ (memory below $9600 can also be used for disk buffers via MAXFILES command)
{
{ ProDOS
{ $9600 - $99FF (38400 - 39423): BASIC.SYSTEM I/O Buffers
{ $9A00 - $BEFF (39424 - 48895): Currently running SYS file
{ $BF00 - $BFFF (48896 - 49151): ProDOS Kernel Global Page
{ (memory below $9600 can also be used for disk buffers by opening more files)
{ All Apple II Computers
{ $C000 - $C0FF (49152 - 49407): Soft Switches and Status Locations
{ Apple II Series in General
{ $C100 - $C7FF (49408 - 51199): Peripheral Card Memory
{ $C800 - $CFFF (51200 - 53247): Extended Memory for Peripheral Card in Use
{
{ Apple IIe
{ $C100 - $C2FF (49408 - 49919): Extensions to System Monitor
{ $C300 - $C3FF (49920 - 50175): 80-Column Display Routines
{ $C400 - $C7FF (50176 - 51199): Self-Test Routines
{ $C800 - $CFFF (51200 - 53247): More 80-Column Display Routines
{
{ Apple IIc and sometimes IIgs
{ $C100 - $C2FF (49408 - 49919): Serial Firmware
{ $C300 - $C3FF (49920 - 50175): 80-Column Firmware
{ $C400 - $C4FF (50176 - 50431): Mouse Firmware
{ $C500 - $C6FF (50432 - 50943): Floppy Disk Drive Firmware
{ $C700 - $C7FF (50944 - 51199): AppleTalk Firmware
{ $C800 - $CFFF (51200 - 53247): Extended Memory for Periph Card
{ Apple IIe, IIc, IIgs, and II+ with Applesoft ROM Language Card
{ $D000 - $F7FF (53248 - 63487): Applesoft Interpreter
{ $F800 - $FFFF (63488 - 65535): System Monitor
{
{ Apple II and II+ with Integer ROM Language Card
{ $D000 - $D7FF (53248 - 55040): Programmer's Aid #1 ROM
{ $D800 - $DFFF (55041 - 57343): Empty (No RAM or ROM)
{ $E000 - $F7FF (57344 - 63487): Integer BASIC / Mini-Assembler / Sweet16
{ $F800 - $FFFF (63488 - 65535): System Monitor
{
{ Apple IIe, IIc, and IIgs
{ $D000 - $DFFF (53248 - 57343): Bank-Switched RAM (2 Banks RAM, 1 Bank ROM)
{ $E000 - $FFFF (57344 - 65535): Bank-Switched RAM (1 Bank RAM, 1 Bank ROM)
### I/O Memory:
Comp: O = Apple II+ E = Apple IIe C = Apple IIc G = Apple IIgs
Act: R = Read W = Write 7 = Bit 7 V = Value
Address Name Comp Act Description
C000 49152 KBD OECG R Last Key Pressed + 128
80STOREOFF ECG W Use $C002-$C005 for Aux Memory
C001 49153 80STOREON ECG W Use PAGE2 for Aux Memory
C002 49154 RDMAINRAM ECG W If 80STORE Off: Read Main Mem $0200-$BFFF
C003 49155 RDCARDRAM ECG W If 80STORE Off: Read Aux Mem $0200-$BFFF
C004 49156 WRMAINRAM ECG W If 80STORE Off: Write Main Mem $0200-$BFFF
C005 49157 WRCARDRAM ECG W If 80STORE Off: Write Aux Mem $0200-$BFFF
C006 49158 SETSLOTCXROM E G W Peripheral ROM ($C100-$CFFF)
C007 49159 SETINTCXROM E G W Internal ROM ($C100-$CFFF)
C008 49160 SETSTDZP ECG W Main Stack and Zero Page
C009 49161 SETALTZP ECG W Aux Stack and Zero Page
C00A 49162 SETINTC3ROM E G W ROM in Slot 3
C00B 49163 SETSLOTC3ROM E G W ROM in Aux Slot
C00C 49164 CLR80VID ECG W 40 Columns
C00D 49165 SET80VID ECG W 80 Columns
C00E 49166 CLRALTCHAR ECG W Primary Character Set
C00F 49167 SETALTCHAR ECG W Alternate Character Set
C010 49168 KBDSTRB OECG WR Keyboard Strobe
C011 49169 RDLCBNK2 ECG R7 Status of Selected $Dx Bank
C012 49170 RDLCRAM ECG R7 Status of $Dx ROM / $Dx RAM
C013 49171 RDRAMRD ECG R7 Status of Main/Aux RAM Reading
C014 49172 RDRAMWRT ECG R7 Status of Main/Aux RAM Writing
C015 49173 RDCXROM E G R7 Status of Periph/ROM Access
RSTXINT C R Reset Mouse X0 Interrupt
C016 49174 RDALTZP ECG R7 Status of Main/Aux Stack and Zero Page
C017 49175 RDC3ROM E G R7 Status of Slot 3/Aux Slot ROM
RSTYINT C R Reset Mouse Y0 Interrupt
C018 49176 RD80STORE ECG R7 Status of $C002-$C005/PAGE2 for Aux Mem
C019 49177 RDVBL E G R7 Vertical Blanking (E:1=drawing G:0=drawing)
RSTVBL C R Reset Vertical Blanking Interrupt
C01A 49178 RDTEXT ECG R7 Status of Text/Graphics
C01B 49179 RDMIXED ECG R7 Status of Full Screen/Mixed Graphics
C01C 49180 RDPAGE2 ECG R7 Status of Page 1/Page 2
C01D 49181 RDHIRES ECG R7 Status of LoRes/HiRes
C01E 49182 RDALTCHAR ECG R7 Status of Primary/Alternate Character Set
C01F 49183 RD80VID ECG R7 Status of 40/80 Columns
C020 49184 TAPEOUT OE R Toggle Cassette Tape Output
C021 49185 MONOCOLOR G W 7 Color/Mono
C022 49186 TBCOLOR G V Screen Color: Low Nibble is BG, High
Nibble is Text
C023 49187 VGCINT G V Video Graphics Controller Interrupts:
b0-2=ext,scan,1sec enable
b4-7=ext,scan,1sec,VGC
C024 49188 MOUSEDATA G V Mouse Data: High Bit is Button, Other
Bits are Movement
C025 49189 KEYMODREG G V Modifier Keys: Bit 7: Command, Bit 6: Option,
Bit 5: NotUsed, Bit 4: Keypad,
Bit 3: Repeat, Bit 2: Caps,
Bit 1: Control, Bit 0: Shift
C026 49190 DATAREG G V ADB Command/Data b0-2=# b3=valid b4=clr buf
b5=reboot b6=abort b7=status
C027 49191 KMSTATUS G V ADB Status: b0=cmdFull b1=mouseX
b2=keyIntr b3=key
b4=cmdIntr b5=data
6=mouseInt 7=mouse
C028 49192 ROMBANK ???? ROM bank select toggle
C029 49193 NEWVIDEO G V New Video: 129=SHR, 1=None, Bit
6=Linearize, Bit 5=BW
C02B 49195 LANGSEL G Bit 3=Secondary Bit 4=50Hz Bits
5-7=Display Language
C02C 49196 CHARROM ???? Addr for test mode read of character ROM
C02D 49197 SLTROMSEL G Slot Register; Bits 1-7=use slot card
C02E 49198 VERTCNT ???? Addr for read of video cntr bits V5-VB
C02F 49199 HORIZCNT ???? Addr for read of video cntr bits VA-H0
C030 48200 SPKR OECG R Toggle Speaker
C031 49201 DISKREG G Disk Interface: Bit 6=3.5 Bit 7=RWHead 1
C032 49202 SCANINT G V VGC Interrupt-Clear
C033 49203 CLOCKDATA G Interface to Battery RAM (undocumented)
C034 49204 CLOCKCTL G b0-3=borderColor b5=stopBit b6=read b7=start
C035 49205 SHADOW G Inhibit Shadowing: Bit 6: I/O Memory,
Bit 5: Alternate
Display Mode, Bit 4:
Auxilary HGR,
Bit 3: Super HiRes,
Bit 2: HiRes
Page 2, Bit 1: HiRes
Page 1,
Bit 0: Text/LoRes
C036 49206 CYAREG G Bits 0-3=Disk Detect Bit 4=Shadow All
Banks Bit 7=Fast
C037 49207 BMAREG G Bit 5=BW
C038 49208 SCCBREG G SCC Command Channel B
C039 49209 SCCAREG G SCC Command Channel A
C03A 49210 SCCBDATA G SCC Data Channel B
C03B 49211 SCCADATA G SCC Data Channel A
C03C 49212 SOUNDCTL G V Sound Settings: Bits 0-3=Volume Bit 5=AutoIncr
Bit 6=RAM Bit 7=Busy
C03D 49213 SOUNDDATA G Sound Data
C03E 49214 SOUNDADRL G Address Pointer L
C03F 49215 SOUNDADRH G Address Pointer H
C040 49216 OE R Game I/O Strobe Output
RDXYMSK C R7 Read X0/Y0 Interrupt
C041 49217 RDVBLMSK C R7 Read VBL Interrupt
C042 49218 RDX0EDGE C R7 Read X0 Edge Selector
C043 49219 RDY0EDGE C R7 Read Y0 Edge Selector
C044 49220 MMDELTAX G V Mega II Mouse Delta Movement X
C045 49221 MMDELTAY G V Mega II Mouse Delta Movement Y
C046 49222 DIAGTYPE ???? Self or Burn-In diagdistics: Bit
7=burn-in diag
INTFLAG ???? b0=IRQ b1=MMmov b2=MMbut b3=VBL b4=qsec
b5=AN3 b6=mouse was down b7=mouse is down
C047 49223 CLRVBLINT ???? Clear VBL Interrupt
C048 49224 CLRXYINT ???? Clear MM Interrupt
C048 49224 RSTXY C WR Reset X and Y Interrupts
C050 49232 TXTCLR OECG WR Display Graphics
C051 49233 TXTSET OECG WR Display Text
C052 49234 MIXCLR OECG WR Display Full Screen
C053 49235 MIXSET OECG WR Display Split Screen
C054 49236 TXTPAGE1 OECG WR Display Page 1
C055 49237 TXTPAGE2 OECG WR If 80STORE Off: Display Page 2
ECG WR If 80STORE On: Read/Write Aux Display Mem
C056 49238 LORES OECG WR Display LoRes Graphics
C057 49239 HIRES OECG WR Display HiRes Graphics
C058 49240 CLRAN0 OE G WR If IOUDIS off: Annunciator 0 Off
DISXY C WR If IOUDIS on: Mask X0/Y0 Move Interrupts
C059 49241 SETAN0 OE G WR If IOUDIS off: Annunciator 0 On
ENBXY C WR If IOUDIS on: Allow X0/Y0 Move Interrupts
C05A 49242 CLRAN1 OE G WR If IOUDIS off: Annunciator 1 Off
DISVBL C WR If IOUDIS on: Disable VBL Interrupts
C05B 49243 SETAN1 OE G WR If IOUDIS off: Annunciator 1 On
ENVBL C WR If IOUDIS on: Enable VBL Interrupts
C05C 49244 CLRAN2 OE G WR If IOUDIS off: Annunciator 2 Off
X0EDGE C WR If IOUDIS on: Interrupt on X0 Rising
C05D 49245 SETAN2 OE G WR If IOUDIS off: Annunciator 2 On
X0EDGE C WR If IOUDIS on: Interrupt on X0 Falling
C05E 49246 CLRAN3 OE G WR If IOUDIS off: Annunciator 3 Off
Y0EDGE C WR If IOUDIS on: Interrupt on Y0 Rising
DHIRESON ECG WR In 80-Column Mode: Double Width Graphics
C05F 49247 SETAN3 OE G WR If IOUDIS off: Annunciator 3 On
Y0EDGE C WR If IOUDIS on: Interrupt on Y0 Falling
DHIRESOFF ECG WR In 80-Column Mode: Single Width Graphics
C060 49248 OE R7 Read Cassette Input
C R7 Status of 80/40 Column Switch
BUTN3 G R7 Switch Input 3
C061 49249 RDBTN0 EC R7 Switch Input 0 / Open Apple
C062 49250 BUTN1 E R7 Switch Input 1 / Solid Apple
C063 49251 RD63 E R7 Switch Input 2 / Shift Key
C R7 Bit 7 = Mouse Button Not Pressed
C064 49252 PADDL0 OECG R7 Analog Input 0
C065 49253 PADDL1 OECG R7 Analog Input 1
C066 49254 PADDL2 OE G R7 Analog Input 2
RDMOUX1 C R7 Mouse Horiz Position
C067 49255 PADDL3 OE G R7 Analog Input 3
RDMOUY1 C R7 Mouse Vert Position
C068 49256 STATEREG G V b0=INTCXROM b1=ROMBANK b2=LCBNK2 b3=RDROM
b4=RAMWRT b5=RAMRD b6=PAGE2 b7=ALTZP
C06D 49261 TESTREG ???? Test Mode Bit Register
C06E 49262 CLRTM ???? Clear Test Mode
C06F 49263 ENTM ???? Enable Test Mode
C070 49364 PTRIG E R Analog Input Reset
C WR Analog Input Reset + Reset VBLINT Flag
C073 49367 BANKSEL ECG W Memory Bank Select for > 128K
C078 49372 C W Disable IOU Access
C079 49373 C W Enable IOU Access
C07E 49278 IOUDISON EC W Disable IOU
RDIOUDIS EC R7 Status of IOU Disabling
C07F 49279 IOUDISOFF EC W Enable IOU
RDDHIRES EC R7 Status of Double HiRes
C080 49280 OECG R Read RAM bank 2; no write
C081 49281 ROMIN OECG RR Read ROM; write RAM bank 2
C082 49282 OECG R Read ROM; no write
C083 49283 LCBANK2 OECG RR Read/write RAM bank 2
C084 49284 OECG R Read RAM bank 2; no write
C085 49285 ROMIN OECG RR Read ROM; write RAM bank 2
C086 49286 OECG R Read ROM; no write
C087 49287 LCBANK2 OECG RR Read/write RAM bank 2
C088 49288 OECG R Read RAM bank 1; no write
C089 49289 OECG RR Read ROM; write RAM bank 1
C08A 49290 OECG R Read ROM; no write
C08B 49291 OECG RR Read/write RAM bank 1
C08C 49292 OECG R Read RAM bank 1; no write
C08D 49293 OECG RR Read ROM; write RAM bank 1
C08E 49294 OECG R Read ROM; no write
C08F 49295 OECG RR Read/write RAM bank 1
C090--C09F slot 1
C0A0--C0AF slot 2
C0B0--C0BF slot 3
C0C0--C0CF slot 4
C0D0--C0DF slot 5
C0E0--C0EF slot 6
C0F0--C0FF slot 7
--
Tammy and TIA ----> Jon.
= dimension18.cjb.net === ICQ# 76731065 === jonrelay@napanet.net =
In the words of Olivia: Eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee!