{File name: MultiBankStartMesa.mc Last Edited by : Makoto Udagawa 25-Feb-85 11:23:56 Delete MCtl set routine. Makoto Udagawa 22-Feb-85 15:35:52 Add MCtl set routine{+++}. Makoto Udagawa 20-Feb-85 14:46:37 Comment out "Reserve[1,7F];". Makoto Udagawa 29-Jan-85 15:38:12 Modify for smalltalk. murage.pa 1-Feb-84 17:12:57 Fix for MultiBank machine. Amy Fasnacht: 30-Nov-83 14:06:28 Move rhTT out of conditional assembly Amy Fasnacht: 10-Nov-83 16:57:40 Change comments only Amy Fasnacht: 31-Aug-83 9:32:08 Move the IOPage for larger VM Daniels: 24-Jun-83 17:25:54 Get xtFC0 from Mesa.df Amy Fasnacht: June 29, 1982 9:00 AM Add PCtl _ 11 for LSEP Amy Fasnacht: April 27, 1982 11:25 AM Add TCtl _ 1 for mag tape Amy Fasnacht: April 23, 1982 1:40 PM Add assembly configs for MagTapeMesa Johnsson: December 28, 1981 3:53 PM Floppy boot MDS 0 Sandman November 13, 1981 2:33 PM New instruction set Last Edited by Jim Frandeen: November 3, 1981 2:20 PM: change Display CSB for smooth scrolling. Init uWP and uPCCross in InitDLion. Last Edited: By Ev. Neely October 9, 1981 3:56 PM Added Trident Init under switch. Description: Mesa Emulator initialization, Author: R. Johnsson} {Reserve[1,7F];} {Reserve[800,801];for smalltalk} Reserve[0F6F]; Reserve[0F6F]; Reserve[0F78]; Reserve[0F7F,0FFF]; {Kernel} {Assembly Configs: Config# File 0 Mesa.db 1 RavenMesa.db 2 TridentMesa.db 3 TridentRavenMesa.db 4 MagTapeMesa.db 5 TridentMagTapeMesa.db} { - - - - begin - - - -} Set[MyLabel1,0F79]; Set[MyLabel2,0F7A]; Set[MyLabel3,0F7B]; {SetTask[0]; StartAddress[Germ]; MyFix - jmm 24-Oct-83 11:34:06} Noop, c1, at[MyLabel1]; Noop, c2, at[MyLabel2]; Noop, c3, at[MyLabel3]; { - - - - end - - - -} {Normal boot starts at Germ, Floppy boot starts at Germ+1} Germ: TOS _ 0, rhMDS _ 0, CANCELBR[SetMDS,0F], c1, at[Add[GermRumHookup,0]];{for smalltalk} TOS _ 0, rhMDS _ 0, CANCELBR[SetMDS,0F], c1, at[Add[GermRumHookup,1]];{for smalltalk} {Start at Go for Burdock loaded bootfile without germ} Go: TOS _ 2, rhMDS _ 2, CANCELBR[SetMDS,0F], c1; SetMDS: UvMDS _ TOS, c2; IOPCtl _ IOPInMode, c3; uWP _ 0, ClrIntErr, c1; IfGreater[Config, 3, SkipTo[MagTape], ]; IfEqual[Config, 3, SkipTo[Printer], ]; IfEqual[Config, 1, SkipTo[Printer], ]; L _ 41, c2; DCtl _ L LRot0, c3; Noop, c1; L _ 11, c2; PCtl _ L LRot0, c3; SkipTo[DisplayOrPrinterOrMagTape]; Printer! DCtl _ 2, c2; PCtl _ 3, c3; SkipTo[DisplayOrPrinterOrMagTape]; MagTape! DCtl _ 2, c2; TCtl _ 1, c3; DisplayOrPrinterOrMagTape! MoreInit: UvG _ TOS _ 0, c1; UBrkByte _ 0, c2; TT _ uIOPage, c3; rhTT _ IOPageHigh, c1; Noop, c2; Noop, c3; {set all keys up; 2003D thru 20043 _ -1} uXTS _ stackP _ 0, c1; T _ 0FF LShift1, SE _ 1, c2; Q _ 7, c3; KeyLoop: MAR _ [rhTT, IOPage.keyBitsm1+Q], BRANCH[$,KeyDone], c1; uTickCount _ MDR _ L xor ~L, CANCELBR[$,0], c2; Q _ Q - 1, ZeroBr, GOTO[KeyLoop], c3; KeyDone: IfGreater[Config, 1, , SkipTo[ShugartInit]]; IfEqual[Config, 4, SkipTo[ShugartInit],]; PC _ 0+0+1, CANCELBR[$,0], c2; {Trident} uWDC _ PC, c3; {Trident} RCnt _ 0F, c1; {Trident} KCtl _ RCnt LRot12, c2; {Trident} KCmd _ U0400, c3; {Trident} SkipTo[EitherDisk]; ShugartInit! KCtl _ 0, PC _ 0+0+1, CANCELBR[$,0], c2; {SAx000} uWDC _ PC, c3; {SAx000} EitherDisk! MAR _ [rhTT, IOPage.DSCB.fieldCmd+0], c1; MDR _ L{picture off, enable display request}, c2; T _ T + 3{@SD[sBoot]}, c3; LastChance: MAR _ [rhTT, IOPage.DSCB.syncCmd+0], c1; MDR _ L, rhT _ xtFC0 {picture off, enable display request}, c2; uDestLo _ T, YDisp, L _ 0, GOTO[XFER], c3;