Lisa Boot ROM RM248.E.TEXT
Lisa Boot ROM RM248.E.TEXT
Lisa · 1983 · TEXT
| Filename | Lisa_Boot_ROM_RM248.E.TEXT |
|---|---|
| Size | 0.08 MB |
| Year | 1983 |
| Subsection | firmware |
| Downloads | 2 |
Enjoying MacTrove?
Anonymous downloads are free and unlimited.
Create a free account to track favorites,
contribute metadata corrections, and join the
community chat.
Contents
.NOLIST ;===============================================================================; ; ; ; LL II SSSSSSS AAA ; ; LL II SS AA AA ; ; LL II SSSSSSS AAAAAAA ; ; LL II SS AA AA ; ; LLLLLLL II SSSSSSS AA AA ; ; ; ; ; ; BBBBBB OOOOO OOOOO TTTTTTTT RRRRRR OOOOO MMM MMM ; ; BB BB OO OO OO OO TT RR RR OO OO MM M M MM ; ; BBBBBB OO OO OO OO TT RRRRRR OO OO MM M MM ; ; BB BB OO OO OO OO TT RR RR OO OO MM MM ; ; BBBBBB OOOOO OOOOO TT RR RR OOOOO MM MM ; ; ; ; ; ; Copyright 1983, 1984 Apple Computer Inc. ; ; Revision 2H ; ; ; ;===============================================================================; ; ; Filename: RMXXX.Y.TEXT, XXX = ROM VERSION # (e.g., 200 for 2.00) ; Y = E (equates) ; = K (kernel tests) ; = S (secondary tests) ; = B (bootstrap code) ; = M (monitor code) ; = G (graphics, icon and message display) ; ; Function: Initializes LISA system for use and performs preliminary ; diagnostic checks. If all tests pass, the system then ; does a keyboard scan to check for user input. If any key ; is hit other than caps lock or the mouse button, ; a menu is displayed on the screen showing the available ; boot devices. If a valid COMMAND key sequence is detected, ; a boot from an alternate device is attempted (see below). ; If no keyboard input is detected, the system first checks ; parameter memory for a valid boot device and, if none, defaults ; to booting from a Profile attached to the builtin parallel port ; for Lisa 1 systems. ; ; For Lisa 2 systems, a check is first made to verify a disk ; (internal or external) is connected before defaulting to the ; hard disk boot. If no disk is detected, the system defaults ; to booting from the floppy drive. ; ; ; ; Inputs: Checks for keyboard input from the user. Currently, the following ; key sequences are honored if input after the system "clicks" the ; speaker (CMD refers to the Apple key on the keyboard): ; ; CMD/1 - boot from Twiggy drive #1 or integral hard disk ; CMD/2 - boot from Twiggy drive #2 or SONY drive ; CMD/3 - boot from Profile attached to parallel port or integral hard disk ; CMD/4 - boot from I/O slot #1, port 1 ; CMD/5 - boot from I/O slot #1, port 2 ; CMD/6 - boot from I/O slot #2, port 1 ; CMD/7 - boot from I/O slot #2, port 2 ; CMD/8 - boot from I/O slot #3, port 1 ; CMD/9 - boot from I/O slot #3, port 2 ; CMD/ENTER (on key pad) - abort boot, branch to ROM monitor ; CMD/SHIFT/P - abort boot, do power cycling ; ; OUTPUTS: Saves various results and contents of system registers in memory ; for examination by system programs or with the ROM monitor. ; ; $180-183 : Power-up status (x0000000 = ok) ; $184-185 : Memory sizing error results ; $186-1A5 : Results of memory read/write tests ; $1A6-1A9 : Parity error memory address (if error during mem test) ; $1AA-1AB : Memory error address latch ; $1AC-1AF : D7 save on exception errors ; $1B0-1B1 : Results of MMU tests (context/data bits) ; $1B2 : Keyboard ID (00 = no ID received) ; $1B3 : Boot device ID ; $1B4-1B9 : Boot failure data ; $1BA-1BF : Clock setting (Ey,dd,dh,hm,ms,st) ; $1C0-1DF : Data reg save area (D0 - D7) ; $1E0-1FF : Address reg save area (A0 - A7, A7 = USP) ; $240-260 : System serial # ; $260-267 : Scratch area ; $268-26B : Suspected (logical) memory error address for parity error ; $26C-26F : Save of data written to suspected error address ; $270-273 : Actual (logical) error address found during search ; $274-277 : Save of data read during parity error search ; $278-27B : (Physical) error address read from parity error address latch ; $27C : Error row for parity chip failure (0 = first row, 7 = last row) ; $27D : Error column for parity chip failure (9 or 14) ; $27E-280 : Reserved ; $280-293 : Exception data save area ; (FC/EXCADR/IR/SR/PC/EXCTYPE/SSP) ; 44 = NMI or other interrupt ; 45 = bus error ; 46 = address error ; 47 = other exception/interrupt ; 48 = illegal instruction error ; 49 = line 1010 or 1111 trap ; 50 = bus error accessing keyboard VIA ; 51 = bus error accessing parallel port VIA ; 57 = bus error accessing disk controller ; $294-297 : Maximum physical memory address + 1 ; $298-299 : I/O slot 1 card id (0 = no card present) ; $29A-29B : I/O slot 2 card id ; $29C-29D : I/O slot 3 card id ; $29E : Reserved ; $29F : Reserved ; $2A0 : Reserved ; $2A1 : Disk ROM id ; $2A2-2A3 : Reserved ; $2A4-2A7 : Minimum physical address ; $2A8-2AB : Total memory (Max-Min) ; $2AC : SCC test results ; $2AD : Slot # of memory board if memory error ; $2AE : Result of disk controller self-test ; $2AF : System type (0 = Lisa 1, 1 = Lisa 2, 2 = Lisa 2 with external hard disk, ; 3 = Lisa 2 with internal hard disk) ; $2B0-2BF : Keyboard queue (16 bytes) ; $2C0-480 : ROM scratchpad/stack area ; $480-800 : Reserved for ROM local variable usage ; ; Also saves data in special parameter memory area reserved for boot ROM use if error ; encountered. Usage is as follows: ; ; $FCC161 : Error code ; $FCC163-165 : Contents of memory error address latch if parity error ; $FCC167 : Memory board slot # if memory error ; $FCC169-173 : Last value read from clock ; $FCC175-17B : Reserved ; $FCC17D-17F : Checksum ; ; ; Originator: Rich Castro 7/30/81 - Version 0.0 released to manufacturing ; ; Modified by: Rich Castro 7/30 - 11/3/81 - Made the following changes: ; 1) Twiggy bootstrap capability ; 2) Initial COPS test and keyboard scan ; 3) Moved parallel card to slot 2 ; 4) Changed ROM interrupt/exception vectors, ; 5) Created jump table for ROM routines ; ; 11/3/81 - Version 0.7 released to the world ; ; 11/4/81 - 1/15/82 - Made the following changes: ; 1) Added support for new memory cards ; 2) Added warm-start capability and jump ; table for ROM subroutine usage ; 3) Modified MMU reset routine to support ; single step board usage ; 4) Added full memory initialization ; 5) Added 256K memory parity test ; 6) Modified COPS initialization so that ; keyboard commands can be sensed more ; reliably ; 7) Added error code display routines and ; display of CPU and IO ROM versions ; 8) Added preliminary disk controller test ; 9) Updated warm-start check ; 10) Modified disk interface test ; 11) Changed low memory assignments ; 12) Made corrections for no I/O board, disk ; interface error and contrast setting ; 13) Modified memory sizing routine to ; catch memory errors ; 14) Modify MMU test to avoid context 0 ; destruction, add contrast setting for ; new machines, correct disk error and ; CPU ROM messages ; 15) Move stack so old memory test still runs ; ; 1/15/82 - Release version 0.16 ; 1/18/82 - Fix stack problem and release vrsn 0.17 ; 1/19/82 - Change stack for call routine and version ; to 0.18 ; 1/27/82 - Change MMU error routine to do address ; and data line toggling ; 1/28/82 - Add video circuitry test ; 1/30/82 - Add write wrong parity test ; 1/31/82 - Move run time stack to $180 ; 2/6/82 - Add Profile bootstrap with upgrade for ; OS use (add jump table entries also) ; 2/15/82 - Update Twiggy bootstrap and add entry ; for OS use; also add MMU test to ; conditional assembly and add context ; saving to MMUTST2 routine ; 2/17/82 - Add correction to memory test for ; reboot problem and leave parity on ; 2/24/82 - Add code for clock test and special ; burn-in cycling ; 2/25/82 - Add code to simulate soft on switch ; pressed for COPS problem ; 3/1/82 - Removed all changes since ROM 0.18 ; release except for parity enabling, ; no reset feature, memory sizing change ; and Profile booting ; 3/1/82 - Restore default stack ptr loc to $300 ; 3/1/82 - Move default stack to $0400, restore ; everything except MMU testing ; 3/4/82 - Add MMU initialization and modify ; Twiggy, Profile boot routines for new ; load point ; 3/10/82 - Add change for new I/O addresses and ; fix for Twiggy routine ; 3/10/82 - Change contrast value for new I/O's ; 3/15/82 - Add correction for Profile and COPS ; routines and display msg when booting ; 3/17/82 - Restore version # at end of file ; 3/18/82 - Release version 0.22 ; ; 4/5/82 - Make initial 2732 version (1.00); add ; following changes: ; 1) correct MMU error routine bug ; 2) change stack for CALL to $0400 ; 3) add parity disable to WWP routine ; 4) change MMU I/O space code to '9' ; 5) add invalid boot code message ; 4/6/82 - Add speaker click after COPS check ; 4/7/82 - Add jump table entry for speaker ; routine, 1 second delay before "click" ; and alpha lock key check ; ; 4/8/82 - Release version 1.00 ; ; 5/5/82 - Add I/O slot configuration check and ; I/O slot booting. Also add change to ; Profile read routine for PCR setting. ; 5/12/82 - Add burnin power-cycling routine as ; boot option invoked by CMD/P. ; 5/13/82 - Add changes for COPS command timing, ; Twiggy timeout, Twiggy booting, and ; add power-cycling routine. ; 5/14/82 - Add fixes for booting via parameter ; memory and COPS timing experiment. ; 5/17/82 - Add display of loop count and run time, ; and alter parameter memory useage for ; power-cycling option. ; 5/18/82 - Add display of Twiggy errors, change ; COPS routine for precheck code. ; 5/20/82 - Add contrast reset for "warm start", ; add cycle value display, restore COPS ; timeout code. ; ; 5/21/82 - Release version 1.02 ; ; 5/26/82 - Begin addition of ROM monitor; set ; default to Apple if PM = 00. ; 6/1/82 - Make following changes: ; 1) Memory sizing retry count to 64 ; 2) Save results on memory sizing errors ; 3) Update NMI routine to check for parity ; errors. ; 4) Restore default NMI vector after ; memory test. ; 5) Create read clock subroutine and call ; when doing clock display. ; 6) Add boot fix to save device id. ; 6/1/82 - Change to new sizing algorithm and retry ; count back to 32. ; 6/3/82 - Convert to version 1.03 ; 6/3/82 - Made following changes: ; 1)Localize message display to TSTCHK ; 2)Do clear screen only in INITVCT and ; in TSTCHK and second monitor level. ; 3)Change default video page to last. ; 4)Complete first edition of monitor. ; 6/7/82 - Modify monitor level2 user interface. ; 6/10/82 - Made following changes: ; 1)Add boot from Apple as CMD/A. ; 2)Clear screen and display only in ; routine TSTCHK. ; 3)Add ROM checksum error bit. ; 4)Add exception error check to TSTCHK. ; 5)Add speaker click just before ; keyboard scan. ; 6)Reset to first video page for boot ; from Apple. ; 7)Merge in changes from 1.03 file. ; 8)Add parity error check to TSTCHK ; 9)Change power-cycling so that double ; bus fault used to restart diags ; 6/11/82 - Made following changes: ; 1)Increase Twiggy timeout to 2 mins. ; 2)Add 5 sec delay in power-cycle mode ; before shutting down. ; ; 6/14/82 - Release version 1.04 ; ; 6/22/82 - Add loop after COPS test if error ; since keyboard not accessible. Also add ; fix for NMI restore after memory test. ; 6/30/82 - Made following changes: ; 1)Add parameter memory and I/O boot ; checksum routines. ; 2)Remove boot id save to parameter ; memory, except for power-cycle. ; 3)Change to new boot device id's. ; 7/1/82 - 1)Add changes for new Twiggy firmware. ; 2)Add fixes for bugs in 1.04: ; a)Add row setting before error display ; to avoid writing over menu line. ; b)Set device codes for Profile and ; I/O slots to allow display if error. ; c)Enable setting of timeout for Twiggy ; reads. ; d)Save error codes for I/O boot in ; memory. ; e)Add option of clearing memory in ; INITMON routine. ; 7/7/82 - Made following changes: ; 1)Modify checksum routines ; 2)Add keyboard/mouse check/reset code ; 7/13/82 - Add speed parameter for new Twiggy code ; 7/14/82 - Add check for DSKDIAG in disk test, ; change to new Twiggy error codes ; 7/15/82 - Made following changes: ; 1)Add Profile routine updates. ; 2)Restore old boot id codes - new ones ; used only when new Twiggy code ; released. ; 3)Upgrade burnin code for new parameter ; memory usage. ; 4)Attempt to enable keyboard after MMU ; errors. ; 5)Remove I/O boot checksum code until ; conversion to new Twiggy code. ; 6)Add video pattern display code.. ; 7)Remove characters from table and ; make other changes to save bytes. ; 8)Upgrade service mode display option ; to handle count up to $FFFF. ; ; 7/16/82 - Create version 1.05 ; 7/19/82 - Add bug fixes for MMU testing, power- ; cycle memory testing, Profile boot ; and service mode display option. ; ; 7/19/82 - Create version 1.06 ; 7/20/82 - Add fix for MMU testing to properly ; record context in error ; ; 7/20/82 - Release version 1.07 ; ; 7/21/82 - Make keyboard/mouse reset code changes ; and move check to before first "click" ; 7/23/82 - Add extended memory tests ; 7/27/82 - Add screen memory test and VIA tests. ; Change default boot for new Twiggy code ; to upper Twiggy. Add conditionals for ; Apple code. ; 7/29/82 - Add SCC test, optimize code. ; 7/30/82 - Add RAM address uniqueness test. ; 8/4/82 - Added the following: ; 1)Twiggy mods for interleave ; 2)Monitor options CONTINUE and LOOP ; 3)Exception routine for line 1111 and ; line 1010 errors. ; 8/9/82 - Add Twiggy mod for disk clamp, add mods ; for kernel test failures such as screen ; flash on MMU error. ; 8/11/82 - Add memory sizing fix, increase delay ; for COPS and change default boot to ; TWIGGY!! ; 8/12/82 - Begin code changes for new user interface ; and add hooks for icon display. ; 8/14/82 - Add mods for Twiggy changes to monitor ; DSKDIAG line and add initial timeout. ; Continue user interface changes. ; 8/18/82 - Add mouse, cursor code and changes for ; Customer mode to use mouse. ; 8/23/82 - Add controls for 2716 version of ROM. ; Add changes for Service mode to use ; pull down menu, eliminate keyboard ; queuing while awaiting input. ; 8/24/82 - Add dialog box, and window to service ; mode with modified scroll and character ; output routines. ; 8/25/82 - Add icons along with routines to display ; during test and for errors. ; 8/27/82 - Add routines for displaying and using ; boot icon menu. ; 8/30/82 - Add auto boot from Applenet. ; 8/31/82 - Add minor additions to Service mode ; for Set and Loop options. ; ; 8/31/82 - Create and do internal release of ; 2716 (0.24), 2732 (1.15) and 2764 (2.00) ; ROM versions. ; ; 9/8/82 - Add fixes for I/O slot icon display ; and Profile icon display. ; 9/9/82 - Add fix for reboot problem in 2716 ROM. ; Add serial # read routine and test for ; 2732 and 2764 ROM versions. Expand ; stack for serial read routine. ; 9/10/82 - Add fix for device code display for ROM ; versions 0.24 and 1.15. ; ; 9/10/82 - Create and do internal release of new ; ROM versions 0.25, 1.16 and 2.01. ; ; 9/13/82 - Add fixes for memory sizing and I/O ; slot booting. ; ; 9/14/82 - Create and release ROM versions 0.26, ; 1.17 and 2.02. ; ; 9/22/82 - Add fixes and code for: ; 1)Default video latch setting ; 2)Mask for I/O and exception errors ; 3)Message display on external calls ; to ROM monitor ; 4)Contrast setting before screen test ; 5)Disable of NMI key on power-up ; 6)Boot failure after first load ; 7)Error tones for failures ; 8)Loop mode setting of NMI key ; 9/23/82 - Add ; 1)Power cycling ; 2)Full service mode menu ; 3)Loop mode test choice display ; 9/24/82 - Add dump memory option to service mode ; 9/25/82 - Modify display memory option to allow ; count and address data on same line ; 9/29/82 - Add jump table entry for READMMU ; 9/30/82 - Add: ; 1)"No reset" feature ; 2)Verify Disk option for service mode ; 3)Optimize cursor routines and ; remove unused CursorShield routine. ; 4)Invert rectangles when selected from ; keyboard. ; 5)Display boot menu only if down keycode ; detected. ; 10/5/82 - Add: ; 1)Memory error decoding to board level ; 2)New size and position for alert box ; 3)New test icon display ; 4)Diskette # for Twiggy errors ; 10/6/82 - Add: ; 1)Continue keyboard scan after COPS ; errors ; 2)Set extended memory test bit for ; loop on memory test option ; 3)Display I/O slot card # on errors ; 4)Change boot menu to "pull-down" format ; 5)Change to new icons ; 10/7/82 - Add: ; 1)SCC test ; 2)Error if no serial # (allow continue) ; 3)Two passes of memory tests for extended ; mode, one for regular mode ; 10/9/82 - Create version 2.03 ; 10/10/82 - Add bug fixes and I/O slot ROM check in ; config scan. ; ; 10/12/82 - Create and release version 2.04. ; ; 10/13/82 - Make following changes: ; 1)Add keyboard reset code ; 2)Remove SCC test ; 3)Add bug fixes for making alert box ; and displaying bad keyboard ; 10/14/82 - Add display of check marks for test icons ; 10/18/82 - Add fixes for…
Showing first 20,000 characters of 85,415 total. Open the full document →