1
0
mirror of https://github.com/PDP-10/its.git synced 2026-02-12 02:57:06 +00:00

Block loader for TT2500.

The 2500 bootstrap ROM expects to receive a block loader first, which
will run and recieve the actual payload which is the microcode and
font data divided into blocks.
This commit is contained in:
Lars Brinkhoff
2021-01-15 09:39:59 +01:00
parent 8ba88ad174
commit 96fccc355a
3 changed files with 76 additions and 1 deletions

74
src/danny/loader.24 Normal file
View File

@@ -0,0 +1,74 @@
(SETQ LOADER '(
(CALL 0 WD)
(CALL 1 ADR)
(CALL 2 CNT)
(CALL 3 CHK)
(CALL 4 TYP)
(CALL 124 OK-CHR)
(CALL 106 LOOSE-CHR)
START (GET WD IN & RESET TTY)
(SUB WD WD)
WAIT-FLAG (PUSHJ CHR-IN)
(GET WD WD & TO SEE IT)
(BMC WAIT-FLAG & WAIT FOR FLAG)
(SUB CHK CHK)
(PUSHJ GET-WD)
(GET TYP WD)
(BEQ EXECUTE & TYPE 0 IS EXECUTE)
(PUSHJ GET-WD)
(GET ADR WD & START ADDRESS)
(GET XR ADR)
(PUSHJ GET-WD)
(GET CNT WD & NUMBER OF WORDS)
(DEC TYP)
(BEQ CRM-LOOP & TYPE 1 IS LOAD CRM)
(DEC TYP)
(BEQ MEM-LOOP & TYPE 2 IS LOAD MEM)
(JUMP LOOSE)
MEM-LOOP (PUSHJ GET-WD)
(IWRITE ADR WD)
(DEC CNT)
(BPL CRM-LOOP)
(JUMP END)
EXECUTE (PUSHJ GET-WD)
(LOD 7)
(JUMP-PLACE)
(GET XR 7)
(LCM WD)
JUMP-PLACE (0 & WORD TO BE EXECUTED IS PUT HERE)
(JUMP END)
CRM-LOOP (PUSHJ GET-WD)
(LCM WD)
(DEC CNT)
(BPL CRM-LOOP)
END (PUSHJ GET-WD)
(GET CHK CHK & LOOK AT CHECK SUM)
(BNE LOOSE)
(LOD 7)
(OK-CHR)
CONFIRM (PUT 7 UART)
(NOP 7 & UARTS ARE SLOW)
(NOP 7 & VERY SLOW)
(JUMP START)
GET-WD (PUSHJ CHR-IN)
(PUSHJ CHR-IN)
(PUSHJ CHR-IN)
(PUSHJ CHR-IN)
(ADD CHK WD)
(POPJ)
CHR-IN (DIS INT2 1 0)
(JUMP CHR-IN)
(GET 5 IN)
(ANDI WD WD )
(7777)
(ROT WD WD 14)
(ANDI 5 5 )
(17)
(IOR WD 5)
(POPJ)
LOOSE (LOD 7)
(LOOSE-CHR)
(JUMP CONFIRM)
))