| Cedar.bermuda |
| 22-Oct-87  2:04:34 |

| 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  [6, 0]! 053C ← 00; |		| prebootSwitches: with 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];
| UnbreakIOP  [D40E];				DisplayInit+C |

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];
| UnbreakIOP  [F92];				StartRam |

SetDataType  [byte];
	| IOP  [10, 0]! 875D ← 90; |		| Don't start the cmos display handler (cmosDisplayStartMe)|
	| IOP  [11, 0]! 875E ← 90; |		| Put 4 Noop's starting from cmosDisplayStartMe (cmosDisplayStartMe+1)|
	| IOP  [12, 0]! 875F ← 90; |		| This should wipe out PUSH CS (cmosDisplayStartMe+2)|
	| IOP  [13, 0]! 8760 ← 90; |		| Call cmosDisplayInit (cmosDisplayStartMe+3)|

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

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];
	| Load  [DaybreakMesaBank0, 0];
	LoadMore  [DaybreakMesaBank1, 1]; |
	| Break  [ControlTrap];	|
	| Break  [StackErr];	|
	| Break  [XXXX];	|
	| LoadGerm  [Dove.germ]; |
	| Break  [XFER];	|

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 ← 2C;	| 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];

| begin emulator stuff |

CP  [12, 2]! uSDAddr ← 240;		| 1100'b ugh! |
CP  [ A, 1]! TT ← 240;			| uSDAddr  (corrected) |
CP  [13, 2]! Q;
CP  [1A, 1]! u200 ← 200; | uAVAddr |
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 |

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

Break  ["EFCHaveLink+2"];
Break  [@LFC5];
Break  [@LI1];
Start  [LastChance, LastChance, 0];

|eof...|