MODULE F167_1; (* 2. Stufe des Bootstraploaders fuer den ST10F167, soll im XRAM laufen. Liest die ersten 32 kB des Flashs aus und sendet diese an den PC. *) PROCEDURE* DoIt; VAR seg, adr, w, i: WORD; BEGIN seg := 0; adr := 0; READ(i); (* warte auf Startzeichen *) FOR i := 0 TO $3FFF DO w := GET(adr, seg); SWAP(w); WRITE(w:c); adr := adr + 2; END; END DoIt; BEGIN S0TBUF := 82; (* Melde "R" *) (* Stack auf 2 kB Laenge, damit er verschoben werden kann *) SYSCON := $E004; (* XRAM bleibt enabled *) DUMMIJMP; DPP0 := 0; DPP1 := 1; DPP2 := 2; DPP3 := 3; (* Datapointer initialisert *) STKUN := $FE00; (* Stackunderflowregister *) STKOV := $FA00; (* Stackoverflowregister *) SP := $FE00; (* Ende des IRAMs *) CP := $F600; (* Start des IRAMs *) EINIT; DoIt; REPEAT SLEEP; UNTIL 1 = 2; END F167_1.