| Cedar.bermuda |
| 29-Oct-87 23:47:07 |

| DiskBoot.loc	18-May-87  8:56:16 PDT |
| MemDebug.loc	 2-Sep-87  9:48:18 PDT |
| RAMDebug.loc	 2-Sep-87  9:45:12 PDT |
| RAMSysB2.loc	25-Sep-87 17:38:43 PDT |

| CPDebug.bermuda |
| LoadIOPSymbols [DiskBoot]; |
| LoadIOPSymbols [RAMSysB2]; |
| LoadIOPSymbols [MemDebug]; |			| symbols for MesaDove.db |
| LoadIOPSymbols [RAMDebug]; |			| symbols for MesaDove.db |

BootIOP [];
SetDataType [word];
WriteIO [80,8000];
SetDataType [byte];
WriteIO [E018,5];
WriteIO [E01F,FF];
LoadIOPCodeOnly [RAMSysB2];
SetDataType [word];

IOP [1, 1]! 870C;				| loaderVirtualMemoryLocation ← 3E02|

IOP [6, 0]! 053C ← 4000;			| prebootSwitches: without PiggyBack Board |
IOP [7, 0]! CS ← C00;				| Get past burdock problems. |
IOP [8, 0]! IP ← 0;				| Get past burdock problems. |

BreakIOP [D40E];				| DisplayInit+C |
ContinueIOP [0];

IOP [3, 0]! DX ← FC00;				| Execute display handler from prom |

BreakIOP [C64A];				| get into DiskInitial (IOPE@Restart)|
ContinueIOP [0];
UnbreakIOP [C64A];				| IOPE@Restart |

BreakIOP [F92];					| StartRam |
ContinueIOP [0];

SetDataType [byte];

BreakIOP [95E4];				| DaybrkCP |
ContinueIOP [0];

IOP [9, 0]! 1734 ← 90;				| ZeroDownNotifyBits+26 |
IOP [0A, 0]! 1735 ← 90;				| Don't let MesaUpDn start the CP (ZeroDownNotifyBits+27)|
IOP [0B, 0]! 1736 ← 90;				| ZeroDownNotifyBits+28 |
IOP [0C, 0]! 1737 ← 90;				| ZeroDownNotifyBits+29 |
IOP [0D, 0]! 1738 ← 90;				| ZeroDownNotifyBits+2A |

BreakIOP [C8D7];				| SystemLoop |
ContinueIOP [0];
UnbreakIOP [C8D7];				| SystemLoop |

Boot [];
LoadNoSymbols [DaybreakInit, 0];		| run initialization code |

Break [4];
Start [0, 0, 0];
UnBreak [4];

Load [Cedar0, 0];
LoadMore [Cedar1, 1];

BreakIOP [E671];				| EndError+7 |
ContinueIOP [0];				| Get past all initialization |
UnbreakIOP [E671];				| EndError+7 |

	| Start [BootTrap, BootTrap, 0]; |
	| CP [0C, 2] ! .mv 3A0 ← 72E;
	CP [0C, 2] ! .mv 3A1 ← 0;
	CP [0C, 2] ! .mv 3A2 ← 6;
	CP [0C, 2] ! .mv 3A3 ← 0;
	CP [0C, 2] ! .mv 3A4 ← 0;
	CP [0C, 2] ! .mv 3A5 ← AA00;
	CP [0C, 2] ! .mv 3A6 ← 0828;
	CP [0C, 2] ! .mv 3A7 ← 0;
	CP [0C, 2] ! .mv 3A8 ← 0;
	CP [0C, 2] ! .mv 3A9 ← FFFF;
	CP [0C, 2] ! .mv 3AA ← FFFF;
	CP [0C, 2] ! .mv 3AB ← FFFF;
	CP [0C, 2] ! .mv 3AC ← A;
	CP [0C, 2] ! .mv 3AD ← E53; |

	| CP [0, 0]! UvGhigh;	|
CP [1, 0]! rhG;
CP [2, 0]! rhMDS;
CP [3, 0]! rhL;
CP [4, 0]! UvChigh;
CP [5, 0]! rhPC;
CP [6, 0]! .ib;
CP [7, 0]! .ibPtr;
CP [9, 0]! rhT;
CP [A, 0]! rhTT;
CP [B, 0]! rhRx;

CP[0, 1]! UvG;
CP[1, 1]! G;
CP[2, 1]! UvL;
CP[3, 1]! L;
CP[4, 1]! UvC;
CP[5, 1]! PC;
CP[6, 1]! UvPCpage;
CP[7, 1]! .pc16;
	| CP[8, 1]! uGFI;	|
CP[9, 1]! T;
CP[A, 1]! TT;
CP[B, 1]! Rx;

CP[0, 2]! TOS;
CP[1, 2]! uStack9;
CP[2, 2]! uStack8;
CP[3, 2]! uStack7;
CP[4, 2]! uStack6;
CP[5, 2]! uStack5;
CP[6, 2]! uStack4;
CP[7, 2]! uStack3;
CP[8, 2]! uStack2;
CP[9, 2]! .stackP;

| special germ mumbo-jumbo |

CP [10, 2]! transferCount ← 30;	| pages in the germ (approx) |
CP [11, 2]! topPage ← 1B80;		| 4MB == magic! (first vacant page) |

CP [10, 0]! rBrh;
CP [11, 0]! rCrh;
CP [12, 0]! rDrh;
CP [13, 0]! rErh;

CP [10, 1]! rB;
CP [11, 1]! rC;
CP [12, 1]! rD;
CP [13, 1]! rE;

CP [16, 0]! .map 3e02;
CP [17, 0]! .map 200;
CP [18, 0]! .map 1b53;
CP [1A, 0]! .mr 48000;

CP [16, 1]! .map 1;

CP [16, 2]! .map 1b7f;
CP [17, 2]! .map 1b52;

Break [looper];
Start [mapGerm, mapGerm, 0];
UnBreak[looper];

CP [13, 1]! rE ← 3e03;			| shift germ by one page |

CP [16, 0]! .map 3e02 ← 8004;		| swap this special(?) page |
CP [17, 0]! .map 200 ← d31f;		| swap this special(?) page |
CP [18, 0]! .map 1b53 ← 60;		| swap this special(?) page |
CP [1B, 0]! .mv 3e0200;

Break [vswapdone];
Continue[0];
UnBreak[vswapdone];

| set request stuff |

CP [1E, 0]! .mv 3e02f0;		| action ← 0 |
CP [1F, 0]! .mv 3e02f1 ← 5;		| device ← 5 |
CP [20, 0]! .mv 3e02f2;		| ordinal ← 0 |
CP [21, 0]! .mv 3e02f3 ← A80;		| bootfile ← A80 (5200'b) |
CP [22, 0]! .mv 3e02f4;		| net ← 0 |
CP [23, 0]! .mv 3e02f5;		| host ← 0 |

| begin emulator stuff |

CP[9, 2]! .stackP;			| ← 0 |
CP[C, 2]! uXTS;			| ← 0 |

CP [12, 2]! uSDAddr;			| ← 240 (1100'b ugh!) |
CP [ A, 1]! TT;			| ← uSDAddr (240) (corrected) |
CP [13, 2]! Q;
CP [1A, 1]! u200;			| uAVAddr ← 200 |
CP [1B, 1]! u7FF;			| ← 7FF |
CP [1C, 1]! u1FFF;			| ← 1FFF |
CP [1D, 1]! u3FFF;			| ← 3FFF |
CP [1E, 1]! u8000;			| ← 8000 |

CP [1A, 2]! uPMask;			| ← 0FFC |
CP [1B, 2]! uPMask2;			| ← 0FFC |
CP [1C, 2]! uPPMask;			| ← 7000 |
CP [1D, 2]! uStickyReg;		| ← 0 |
CP [1E, 2]! rhT;			| 1 = xtFC0 |

CP [1F, 2]! Usource ← 1234;		| dummy |
CP [20, 2]! Udest;			| dummy |
CP [21, 2]! uFrame;			| dummy |

Break [LastChance];
Start [Germ, Germ, 0];
UnBreak[LastChance];

	| BreakIOP [C92B];		SYSTEMLOOP |
BreakIOP [C92B];			| SYSTEMIDLE |
ContinueIOP [0];			| process i/o requests |

| a bunch of gf/lf/ev stuff |

|***
CP [25, 0]! .mv 3e07f8;
CP [26, 0]! .mv 3e07f9;
CP [27, 0]! .mr 0485fa;

CP [2a, 0]! .mr 0485e8;

CP [24, 1]! .mv 3e0307;
CP [25, 1]! .mr 048107;

CP [27, 1]! .mv 3e0b68;
CP [28, 1]! .mv 3e0b69;

CP [2a, 1]! .mr 048068;
CP [2b, 1]! .mr 048069;

CP [24, 2]! .map 3e03;
CP [26, 2]! .map 3e07;
CP [28, 2]! .map 3e0b;
***|

|***
Break ["EFCHaveLink+2"];
Continue[0];
UnBreak ["EFCHaveLink+2"];

Break [@GMF];
Continue[0];
UnBreak [@GMF];

Break [@SFC];
Continue[0];

Continue[0];

Continue[0];
UnBreak [@SFC];

Break ["LoadGC+1"];
Continue[0];
UnBreak ["LoadGC+1"];

Break [LoadGChigh];
Continue[0];
UnBreak [LoadGChigh];

Break [SetTrapParm];
Continue[0];
UnBreak [SetTrapParm];

Break [XTrap];
Continue[0];
UnBreak [XTrap];

Break ["TrapLMap+1"];
Continue[0];
UnBreak ["TrapLMap+1"];

Break ["TrapGo+1"];
Continue[0];
UnBreak ["TrapGo+1"];

Break [EFCHaveLink];
Continue[0];
UnBreak [EFCHaveLink];

Break [XferProc];
Continue[0];
UnBreak [XferProc];

*** standard xfer stuff here ***

Break [MInt0];
Break [MInt1];
Break [IntReturns];
Break [ReadAndClearIOPBits];
Break [DQgh];
***|

Break [aMicVersion];
Continue[0];
UnBreak [aMicVersion];

Break [@NOTIFYIOP];
Continue[0];
UnBreak [@NOTIFYIOP];

ContinueIOP [0];			| process i/o requests |

|***
	Break [@JZNEB];
	Break [@DADD];
	Break [@DST];
	Break [@EFC6];
	Break [@FREE];
	Break [@LFC5];
	Break [@LI1];
	Break [@MISC];
	Break [@NILCKL];
	Break [@RET];
***|

|eof...|