Atari F030 and CT60 Hardware Register Listing V1.0
This page is no longer maintained. It is kept for reference only.
The maintained listing is Memory Map for Atari ST,STE,TT and Falcon, which covers every machine in one place, carries per-register bit detail, and is checked against Hatari, EmuTOS, Atari's own TOS sources and the Atari Compendium.
Please do not edit this page. Corrections made here will not reach the maintained pages. Edit the relevant section page instead and post on the forum thread so the change is recorded.
Why the machine-specific pages were merged: having the same registers documented in several places sounded useful but did not work in practice. One listing would get corrected and the others would not, so over time the pages disagreed with each other and there was no way to tell which was right. Someone would fix a Falcon register here and the same error would stay on the general listing for years. Every register now lives in exactly one place, with a machine column showing which models it applies to, so there is one thing to keep correct rather than four.
Some content from this page has not yet been transferred, notably the Cookie Jar section. That work is in progress and this page will stay up until it is done.
CPU Reset Vectors
| Address | Description | Space |
|---|---|---|
| $000000 | Reset : Initial SSP | SP |
| $000004 | Reset : Initial PC | SP |
CPU Exception Vectors
| Address | Description | Space |
|---|---|---|
| $000008 | Bus Error | SD |
| $00000C | Address Error | SD |
| $000010 | Illegal Instruction | SD |
| $000014 | Zero Divide | SD |
| $000018 | CHK, CHK2 Instruction | SD |
| $00001C | cpTRAPcc, TRAPcc, TRAPV | SD |
| $000020 | Privilege Violation | SD |
| $000024 | Trace | SD |
| $000028 | Line 1010 Emulator (LineA) | SD |
| $00002C | Line 1111 Emulator (LineF) | SD |
| $000030 | (Unassigned, Reserved) | SD |
| $000034 | Coprocessor Protocol Violation (68030) | SD |
| $000038 | Format Error (68010) | SD |
| $00003C | Uninitialized Interrupt Vector | SD |
| $000040 | (Unassigned, Reserved) | SD |
| : | : : | : |
| $00005F | (Unassigned, Reserved) | SD |
| $000060 | Spurious Interrupt (Bus error during interrupt) | SD |
Auto-Vector Interrupts
| Address | Description | Space |
|---|---|---|
| $000064 | Level 1 Int Autovector (NOT USED) | SD |
| $000068 | Level 2 Int Autovector (HBL) | SD |
| $00006C | Level 3 Int Autovector (NOT USED) | SD |
| $000070 | Level 4 Int Autovector (VBL) | SD |
| $000074 | Level 5 Int Autovector (NOT USED) | SD |
| $000078 | Level 6 Int Autovector (NOT USED) | SD |
| $00007C | Level 7 Int Autovector (NOT USED) | SD |
Trap Instruction Vectors (Trap #n = Vector number + 32 + n)
| Address | Description | Space |
|---|---|---|
| $000080 | Trap0 | SD |
| $000084 | Trap1 (GemDOS) | SD |
| $000088 | Trap2 (AES/VDI) | SD |
| $00008C | Trap3 | SD |
| $000090 | Trap4 | SD |
| $000094 | Trap5 | SD |
| $000098 | Trap6 | SD |
| $00009C | Trap7 | SD |
| $0000A0 | Trap8 | SD |
| $0000A4 | Trap9 | SD |
| $0000A8 | Trap10 | SD |
| $0000AC | Trap11 | SD |
| $0000B0 | Trap12 | |
| $0000B4 | Trap13 (BIOS) | SD |
| $0000B8 | Trap14 (XBIOS) | SD |
FPU Vectors (68881/68882/Internal)
| Address | Description | Space |
|---|---|---|
| $0000C0 | FFCP Branch or Set on Unordered Condition | SD |
| $0000C4 | FFCP Inexact Result | SD |
| $0000C8 | FFCP Divide by Zero | SD |
| $0000CC | FFCP Underflow | SD |
| $0000D0 | FFCP Operand Error | SD |
| $0000D4 | FFCP Overflow | SD |
| $0000D8 | FFCP Signaling NAN | SD |
| $0000DC | (Unassigned, Reserved) | SD |
PMMU (68851/Internal(68030))
| Address | Description | Space |
|---|---|---|
| $0000E0 | MMU Configuration Error | SD |
| $0000E4 | MC68851, not used by MC68030 | SD |
| $0000E8 | MC68851, not used by MC68030 | SD |
Miscellaneous Vectors
| Address | Description | Space |
|---|---|---|
| $0000EC | (Unassigned, Reserved) | SD |
| : | : : | : |
| $0000FC | (Unassigned, Reserved) | SD |
User Assigned Interrupt Vectors
| Address | Description | Space |
|---|---|---|
| $000100 | ST-MFP-0 - IO0 - Centronics BUSY vector (#)64 | SD |
| $000104 | ST-MFP-1 - IO1 - Centronics ACK | SD |
| $000108 | ST-MFP-2 - IO2 - MIDI ACIA INT | SD |
| $00010C | ST-MFP-3 - IO3 - DSP Connector INT | SD |
| $000110 | ST-MFP-4 - Timer D (USART timer) | SD |
| $000114 | ST-MFP-5 - Timer C (200hz Clock) | SD |
| $000118 | ST-MFP-6 - IO4 - Keyboard & MIDI ACIA INT | SD |
| $00011C | ST-MFP-7 - IO5 - FDC & HDC & IDE INT | SD |
| $000120 | ST-MFP-8 - Timer B (HBL) | SD |
| $000124 | ST-MFP-9 - Send Error | SD |
| $000128 | ST-MFP-10 - Send buffer empty | SD |
| $00012C | ST-MFP-11 - Receive error | SD |
| $000130 | ST-MFP-12 - Receive buffer full | SD |
| $000134 | ST-MFP-13 - Timer A (STE sound) | SD |
| $000138 | ST-MFP-14 - IO6 - RS-232 RING Indicator | SD |
| $00013C | ST-MFP-15 - IO7 - SND INT | SD |
| $000180 | SCC Interrupt 96 | SD |
| : | : : | SD |
| $0001BC | SCC Interrupt 111 | SD |
| ------ | --------------------------------------------------- | ----- |
| $0001C0 | User Defined, Unused 112 | SD |
| $0003FC | User Defined, Unused 256 | SD |
System Crash Page
| Address | Size | Description | Space |
|---|---|---|---|
| $000380 | long | Validates System Crash Page if $12345678 | proc_lives |
| $000384 | ..... | Saved registers D0-D7 | proc_dregs |
| $0003A4 | ..... | Saved registers A0-A7 | proc_aregs |
| $0003C4 | long | Vector number of crash exception | proc_enum |
| $0003C8 | long | Saved USP | proc_usp |
| $0003CC | ..... | Saved 16 words from exception stack | proc_stk |
System Variables
| Address | Size | Description | Space |
|---|---|---|---|
| $000400 | long | GEM Event timer vector | etv_timer |
| $000404 | long | GEM Critical error handler | etv_critic |
| $000408 | long | GEM Program termination vector | etv_term |
| $00040C | long | GEM Additional vector #1 (Unused) | etv_xtra |
| : | : | : : : : : | : |
| $00041C | long | GEM Additional vector #5 (Unused) | etv_xtra |
| $000420 | long | Validates memory configuration if $752019F3 | memvalid |
| $000424 | word | Copy of contents of $FF8001 | memctrl |
| $000426 | long | Validates resvector if $31415926 | resvalid |
| $00042A | long | Reset vector | resvector |
| $00042E | long | Physical top of RAM | phystop |
| $000432 | long | Start of TPA (user memory) | _membot |
| $000436 | long | End of TPA (user memory) | _memtop |
| $00043A | long | Validates memcntrl and memconf if $237698AA | memval2 |
| $00043E | word | If nonzero, floppy disk VBL routine is disabled | flock |
| $000440 | word | Floppy Seek rate - 0:6ms, 1:12ms, 2:2ms, 3:3ms | seekrate |
| $000442 | word | Time between two timer calls (in milliseconds) | _timer_ms |
| $000444 | word | If not zero, verify floppy disk writes | _fverify |
| $000446 | word | Default boot device | _bootdev |
| $000448 | word | 0 - NTSC (60hz), <>0 - PAL (50hz) | palmode |
| $00044A | word | Default video resolution | defshiftmod |
| $00044C | word | Copy of contents of $FF8260 | sshiftmod |
| $00044E | long | Pointer to video RAM (logical screen base) | _v_bas_ad |
| $000452 | word | If not zero, VBL routine is not executed | vblsem |
| $000454 | word | Number of vertical blank routines | nvbls |
| $000456 | long | Pointer to list of vertical blank routines | _vblqueue |
| $00045A | long | If not zero, points to color palette to be loaded | colorptr |
| $00045E | long | If not zero, points to video ram for next VBL | screenpt |
| $000462 | long | Counter for number of VBLs | _vbclock |
| $000466 | long | Number of VBL routines executed | _frclock |
| $00046A | long | Vector for hard disk initialization | hdv_init |
| $00046E | long | Vector for resolution change | swv_vec |
| $000472 | long | Vector for getbpb for hard disk | hdv_bpb |
| $000476 | long | Vector for read/write routine for hard disk | hdv_rw |
| $00047A | long | Vector for hard disk boot | hdv_boot |
| $00047E | long | Vector for hard disk media change | hdv_mediach |
| $000482 | word | If not zero, attempt to load "COMMAND.PRG" on boot | _comload |
| $000484 | byte | Attribute vector for console output BIT 3 2 1 0 | conterm |
| $000486 | long | Return address for TRAP #14 (unused) | trp14ret |
| $00048A | long | Return address for critical error handler (unused) | criticret |
| $00048E | long | Memory descriptor block | themd |
| $00049E | long | Space for additional memory descriptors | themdmd |
| $0004A2 | long | Pointer to BIOS save registers block | savptr |
| $0004A6 | word | Number of connected floppy drives | _nflops |
| $0004A8 | long | Vector for screen output | con_state |
| $0004AC | word | Temporary storage for cursor line position | save_row |
| $0004AE | long | Pointer to save area for exception processing | sav_context |
| $0004B2 | long | Pointer to buffer control block for GEMDOS data | _bufl |
| $0004B6 | long | Pointer to buffer control block for GEMDOS fat/dir | _bufl |
| $0004BA | long | Counter for 200hz system clock | _hz_200 |
| $0004BC | long | Pointer to default environment string | the_env |
| $0004C2 | long | Bit allocation for physical drives (bit 0=A, 1=B..) | _drvbits |
| $0004C6 | long | Pointer to 1024-byte disk buffer | _dskbufp |
| $0004CA | long | Pointer to autoexecute path | _autopath |
| $0004CE | long | Pointer to VBL routine #1 | _vbl_lis |
| : | : | : : : : : | : |
| $0004EA | long | Pointer to VBL routine #8 | _vbl_lis |
| $0004EE | word | Flag for screen -> printer dump | _dumpflg |
| $0004F0 | word | Printer abort flag | _prtabt |
| $0004F2 | long | Pointer to start of OS | _sysbase |
| $0004F6 | long | Global shell pointer | _shell_p |
| $0004FA | long | Pointer to end of OS | end_os |
| $0004FE | long | Pointer to entry point of OS | exec_os |
| $000502 | long | Pointer to screen dump routine | scr_dump |
| $000506 | long | Pointer to _lstostat() | prv_lsto |
| $00050A | long | Pointer to _lstout() | prv_lst |
| $00050E | long | Pointer to _auxostat() | prv_auxo |
| $000512 | long | Pointer to _auxout() | prv_aux |
| $000516 | long | If AHDI, pointer to pun_info | pun_ptr |
| $00051A | long | If $5555AAAA, reset | memval3 |
| $00051E | long | 8 Pointers to input-status routines | xconstat |
| $00053E | long | 8 Pointers to input routines | xconin |
| $00055E | long | 8 Pointers to output-status routines | xcostat |
| $00057E | long | 8 Pointers to output routines | xconout |
| $00059E | word | If not 0, then not 68000 - use long stack frames | _longframe |
| $0005A0 | long | Pointer to cookie jar | _p_cookies |
| $0005A4 | long | Pointer to end of FastRam | ramtop |
| $0005A8 | long | Validates ramtop if $1357BD13 | ramvalid |
| $0005AC | long | Pointer to routine for system bell | bell_hook |
| $0005B0 | long | Pointer to routine for system keyclick | kcl_hook |
This portion of the document and onward yet to be converted to wiki tables. Arduous task! But worth it, I think
Address Size Description Bits used Read/Write
------------------------------------------------------------------------------
===F030 OS ROMs ===
-------+-----+-----------------------------------------------------+----------
$E00000|byte | |R
: | |TOS 512K ROMs |
$E7FFFF|byte | |
$E80000|byte | |R
: | : |Image of TOS 512K ROMs |
$EFFFFF|byte | |
-------+-----+-----------------------------------------------------+----------
===IDE Controller ===
-------+-----+-----------------------------------------------------+----------
$F00000|long |Data Register |R/W
$F00005|byte |Error Register BIT 7 6 5 4 3 2 1 0|R
| |Bad block mark -----------------------' | | | | | | ||
| |Uncorrectable error --------------------' | | | | | ||
| |Media change -----------------------------' | | | | ||
| |ID-Field not found -------------------------' | | | ||
| |Media change requested -----------------------' | | ||
| |Command aborted --------------------------------' | ||
| |Track 0 not found --------------------------------' ||
| |DAM not found --------------------------------------'|
$F00009|byte |Sector Count Register |W
$F0000D|byte |Sector Number Register |W
$F00011|byte |Cylinder Low Register |W
$F00015|byte |Cylinder High Register |W
$F00019|byte |Drive Head Register |W
$F0001D|byte |Status Register |R
$F0001D|byte |Command Register |W
$F00039|byte |Alternate Status Register |R
$F00039|byte |Data Output Register |W
-------+-----+-----------------------------------------------------+----------
===Falcon030 BUS Expansion Space ===
-------+-----+-----------------------------------------------------+----------
$F10000|word | |R/W
. | |576K A24/D16 Space | .
$F9FFFF|word | |R/W
-------+-----+-----------------------------------------------------+----------
===ROM ===
-------+-----+-----------------------------------------------------+----------
$FA0000| | |
: | |128K ROM expansion cartridge port |R
$FBFFFF| | |
-------+-----+-----------------------------------------------------+----------
===Falcon030 Memory Controller ===
------------------------------------------------------------------------------
$FF8006|byte | BIT 5 4|R/Write in
| |00 - 1Mb | Combel
| |01 - 4Mb | during
| |10 - 14Mb | Read.
| |11 - no boot ! |
------------------------------------------------------------------------------
===Falcon030 Processor Control ===
-------+-----+-----------------------------------------------------+----------
$FF8007|byte |Falcon Bus Control BIT 6 5 . . 2 . 0|R/W
| |F30 Start (0=Cold, 1=Warm) -------------' | | ||
| |STe Bus Emulation (0=on) ---------------' | ||
| |Blitter (0=8mhz, 1=16mhz) ---------------------' ||
| |68030 (0=8mhz, 1=16mhz) -------------------------'|
-------+-----+-----------------------------------------------------+----------
===SHIFTER Video Controller ===
-------+-----+-----------------------------------------------------+----------
$FF8201|byte |Video screen memory position (High byte) |R/W
$FF8203|byte |Video screen memory position (Mid byte) |R/W
$FF820D|byte |Video screen memory position (Low byte) |R/W
$FF8205|byte |Video address pointer (High byte) |R
$FF8207|byte |Video address pointer (Mid byte) |R
$FF8209|byte |Video address pointer (Low byte) |R
$FF820E|word |Offset to next line |R/W
$FF820F|byte |Width of a scanline (width in words-1) |R/W
$FF8210|word |Width of a scanline (width in words) |R/W
$FF8265|byte |Horizontal scroll register (0-15) |R/W
-------+-----+-----------------------------------------------------+----------
$FF820A|byte |Video synchronization mode BIT 1 0|R/W
| |0 - 60hz, 1 - 50hz -------------------------------+ ||
| |0 - internal, 1 - external sync --------------------'|
-------+-----+-----------------------------------------------------+----------
$FF8260|byte |Shifter resolution BIT 1 0|R/W
| |00 320x200x4 bitplanes (16 colors) ---------------+-+|
| |01 640x200x2 bitplanes (4 colors) ----------------+-+|
| |10 640x400x1 bitplane (1 colors) ----------------+-'|
$FF8262|word |TT Shifter resolution BIT 15 . . 12|R/W
| |Sample/Hold mode ----------------------------' ||
| |Hypermono mode -------------------------------------'|
| |Video Mode BIT 10 9 8|
| |000 320x200x4 bitplanes (16 colors) -----------+-+-+|
| |001 640x200x2 bitplanes (4 colors) ------------+-+-+|
| |010 640x400x1 bitplane (2 colors)(Duochrome) -+-+-+|
| |100 640x480x4 bitplanes (16 colors) -----------+-+-+|
| |110 1280x960x1 bitplane (2 colors) ------------+-+-+|
| |111 320x480x8 bitplanes (256 colors) ----------+-+-'|
| |ST Palette Bank BIT 3 2 1 0|
-------+-----+-----------------------------------------------------+----------
===Falcon030 VIDEL Video Controller ===
-------+-----+-----------------------------------------------------+----------
$FF8006|byte |Monitor Type BIT 7 6|R
| |00 - Monochrome (SM124) --------------------------+-+|
| |01 - Color (SC1224) ------------------------------+-+|
| |10 - VGA Color -----------------------------------+-+|
| |11 - Television ----------------------------------+-'|
$FF820E|word |Offset to next line |R/W
$FF8210|word |VWRAP - Linewidth in words |R/W
$FF8266|word |SPSHIFT BIT 10 . 8 . 6 5 4 3 2 1 0|R/W
| |2-colour mode ------------------' | | | | | | | ||
| |Truecolour mode --------------------' | | | | | | ||
| |Use external hsync ---------------------' | | | | | ||
| |Use external vsync -----------------------' | | | | ||
| |8 Bitplane mode ----------------------------' | | | ||
| |? Bitplane mode ------------------------------' | | ||
| |? Bitplane mode --------------------------------' | ||
| |? Bitplane mode ----------------------------------' ||
| |? Bitplane mode ------------------------------------'|
| +-----------------------------------------------------+
| | Horizontal Control Registers (9bit)|
$FF8280|word |HHC - Horizontal Hold Counter |R
$FF8282|word |HHT - Horizontal Hold Timer |R/W
$FF8284|word |HBB - Horizontal Border Begin |R/W
$FF8286|word |HBE - Horizontal Border End |R/W
$FF8288|word |HDB - Horizontal Display Begin |R/W
$FF828A|word |HDE - Horizontal Display End |R/W
$FF828C|word |HSS - Horizontal SS |R/W
$FF828E|word |HFS - Horizontal FS |R/W
$FF8290|word |HEE - Horizontal EE |R/W
| +-----------------------------------------------------+
| | Vertical Control Registers (10bit)|
$FF82A0|word |VFC - Vertcial Frequency Counter |R
$FF82A2|word |VFT - Vertical Frequency Timer |R/W
$FF82A4|word |VBB - Vertical Border Begin (count in 1/2 lines)|R/W
$FF82A6|word |VBE - Vertical Border End (count in 1/2 lines)|R/W
$FF82A8|word |VDB - Vertical Display Begin |R/W
$FF82AA|word |VDE - Vertical Display End |R/W
$FF82AC|word |VSS - Vertical SS |R/W
| +-----------------------------------------------------+
$FF82C0|word |??? - Video Clock (?) (Super78 puts $182 here) |R/W
$FF82C2|word |VCO - Video Control BIT 3 2 1 0|R/W
| |Quarter pixel width (quadruple pixels) -------' | | ||
| |Half pixel width (double pixels) ---------------' | ||
| |Skip line (interlace) ----------------------------' ||
| |Line doubling --------------------------------------'|
-------+-----+-----------------------------------------------------+----------
===DMA/WD1772 Disk controller ===
-------+-----+-----------------------------------------------------+----------
$FF8600| |Reserved |
$FF8602| |Reserved |
$FF8604|word |FDC access/sector count |R/W
$FF8606|word |DMA mode/status BIT 2 1 0|R
| |Condition of FDC DATA REQUEST signal -----------' | ||
| |0 - sector count null,1 - not null ---------------' ||
| |0 - no error, 1 - DMA error ------------------------'|
$FF8606|word |DMA mode/status BIT 8 7 6 . 4 3 2 1 .|W
| |0 - read FDC/HDC,1 - write ---------' | | | | | | | |
| |0 - HDC access,1 - FDC access --------' | | | | | | |
| |0 - DMA on,1 - no DMA ------------------' | | | | | |
| |Reserved ---------------------------------' | | | | |
| |0 - FDC reg,1 - sector count reg -----------' | | | |
| |0 - FDC access,1 - HDC access ----------------' | | |
| |0 - pin A1 low, 1 - pin A1 high ----------------' | |
| |0 - pin A0 low, 1 - pin A0 high ------------------' |
$FF8609|byte |DMA base and counter (High byte) |R/W
$FF860B|byte |DMA base and counter (Mid byte) |R/W
$FF860D|byte |DMA base and counter (Low byte) |R/W
$FF86OE|byte |High Density Drive BIT 1 0 |R/W
| | FDDS (0=DD, 1=HD) ---------------------------' | |
| | FCCLK (0=8MHz, 1=16MHz) ------------------------' |
-------+-----+-----------------------------------------------------+----------
===YM2149 Sound Chip ===
-------+-----+-----------------------------------------------------+----------
$FF8800|byte |Read data/Register select |R/W
| |0 Channel A Freq Low BIT 7 6 5 4 3 2 1 0|
| |1 Channel A Freq High BIT 3 2 1 0|
| |2 Channel B Freq Low BIT 7 6 5 4 3 2 1 0|
| |3 Channel B Freq High BIT 3 2 1 0|
| |4 Channel C Freq Low BIT 7 6 5 4 3 2 1 0|
| |5 Channel C Freq High BIT 3 2 1 0|
| |6 Noise Freq BIT 5 4 3 2 1 0|
| |7 Mixer Control BIT 7 6 5 4 3 2 1 0|
| | Port B IN/OUT (1=Output) -----------' | | | | | | ||
| | Port A IN/OUT ------------------------' | | | | | ||
| | Channel C Noise (1=Off) ----------------' | | | | ||
| | Channel B Noise --------------------------' | | | ||
| | Channel A Noise ----------------------------' | | ||
| | Channel C Tone (0=On) ------------------------' | ||
| | Channel B Tone ---------------------------------' ||
| | Channel A Tone -----------------------------------'|
| |8 Channel A Amplitude Control BIT 4 3 2 1 0|
| | Fixed/Variable Level (0=Fixed) -----------' | | | ||
| | Amplitude level control --------------------+-+-+-'|
| |9 Channel B Amplitude Control BIT 4 3 2 1 0|
| | Fixed/Variable Level ---------------------' | | | ||
| | Amplitude level control --------------------+-+-+-'|
| |10 Channel C Amplitude Control BIT 4 3 2 1 0|
| | Fixed/Variable Level ---------------------' | | | ||
| | Amplitude level control --------------------+-+-+-'|
| |11 Envelope Period High BIT 7 6 5 4 3 2 1 0|
| |12 Envelope Period Low BIT 7 6 5 4 3 2 1 0|
| |13 Envelope Shape BIT 3 2 1 0|
| | Continue -----------------------------------' | | ||
| | Attack ---------------------------------------' | ||
| | Alternate --------------------------------------' ||
| | Hold ---------------------------------------------'|
| | 00xx - \____________________________________ |
| | 01xx - /|___________________________________ |
| | 1000 - \|\|\|\|\|\|\|\|\|\|\|\|\|\|\|\|\|\|\ |
| | 1001 - \____________________________________ |
| | 1010 - \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\ |
| | 1011 - \|----------------------------------- |
| | 1100 - /|/|/|/|/|/|/|/|/|/|/|/|/|/|/|/|/|/|/ |
| | 1101 - /------------------------------------ |
| | 1110 - /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/ |
| | 1111 - /|___________________________________ |
| |14 Port A BIT 7 6 5 4 3 2 1 0|
| | IDE Drive On/OFF -------------------+ | | | | | | ||
| | Internal Speaker On/Off --------------' | | | | | ||
| | Centronics STROBE ----------------------' | | | | ||
| | DSP RESET --------------------------------' | | | ||
| | Centronics SELECT IN -----------------------' | | ||
| | Drive SELECT B -------------------------------' | ||
| | Drive SELECT A ---------------------------------' ||
| | Drive SIDE SELECT --------------------------------'|
| |15 Port B (Parallel port) |
$FF8802|byte |Write data |W
| +-----------------------------------------------------+
| |Note: PSG Registers are now fixed at these addresses.|
| |All other addresses are masked out on the Falcon. Any|
| |writes to the shadow registers $8804-$88FF will cause|
| |bus errors. Game/Demo coders beware! |
-------+-----+-----------------------------------------------------+----------
===DMA Sound System ===
-------+-----+-----------------------------------------------------+----------
$FF8900|byte |Buffer interrupts BIT 3 2 1 0|R/W
| |TimerA-Int at end of record buffer -----------' | | ||
| |TimerA-Int at end of replay buffer -------------' | ||
| |MFP-15-Int (I7) at end of record buffer ----------' ||
| |MFP-15-Int (I7) at end of replay buffer ------------'|
-------+-----+-----------------------------------------------------+----------
$FF8901|byte |DMA Control Register BIT 7 . 5 4 . . 1 0|R/W
| |1 - select record register -----------+ | | | ||
| |0 - select replay register -----------' | | | ||
| |Loop record buffer -----------------------' | | ||
| |DMA Record on ------------------------------' | ||
| |Loop replay buffer -------------------------------' ||
| |DMA Replay on --------------------------------------'|
-------+-----+-----------------------------------------------------+----------
$FF8903|byte |Frame start address (high byte) |R/W
$FF8905|byte |Frame start address (mid byte) |R/W
$FF8907|byte |Frame start address (low byte) |R/W
$FF8909|byte |Frame address counter (high byte) |R
$FF890B|byte |Frame address counter (mid byte) |R
$FF890D|byte |Frame address counter (low byte) |R
$FF890F|byte |Frame end address (high byte) |R/W
$FF8911|byte |Frame end address (mid byte) |R/W
$FF8913|byte |Frame end address (low byte) |R/W
-------+-----+-----------------------------------------------------+----------
$FF8920|byte |DMA Track Control BIT 5 4 . . 1 0|R/W
| |00 - Set DAC to Track 0 ------------------+-+ | ||
| |01 - Set DAC to Track 1 ------------------+-+ | ||
| |10 - Set DAC to Track 2 ------------------+-+ | ||
| |11 - Set DAC to Track 3 ------------------+-' | ||
| |00 - Play 1 Track --------------------------------+-+|
| |01 - Play 2 Tracks -------------------------------+-+|
| |10 - Play 3 Tracks -------------------------------+-+|
| |11 - Play 4 Tracks -------------------------------+-'|
-------+-----+-----------------------------------------------------+----------
$FF8921|byte |Sound mode control BIT 7 6 . . . . 1 0|R/W
| |0 - Stereo, 1 - Mono -----------------' | | ||
| |0 - 8bit -------------------------------+ | ||
| |1 - 16bit ------------------------------' | ||
| |Frequency control bits | ||
| |00 - Off -----------------------------------------+-+|
| |01 - 12517hz frequency ---------------------------+-+|
| |10 - 25033hz frequency ---------------------------+-+|
| |11 - 50066hz frequency ---------------------------+-'|
| |Samples are always signed. In stereo mode, data is |
| |arranged in pairs with high pair the left channel,low|
| |pair right channel. Sample length MUST be even in |
| |either mono or stereo mode. |
| |Example: 8 bit Stereo : LRLRLRLRLRLRLRLR |
| | 16 bit Stereo : LLRRLLRRLLRRLLRR |
| |2 track 16 bit stereo : LLRRllrrLLRRllrr |
-------+-----+-----------------------------------------------------+----------
===Falcon030 DMA/DSP Controllers ===
-------+-----+-----------------------------------------------------+----------
$FF8930|word |Crossbar Source Controller |R/W
| +-----------------------------------------------------+
| |Source: A/D Convertor BIT 15 14 13 12|
| |1 - Connect, 0 - disconnect ---------------' | | ||
| |00 - 25.175Mhz clock -------------------------+--+ ||
| |01 - External clock --------------------------+--+ ||
| |10 - 32Mhz clock (Don't use) -----------------+--' ||
| |0 - Handshake on, 1 - Handshake off ----------------'|
| +-----------------------------------------------------+
| |Source: External Input BIT 11 10 9 8|
| |0 - DSP IN, 1 - All others ----------------' | | ||
| |00 - 25.175Mhz clock -------------------------+--+ ||
| |01 - External clock --------------------------+--+ ||
| |10 - 32Mhz clock -----------------------------+--' ||
| |0 - Handshake on, 1 - Handshake off ----------------'|
| +-----------------------------------------------------+
| |Source: DSP-XMIT BIT 7 6 5 4|
| |0 - Tristate and disconnect DSP -----------+ | | ||
| | (Only for external SSI use) | | | ||
| |1 - Connect DSP to multiplexer ------------' | | ||
| |00 - 25.175Mhz clock -------------------------+--+ ||
| |01 - External clock --------------------------+--+ ||
| |10 - 32Mhz clock -----------------------------+--' ||
| |0 - Handshake on, 1 - Handshake off ----------------'|
| +-----------------------------------------------------+
| |Source: DMA-PLAYBACK BIT 3 2 1 0|
| |0 - Handshaking on, dest DSP-REC ----------+ | | ||
| |1 - Destination is not DSP-REC ------------' | | ||
| |00 - 25.175Mhz clock -------------------------+--+ ||
| |01 - External clock --------------------------+--+ ||
| |10 - 32Mhz clock -----------------------------+--' ||
| |0 - Handshake on, 1 - Handshake off ----------------'|
-------+-----+-----------------------------------------------------+----------
$FF8932|word |Crossbar Destination Controller |R/W
| +-----------------------------------------------------+
| |Destination: D/A Convertor BIT 15 14 13 12|
| |1 - Connect, 0 - Disconnect ---------------' | | ||
| |00 - Source DMA-PLAYBACK ---------------------+--+ ||
| |01 - Source DSP-XMIT -------------------------+--+ ||
| |10 - Source External Input -------------------+--+ ||
| |11 - Source A/D Convertor --------------------+--' ||
| |0 - Handshake on, 1 - Handshake off ----------------'|
| +-----------------------------------------------------+
| |Destination: External Output BIT 11 10 9 8|
| |0 - DSP out, 1 - All others ---------------' | | ||
| |00 - Source DMA-PLAYBACK ---------------------+--+ ||
| |01 - Source DSP-XMIT -------------------------+--+ ||
| |10 - Source External Input -------------------+--+ ||
| |11 - Source A/D Convertor --------------------+--' ||
| |0 - Handshake on, 1 - Handshake off ----------------'|
| +-----------------------------------------------------+
| |Destination: DSP-RECORD BIT 7 6 5 4|
| |0 - Tristate and disconnect DSP -----------+ | | ||
| | (Only for external SSI use) | | | ||
| |1 - Connect DSP to multiplexer ------------' | | ||
| |00 - Source DMA-PLAYBACK ---------------------+--+ ||
| |01 - Source DSP-XMIT -------------------------+--+ ||
| |10 - Source External Input -------------------+--+ ||
| |11 - Source A/D Convertor --------------------+--' ||
| |0 - Handshake on, 1 - Handshake off ----------------'|
| +-----------------------------------------------------+
| |Destination: DMA-RECORD BIT 3 2 1 0|
| |0 - Handshaking on, src DSP-XMIT ----------+ | | ||
| |1 - Source is not DSP-XMIT ----------------' | | ||
| |00 - Source DMA-PLAYBACK ---------------------+--+ ||
| |01 - Source DSP-XMIT -------------------------+--+ ||
| |10 - Source External Input -------------------+--+ ||
| |11 - Source A/D Convertor --------------------+--' ||
| |0 - Handshake on, 1 - Handshake off ----------------'|
-------+-----+-----------------------------------------------------+----------
$FF8934|byte |Frequency Divider External Clock BIT 3 2 1 0|R/W
| |0000 - STe-Compatible mode |
| |0001 - 1111 Divide by 256 and then number |
-------+-----+-----------------------------------------------------+----------
$FF8935|byte |Frequency Divider Internal Sync BIT 3 2 1 0|R/W
| |0000 - STe-Compatible mode 1000 - 10927Hz* |
| |0001 - 49170Hz 1001 - 9834Hz |
| |0010 - 32780Hz 1010 - 8940Hz* |
| |0011 - 24585Hz 1011 - 8195Hz |
| |0100 - 19668Hz 1100 - 7565Hz* |
| |0101 - 16390Hz 1101 - 7024Hz* |
| |0110 - 14049Hz* 1110 - 6556Hz* |
| |0111 - 12292Hz 1111 - 6146Hz* |
| | * - Invalid for CODEC |
-------+-----+-----------------------------------------------------+----------
$FF8936|byte |Record Tracks Select BIT 1 0|R/W
| |00 - Record 1 Track ------------------------------+-+|
| |01 - Record 2 Tracks -----------------------------+-+|
| |10 - Record 3 Tracks -----------------------------+-+|
| |11 - Record 4 Tracks -----------------------------+-'|
-------+-----+-----------------------------------------------------+----------
$FF8937|byte |CODEC Input Source from 16bit adder BIT 1 0|R/W
| |Source: Multiplexer ------------------------------' ||
| |Source: A/D Convertor ------------------------------'|
-------+-----+-----------------------------------------------------+----------
$FF8938|byte |CODEC ADC-Input for L+R Channel BIT 1 0|R/W
| |0 - Microphone, 1 - Soundchip L R|
-------+-----+-----------------------------------------------------+----------
$FF8939|byte |Channel amplification BIT LLLL RRRR|R/W
| | Amplification is in +1.5dB steps |
-------+-----+-----------------------------------------------------+----------
$FF893A|word |Channel attenuation BIT LLLL RRRR|R/W
| | Attenuation is in -1.5dB steps |
-------+-----+-----------------------------------------------------+----------
$FF893C|byte |CODEC-Status BIT 1 0|R/W
| |Left Channel Overflow ----------------------------' ||
| |Right Channel Overflow -----------------------------'|
-------+-----+-----------------------------------------------------+----------
$FF8941|byte |GPx Data Direction BIT 2 1 0|R/W
| |0 - In, 1 - Out --------------------------------+-+-'|
| | For the GP0-GP2 pins on the DSP connector |
-------+-----+-----------------------------------------------------+----------
$FF8943|byte |GPx Data Port BIT 2 1 0|R/W
-------+-----+-----------------------------------------------------+----------
===F030 RTC Chip (DS1287) ===
-------+-----+-----------------------------------------------------+----------
$FF8961|byte |Register select |W
| |0 - Current Second |
| |1 - Second for alarm |
| |2 - Current Minute |
| |3 - Minute for alarm |
| |4 - Current Hour |
| |5 - Hour for alarm |
| |6 - Day of week (1=Sunday, 2=Monday, 3=...) |
| |7 - Day of Month |
| |8 - Month |
| |9 - Year (example : '93' for this year) |
| |A BIT 7|
| | If set, update time in progress ----------------'|
| | don't read time & date registers |
| |B BIT 7 6 5 4 3 2 1 0|
| |1 = Write Protect time & date --------' | | | | ||
| |1 = Enable alarm interrupt ---------------' | | | ||
| |1 = Interrupt after time updated -----------' | | ||
| |1 = Format Binary, 0 = Format BCD --------------' | ||
| |1 = 24hr format, 0 = 12hr format -----------------' ||
| |1 = Summer hours, 0 = Winter hours -----------------'|
| |C BIT 6 5 4|
| | ??? -------------------------------------------' | ||
| |1 = alarm is ringing -----------------------------' ||
| |1 = date is updated --------------------------------'|
| |On interrupt, read this register to determine source.|
| |D BIT 7|
| |1 = Battery dead -----------------------------------'|
$FF8963|byte |Register data |R/W
-------+-----+-----------------------------------------------------+----------
===Blitter ===
-------+-----+-----------------------------------------------------+----------
$FF8A00|word |Halftone-RAM, Word 0 |R/W
: | : | : : : : | :
$FF8A1E|word |Halftone-RAM, Word 15 |R/W
$FF8A20|word |Source X Increment (signed,even)|R/W
$FF8A22|word |Source Y Increment (signed,even)|R/W
$FF8A24|long |Source Address Register (24 bit,even)|R/W
$FF8A28|word |Endmask 1 (First write of a line)|R/W
$FF8A2A|word |Endmask 2 (All other line writes)|R/W
$FF8A2C|word |Endmask 3 (Last write of a line)|R/W
$FF8A2E|word |Destination X Increment (signed,even)|R/W
$FF8A30|word |Destination Y Increment (signed,even)|R/W
$FF8A32|long |Destination Address Register (24 bit,even)|R/W
$FF8A36|word |Words per Line in Bit-Block (0=65536)|R/W
$FF8A38|word |Lines per Bit-Block (0=65536)|R/W
$FF8A3A|byte |Halftone Operation Register BIT 1 0|R/W
| |00 - All ones ------------------------------------+-+|
| |01 - Halftone ------------------------------------+-+|
| |10 - Source --------------------------------------+-+|
| |11 - Source AND Halftone -------------------------+-'|
$FF8A3B|byte |Logical Operation Register BIT 3 2 1 0|R/W
| |0000 All zeros -------------------------------+-+-+-+|
| |0001 Source AND destination ------------------+-+-+-+|
| |0010 Source AND NOT destination --------------+-+-+-+|
| |0011 Source ----------------------------------+-+-+-+|
| |0100 NOT source AND destination --------------+-+-+-+|
| |0101 Destination -----------------------------+-+-+-+|
| |0110 Source XOR destination ------------------+-+-+-+|
| |0111 Source OR destination -------------------+-+-+-+|
| |1000 NOT source AND NOT destination ----------+-+-+-+|
| |1001 NOT source XOR destination --------------+-+-+-+|
| |1010 NOT destination -------------------------+-+-+-+|
| |1011 Source OR NOT destination ---------------+-+-+-+|
| |1100 NOT source ------------------------------+-+-+-+|
| |1101 NOT source OR destination ---------------+-+-+-+|
| |1110 NOT source OR NOT destination -----------+-+-+-+|
| |1111 All ones --------------------------------+-+-+-'|
$FF8A3C|byte |Line Number Register BIT 7 6 5 . 3 2 1 0|R/W
| |BUSY ---------------------------------' | | | | | ||
| |0 - Share bus, 1 - Hog bus -------------' | | | | ||
| |SMUDGE mode ------------------------------' | | | ||
| |Halftone line number -------------------------+-+-+-'|
$FF8A3D|byte |SKEW Register BIT 7 6 . . 3 2 1 0|R/W
| |Force eXtra Source Read --------------' | | | | ||
| |No Final Source Read -------------------' | | | ||
| |Source skew ----------------------------------+-+-+-'|
-------+-----+-----------------------------------------------------+----------
===Zilog 8530 SCC ===
-------+-----+-----------------------------------------------------+----------
$FF8C81|byte |Channel A - Control Register |R/W
$FF8C83|byte |Channel A - Data Register |R/W
$FF8C85|byte |Channel B - Control Register |R/W
$FF8C87|byte |Channel B - Data Register |R/W
-------+-----+-----------------------------------------------------+----------
===F030 Extended Joystick/Lightpen Ports ===
-------+-----+-----------------------------------------------------+----------
$FF9200|word |Fire buttons 1-4 Bit 3 2 1 0|R
| |Pause/F0 -------------------------------------' | | ||
| |F1 ---------------------------------------------' | ||
| |F2 -----------------------------------------------' ||
| |Option/F3 ------------------------------------------'|
$FF9202|word |Read Mask (0 - pin read) |W
$FF9202|word |Joystick Inputs BIT 7 6 5 4 3 2 1 0|R
| |Controller 1 pin 4 -------------------' | | | | | | ||
| |Controller 1 pin 3 ---------------------' | | | | | ||
| |Controller 1 pin 2 -----------------------' | | | | ||
| |Controller 1 pin 1 -------------------------' | | | ||
| |Controller 0 pin 4 ---------------------------' | | ||
| |Controller 0 pin 3/Paddle 1 Trigger ------------' | ||
| |Controller 0 pin 2/Paddle 0 Trigger --------------' ||
| |Controller 0 pin 1 ---------------------------------'|
| | BIT 15 14 13 12 11 10 9 8|
| |Controller 1 pin 14 ------------' | | | | | | ||
| |Controller 1 pin 13 ----------------' | | | | | ||
| |Controller 1 pin 12 -------------------' | | | | ||
| |Controller 1 pin 11 ----------------------' | | | ||
| |Controller 0 pin 14 -------------------------' | | ||
| |Controller 0 pin 13 ----------------------------' | ||
| |Controller 0 pin 12 ------------------------------' ||
| |Controller 0 pin 11 --------------------------------'|
$FF9210|word |X Paddle 0 Position BIT 7 6 5 4 3 2 1 0|R
$FF9212|word |Y Paddle 0 Position BIT 7 6 5 4 3 2 1 0|R
$FF9214|word |X Paddle 1 Position BIT 7 6 5 4 3 2 1 0|R
$FF9216|word |Y Paddle 1 Position BIT 7 6 5 4 3 2 1 0|R
$FF9220|word |Lightpen X-Position BIT 9 8 7 6 5 4 3 2 1 0|R
$FF9222|word |Lightpen Y-Position BIT 9 8 7 6 5 4 3 2 1 0|R
-------+-----+-----------------------------------------------------+----------
===Falcon VIDEL Palette Registers ===
-------+-----+-----------------------------------------------------+----------
| | BIT 33222222 22221111 11111198 76543210|
| | 10987654 32109876 543210 |
| | RRRRRr.. GGGGGg.. ........ BBBBBb..|
$FF9800|long |Palette Register 0 Lowercase = LSB|R/W
: | : | : : : | :
$FF9BFC|long |Palette Register 255 |R/W
-------+-----+-----------------------------------------------------+----------
===Falcon DSP Host Interface ===
-------+-----+-----------------------------------------------------+----------
$FFA200|byte |Interrupt Ctrl Register BIT 7 6 5 4 3 . 1 0|R/W
X:$FFE9| |INIT bit -----------------------------' | | | | | ||
| |00 - Interupt mode (DMA off) -----------+-+ | | | ||
| |01 - 24-bit DMA mode -------------------+-+ | | | ||
| |10 - 16-bit DMA mode -------------------+-+ | | | ||
| |11 - 8-bit DMA mode --------------------+-' | | | ||
| |Host Flag 1 --------------------------------' | | ||
| |Host Flag 0 ----------------------------------' | ||
| | Host mode Data transfers: | ||
| | Interrupt mode | ||
| |00 - No interrupts (Polling) ---------------------+-+|
| |01 - RXDF Request (Interrupt) --------------------+-+|
| |10 - TXDE Request (Interrupt) --------------------+-+|
| |11 - RXDF and TXDE Request (Interrupts) ----------+-+|
| | DMA Mode | ||
| |00 - No DMA --------------------------------------+-+|
| |01 - DSP to Host Request (RX) --------------------+-+|
| |10 - Host to DSP Request (TX) --------------------+-+|
| |11 - Undefined (Illegal) -------------------------+-'|
$FFA201|byte |Command Vector Register BIT 7 . . 4 3 2 1 0|R/W
X:$FFE9| |Host Command Bit (Handshake)----------' | | | | ||
| |Host Vector (0-31) -------------------------+-+-+-+-'|
$FFA202|byte |Interrupt Status Reg BIT 7 6 . 4 3 2 1 0|R
X:$FFE8| |ISR Host Request ---------------------' | | | | | ||
| |ISR DMA Status -------------------------' | | | | ||
| |Host Flag 3 --------------------------------' | | | ||
| |Host Flag 2 ----------------------------------' | | ||
| |ISR Transmitter Ready (TRDY) -------------------' | ||
| |ISR Transmit Data Register Empty (TXDE) ----------' ||
| |ISR Receive Data Register Full (RXDF) --------------'|
$FFA203|byte |Interrupt Vector Register |R/W
$FFA204|byte |Unused |
$FFA205|byte |DSP-Word High |R/W
X:$FFEB| | |
$FFA206|byte |DSP-Word Mid |R/W
X:$FFEB| | |
$FFA207|byte |DSP-Word Low |R/W
X:$FFEB| | |
-------+-----+-----------------------------------------------------+----------
===MFP 68901 - Multi Function Peripheral Chip ===
| | |
| | MFP Master Clock is 2,457,600 cycles/second |
-------+-----+-----------------------------------------------------+----------
$FFFA01|byte |Parallel Port Data Register |R/W
-------+-----+-----------------------------------------------------+----------
$FFFA03|byte |Active Edge Register BIT 7 6 5 4 3 2 1 0|R/W
| | | | | | | | | ||
| |IO7 - SND INT ------------------------' | | | | | | ||
| |IO6 - RS-232 RING Indicator ------------' | | | | | ||
| |IO5 - FDC & HDC & IDE INT ----------------' | | | | ||
| |IO4 - Keyboard & MIDI INT ------------------' | | | ||
| |IO3 - DSP INT --------------------------------' | | ||
| |IO2 - MIDI INT ---------------------------------' | ||
| |IO1 - Centronics ACK -----------------------------' ||
| |IO0 - Centronics BUSY ------------------------------'|
| +-----------------------------------------------------+
| | When port bits are used for input only: |
| |0 - Interrupt on pin high-low conversion |
| |1 - Interrupt on pin low-high conversion |
-------+-----+-----------------------------------------------------+----------
$FFFA05|byte |Data Direction BIT 7 6 5 4 3 2 1 0|R/W
| |0 - In, 1 - Out ----------------------+-+-+-+-+-+-+-'|
-------+-----+-----------------------------------------------------+----------
$FFFA07|byte |Interrupt Enable A BIT 7 6 5 4 3 2 1 0|R/W
$FFFA0B|byte |Interrupt Pending A BIT 7 6 5 4 3 2 1 0|R/W
$FFFA0F|byte |Interrupt In-service A BIT 7 6 5 4 3 2 1 0|R/W
$FFFA13|byte |Interrupt Mask A BIT 7 6 5 4 3 2 1 0|R/W
| |MFP Address | | | | | | | ||
| |$13C SND INT -----------------------' | | | | | | ||
| |$138 RS-232 Ring Detector ------------' | | | | | ||
| |$134 (STE sound) Timer A --------------' | | | | ||
| |$130 Receive buffer full ----------------' | | | ||
| |$12C Receive error ------------------' | | ||
| |$128 Send buffer empty --------------------' | ||
| |$124 Send error ----------------------' ||
| |$120 (HBL) Timer B ------------------------'|
| |1 - Enable Interrupt 0 - Disable Interrupt|
-------+-----+-----------------------------------------------------+----------
$FFFA09|byte |Interrupt Enable B BIT 7 6 5 4 3 2 1 0|R/W
$FFFA0D|byte |Interrupt Pending B BIT 7 6 5 4 3 2 1 0|R/W
$FFFA11|byte |Interrupt In-service B BIT 7 6 5 4 3 2 1 0|R/W
$FFFA15|byte |Interrupt Mask B BIT 7 6 5 4 3 2 1 0|R/W
| |MFP Address | | | | | | | ||
| |$11C FDC/HDC/IDE INT ----------' | | | | | | ||
| |$118 Keyboard/MIDI INT ------------' | | | | | ||
| |$114 (200hz clock) Timer C --------------' | | | | ||
| |$110 (USART timer) Timer D ----------------' | | | ||
| |$10C DSP Connector INT ------------------' | | ||
| |$108 MIDI INT --------------------' | ||
| |$104 Centronics ACK ----------------------' ||
| |$100 Centronics BUSY ------------------------'|
| |1 - Enable Interrupt 0 - Disable Interrupt|
-------+-----+-----------------------------------------------------+----------
$FFFA17|byte |Vector Register BIT 7 6 5 4 3 . . .|R/W
| |Vector Base Offset -------------------+-+-+-' | |
| |1 - *Software End-interrupt mode -------------+ |
| |0 - Automatic End-interrupt mode -------------' |
| |* - Default operating mode |
-------+-----+-----------------------------------------------------+----------
$FFFA19|byte |Timer A Control BIT 4 3 2 1 0|R/W
$FFFA1B|byte |Timer B Control BIT 4 3 2 1 0|R/W
| |Reset (force output low) -------------------' | | | ||
| +----------------------------------------------+-+-+-++
| |0000 - Timer stop, no function executed |
| |0001 - Delay mode, divide by 4 |
| |0010 - : : 10 |
| |0011 - : : 16 |
| |0100 - : : 50 |
| |0101 - : : 64 |
| |0110 - : : 100 |
| |0111 - Delay mode, divide by 200 |
| |1000 - Event count mode |
| |1xxx - Pulse extension mode, divide as above |
| +-----------------------------------------------------+
$FFFA1F|byte |Timer A Data |R/W
$FFFA21|byte |Timer B Data |R/W
-------+-----+-----------------------------------------------------+----------
$FFFA1D|byte |Timer C & D Control BIT 6 5 4 . 2 1 0|R/W
| | Timer Timer|
| | C D |
| +-----------------------------------------------------+
| |000 - Timer stop |
| |001 - Delay mode, divide by 4 |
| |010 - : : 10 |
| |011 - : : 16 |
| |100 - : : 50 |
| |101 - : : 64 |
| |110 - : : 100 |
| |111 - Delay mode, divide by 200 |
| +-----------------------------------------------------+
$FFFA23|byte |Timer C Data |R/W
$FFFA25|byte |Timer D Data |R/W
-------+-----+-----------------------------------------------------+----------
$FFFA27|byte |Sync Character |R/W
$FFFA29|byte |USART Control BIT 7 6 5 4 3 2 1 .|R/W
| |Clock divide (1 - div by 16) ---------' | | | | | | ||
| |Word Length 00 - 8 bits ----------------+-+ | | | | ||
| | 01 - 7 bits ----------------+-+ | | | | ||
| | 10 - 6 bits ----------------+-+ | | | | ||
| | 11 - 5 bits ----------------+-' | | | | ||
| |Bits Stop Start Format | | | | ||
| |00 0 0 Synchronous ----------------+-+ | | ||
| |01 1 1 Asynchronous ---------------+-+ | | ||
| |10 1 1.5 Asynchronous ---------------+-+ | | ||
| |11 1 2 Asynchronous ---------------+-' | | ||
| |Parity (0 - ignore parity bit) -----------------' | ||
| |Parity (0 - odd parity,1 - even) -----------------' ||
| |Unused ---------------------------------------------'|
$FFFA2B|byte |Receiver Status BIT 7 6 5 4 3 2 1 0|R/W
| |Buffer full --------------------------' | | | | | | ||
| |Overrun error --------------------------' | | | | | ||
| |Parity error -----------------------------' | | | | ||
| |Frame error --------------------------------' | | | ||
| |Found - Search/Break detected ----------------' | | ||
| |Match/Character in progress --------------------' | ||
| |Synchronous strip enable -------------------------' ||
| |Receiver enable bit --------------------------------'|
$FFFA2D|byte |Transmitter Status BIT 7 6 5 4 3 2 1 0|R/W
| |Buffer empty -------------------------' | | | | | | ||
| |Underrun error -------------------------' | | | | | ||
| |Auto turnaround --------------------------' | | | | ||
| |End of transmission ------------------------' | | | ||
| |Break ----------------------------------------' | | ||
| |High bit ---------------------------------------' | ||
| |Low bit ------------------------------------------' ||
| |Transmitter enable ---------------------------------'|
$FFFA2F|byte |USART data |R/W/
-------+-----+-----------------------------------------------------+----------
===6850 ACIA I/O Chips ===
-------+-----+-----------------------------------------------------+----------
$FFFC00|byte |Keyboard ACIA control BIT 7 6 5 4 3 2 1 0|W
| |Rx Int enable (1 - enable) -----------' | | | | | | ||
| |Tx Interrupts | | | | | | ||
| |00 - RTS low, Tx int disable -----------+-+ | | | | ||
| |01 - RTS low, Tx int enable ------------+-+ | | | | ||
| |10 - RTS high, Tx int disable ----------+-+ | | | | ||
| |11 - RTS low, Tx int disable, | | | | | | ||
| | Tx a break onto data out ----------+-' | | | | ||
| |Settings | | | | ||
| |000 - 7 bit, even, 2 stop bit --------------+-+-+ | ||
| |001 - 7 bit, odd, 2 stop bit ---------------+-+-+ | ||
| |010 - 7 bit, even, 1 stop bit --------------+-+-+ | ||
| |011 - 7 bit, odd, 1 stop bit ---------------+-+-+ | ||
| |100 - 8 bit, 2 stop bit --------------------+-+-+ | ||
| |101 - 8 bit, 1 stop bit --------------------+-+-+ | ||
| |110 - 8 bit, even, 1 stop bit --------------+-+-+ | ||
| |111 - 8 bit, odd, 1 stop bit ---------------+-+-' | ||
| |Clock divide | ||
| |00 - Normal --------------------------------------+-+|
| |01 - Div by 16 -----------------------------------+-+|
| |10 - Div by 64 -----------------------------------+-+|
| |11 - Master reset --------------------------------+-'|
$FFFC00|byte |Keyboard ACIA control BIT 7 6 5 4 3 2 1 0|R
| |Interrupt request --------------------' | | | | | | ||
| |Parity error ---------------------------' | | | | | ||
| |Rx overrun -------------------------------' | | | | ||
| |Framing error ------------------------------' | | | ||
| |CTS ------------------------------------------' | | ||
| |DCD --------------------------------------------' | ||
| |Tx data register empty ---------------------------' ||
| |Rx data register full ------------------------------'|
$FFFC02|byte |Keyboard ACIA data |R/W
$FFFC04|byte |MIDI ACIA control BIT 7 6 5 4 3 2 1 0|W
| |Rx Int enable (1 - enable) -----------' | | | | | | ||
| |Tx Interrupts | | | | | | ||
| |00 - RTS low, Tx int disable -----------+-+ | | | | ||
| |01 - RTS low, Tx int enable ------------+-+ | | | | ||
| |10 - RTS high, Tx int disable ----------+-+ | | | | ||
| |11 - RTS low, Tx int disable, | | | | | | ||
| | Tx a break onto data out ----------+-' | | | | ||
| |Settings | | | | ||
| |000 - 7 bit, even, 2 stop bit --------------+-+-+ | ||
| |001 - 7 bit, odd, 2 stop bit ---------------+-+-+ | ||
| |010 - 7 bit, even, 1 stop bit --------------+-+-+ | ||
| |011 - 7 bit, odd, 1 stop bit ---------------+-+-+ | ||
| |100 - 8 bit, 2 stop bit --------------------+-+-+ | ||
| |101 - 8 bit, 1 stop bit --------------------+-+-+ | ||
| |110 - 8 bit, even, 1 stop bit --------------+-+-+ | ||
| |111 - 8 bit, odd, 1 stop bit ---------------+-+-' | ||
| |Clock divide | ||
| |00 - Normal --------------------------------------+-+|
| |01 - Div by 16 -----------------------------------+-+|
| |10 - Div by 64 -----------------------------------+-+|
| |11 - Master reset --------------------------------+-'|
$FFFC04|byte |MIDI ACIA control BIT 7 6 5 4 3 2 1 0|R
| |Interrupt request --------------------' | | | | | | ||
| |Parity error ---------------------------' | | | | | ||
| |Rx overrun -------------------------------' | | | | ||
| |Framing error ------------------------------' | | | ||
| |CTS ------------------------------------------' | | ||
| |DCD --------------------------------------------' | ||
| |Tx data register empty ---------------------------' ||
| |Rx data register full ------------------------------'|
$FFFC06|byte |MIDI ACIA data |R/W
-------+-----+-----------------------------------------------------+----------
$FFF00000 |CT60 Registers (SEE CHG for details) |W
: | |
$FFFBFFFF | |
-------+-----+-----------------------------------------------------+----------
Cookie Jar
Atari CT60 Cookies
Cookie Description
-------+----------------------------------------------------------------------
_CPU | CPU Type Bit 7 6 5 4 3 2 1 0
| Processor type is represented in decimal in the lowest byte.
| (0 = 68000, 40 = 68040, 60 = 68060)
-------+----------------------------------------------------------------------
_VDO | Video Type BIT 17 16
| Shifter Type | |
| 00 - ST ---------------------------------------------------------+--+
| 01 - STe --------------------------------------------------------+--+
| 10 - TT ---------------------------------------------------------+--+
| 11 - Falcon030 --------------------------------------------------+--'
-------+----------------------------------------------------------------------
_FDC | Floppy Drive Controller BIT 25 24 . 23-0
| Floppy Format | | |
| 00 - DD (Normal floppy interface) ------------------------+--+ |
| 01 - HD (1.44 MB with 3.5") ------------------------------+--+ |
| 10 - ED (2.88 MB with 3.5") ------------------------------+--' |
| Controller ID |
| 0 - No information available |
| 'ATC' - Fully compatible interface built in a way that -------------+
| behaves like part of the system. |
| 'DP1' - "DreamPark Development", all ID's beginning with -----------'
| "DP" are reserved for Dreampark.
-------+----------------------------------------------------------------------
_SND | Sound Hardware BIT 5 4 3 2 1 0
| CodeC (??) -----------------------------------------------' | | | | |
| Connection Matrix ------------------------------------------' | | | |
| DSP56001 -----------------------------------------------------' | | |
| 16 Bit DMA Sound -----------------------------------------------' | |
| 8 Bit DMA Sound --------------------------------------------------' |
| YM2149 -------------------------------------------------------------'
-------+----------------------------------------------------------------------
_MCH | Machine Type BIT 17 16
| 00 - ST/Mega ST -------------------------------------------------+--+
| 01 - STe & Compatible Machines (See Below) ----------------------+--+
| 10 - TT ---------------------------------------------------------+--+
| 11 - Falcon030 --------------------------------------------------+--'
| STe & Compatible Machines BIT 5 4 3 2 1 0
| 00000 - STe ----------------------------------------------+-+-+-+-+-+
| 00001 - ST Book ------------------------------------------+-+-+-+-+-+
| 10000 - Mega STe -----------------------------------------+-+-+-+-+-'
-------+----------------------------------------------------------------------
_SWI | Configuration Switches
| State of configuration switches
-------+----------------------------------------------------------------------
_FRB | Fast Ram Buffer
| 64k buffer for SDMA transfers to FAST-RAM (32-bit address space)
| 0 - no buffers assigned Not 0 - address of FastRam buffer
-------+----------------------------------------------------------------------
XFRB | Xentended Fast Ram Buffer
| Buffer for DMA transfers to FAST-RAM (32-bit address space)
| Address of a pointer to an XFRB structure :
| WORD version : BCD format (0101 for example)
| BYTE *xflock : semaphore
| BYTE *buffer : pointer to the buffer
| LONG size : size (64KB for example)
| XFRB *next : pointeur to the next structure (0 for example)
-------+----------------------------------------------------------------------
_FPU | FPU Type
| Software FPU BIT 20 19 18 17 16
| 68060's internal FPU ----------------------------' | | | |
| 68040's internal FPU -------------------------------' | | |
| 01 - 6888x present ------------------------------------+--+ |
| 10 - 68881 for sure -----------------------------------+--+ |
| 11 - 68882 for sure -----------------------------------+--' |
| SFP004 present ----------------------------------------------'
|
| Hardware FPU BIT 27 26 25 24
| 68040's internal FPU -------------------------------' | | |
| 01 - 6888x present ------------------------------------+--+ |
| 10 - 68881 for sure -----------------------------------+--+ |
| 11 - 68882 for sure -----------------------------------+--' |
| SFP004 present ----------------------------------------------'
|
-------+----------------------------------------------------------------------
_AKP | Keyboard/Language Configuration
| Keyboard Configuration Bit 15-8
| 1 - German 5 - Italian -------------------------------------------+
| 2 - French 7 - Swiss French --------------------------------------+
| 4 - Spanish 8 - Swiss German --------------------------------------+
| All others - English -----------------------------------------------'
| Language Configuration BIT 7-0
| 1 - German 5 - Italian -------------------------------------------+
| 2 - French 7 - Swiss French --------------------------------------+
| 4 - Spanish 8 - Swiss German --------------------------------------+
| All others - English -----------------------------------------------'
-------+----------------------------------------------------------------------
_IDT | International Date/Time Format
| Time Format BIT 12
| 0 - AM/PM, 1 - 24 hours --------------------------------------------+
| Date Format BIT 9 8
| 00 - MMDDYY ------------------------------------------------------+-+
| 01 - DDMMYY ------------------------------------------------------+-+
| 10 - YYMMDD ------------------------------------------------------+-+
| 11 - YYDDMM ------------------------------------------------------+-'
| Separator for date BIT 7-0
| ASCII Value (i.e. "." or "/") --------------------------------------'
-------+----------------------------------------------------------------------
MiNT | MiNT
| Present if MiNT/MultiTOS is active. Value represents the version
| number of the MiNT kernel in hex (0x104 = 1.04)
-------+----------------------------------------------------------------------
CT60 | CT60. Value is 0.
-------+----------------------------------------------------------------------