Known memory locations, etc.

Al Kossow aek at bitsavers.org
Tue Jun 15 10:21:41 PDT 2010


On 6/14/10 1:18 PM, Al Kossow wrote:
> On 6/14/10 11:29 AM, Philip Prindeville wrote:
>> Anyone have a list of well-known memory locations?
>

If you have the BCPL development disk, you should have this already.


// AltoDefs.d - Definitions of places and things peculiar to Altos
// Last modified January 22, 1979  12:28 AM by Boggs

manifest
[
// page 1
displayListHead = 420b
displayInterrupt = 421b
mouseX = 424b
mouseY = 425b
cursorX = 426b
cursorY = 427b
realTimeClock = 430b
cursorBitMap = 431b	// through 450b
wakeupsWaiting = 452b
activeInterrupts = 453b
maskTable = 460b
interruptPC = 500b
interruptVector = 501b	// through 520b
diskCommand = 521b
diskStatus = 522b
diskAddress = 523b
trapPC = 527b
trapVector = 530b	// through 567b
timeParams = 570b	// through 577b

// page 376
utilOut = 177016b
XBus = 177020b		// through 177023b (Alto II only)
MEAR = 177024b		// Memory Error Address Register (Alto II only)
MESR = 177025b		// Memory Error Status Register (Alto II only)
MECR = 177026b		// Memory Error Control Register (Alto II only)
utilIn = 177030b	// through 177033b
kbdAd = 177034b		// through 177037b

// page 377
EIAOut = 177700b
EIAIn = 177701b
bankRegs = 177740b	// through 177757 (Alto II only)
]

//----------------------------------------------------------------------------
structure UtilIn:	// format of UtilIn word (177030b)
//----------------------------------------------------------------------------
[
blank bit 6
memConfig bit		// 0 = normal; 1 = alternate
blank bit
keyset bit 5 =		// 0 = depressed
    [
    ks0 bit		// left most
    ks1 bit
    ks2 bit
    ks3 bit
    ks4 bit		// right most
    ]
mouse bit 3 =		// 0 = depressed
    [
    red bit		// top or left button
    blue bit		// bottom or right button
    yellow bit		// middle button
    ]
]

//----------------------------------------------------------------------------
structure LTP:		// Local Time Parameters
//----------------------------------------------------------------------------
[
sign bit 1		// Zero if west of Greenwich, one if east
zoneH bit 4		// Local time zone in hours from Greenwich
blank bit 2
beginDST bit 9		// Day of year on or before which DST starts
blank bit 1
zoneM bit 6		// Additional minutes of local time zone
endDST bit 9		// Day of year on or before which DST ends
]

//----------------------------------------------------------------------------
structure VERS:		// format of value returned by VERS instruction
//----------------------------------------------------------------------------
[
eng bit 4		// 0 or 1 => Alto I; 2 => Alto II; 3 => Alto II XM
build bit 4
microcode bit 8
]

//----------------------------------------------------------------------------
structure BBT:		// BitBlt Table
//----------------------------------------------------------------------------
[
function word =
    [
    blank bit 10		// must be zero
    sBank bit		// source is in alternate bank
    dBank bit		// destination is in alternate bank
    sType bit 2		// source type
    op bit 2		// operation
    ]
blank word		// unused (software stashes AC2 here)
dbca word		// destination bitmap core address
dbmr word		// destination bitmap raster
dlx word		// destination left X coordinate
dty word		// destination top Y coordinate
dw word			// destination block width
dh word			// destination block height
sbca word		// source bitmap core address
sbmr word		// source bitmap raster
slx word		// source left X
sty word		// source top y
gray^0,3 word		// gray block
]
manifest lBBT = size BBT/16

//----------------------------------------------------------------------------
structure DCB:		// Display Control Block
//----------------------------------------------------------------------------
[
next word		// -> next DCB; 0 if last
parwd word =
    [
    resolution bit 1	// 0 = high; 1 = low
    background bit 1	// 0 = white; 1 = black
    indwidth bit 14 =
       [
       indentation bit 6	// indent 16*indentation bits on the left
       width bit 8	// in words; must be even; zero is OK
       ]
    ]
bitmap word		// -> bit map; must be even
height word		// scan lines = 2*height (height in each field)
]
manifest lDCB = size DCB/16




More information about the Altogether-devel mailing list