📄 tboot.s
字号:
/ tape boot program to load and transfer/ to a 'tp' entry/ entry is made by jsr pc,*$0/ so return can be rts pc/ jsr pc,(r5) is putc/ jsr pc,2(r5) is getc/ jsr pc,4(r5) is mesgcore = 24..mt. = 0.. = [core*2048.]-512.start: mov $..,sp mov $name,r4 mov sp,r1 cmp pc,r1 bhis 2f clr r0 cmp (r0),$407 bne 1f mov $20,r01: mov (r0)+,(r1)+ cmp r1,$end blo 1b jmp (sp)2: jsr pc,rew mov $tvec,r5 mov $'=,r0 jsr pc,(r5)2: mov r4,r11: jsr pc,2(r5) cmp r0,$'\n beq 1f cmp r0,$'@ beq 2b movb r0,(r1)+ cmp r0,$'# bne 1b sub $2,r1 cmp r1,r4 blo 2b br 1b1: clrb (r1) cmp r1,r4 blos start mov $1,tapa mov $-6144.,wc jsr pc,taper clr r11: mov r1,r2 mov r4,r02: cmpb (r0)+,(r1) bne 2f tstb (r1)+ bne 2b br 1f2: mov r2,r1 add $64.,r1 cmp r1,$12288. blo 1b jsr pc,rew br start1: mov 44.(r2),tapa mov 38.(r2),r0 inc r0 clc ror r0 neg r0 mov r0,wc clr r01: clr (r0)+ cmp r0,sp blo 1b jsr pc,taper jsr pc,rew clr r0 cmp (r0),$407 / unix a.out? bne 2f1: mov 20(r0),(r0)+ cmp r0,sp blo 1b2: jsr pc,*$0 br start.if .mt.mts = 172520mtc = 172522mtbrc = 172524mtcma = 172526taper: clr mtma cmp mtapa,tapa beq 1f bhi 2f jsr pc,rrec br taper2: jsr pc,rew br taper1: mov wc,r11: jsr pc,rrec add $256.,r1 bmi 1b rts pcrrec: bit $2,*$mts bne rrec tstb *$mtc bge rrec mov $-512.,*$mtbrc mov mtma,*$mtcma mov $60003,*$mtc1: tstb *$mtc bge 1b tst *$mtc bge 1f mov $-1,*$mtbrc mov $60013,*$mtc br rrec1: add $512.,mtma inc mtapa rts pcrew: mov $60017,*$mtc clr mtapa rts pc.endif.if .mt.-1tcdt = 177350tccm = 177342taper: mov $tcdt,r0 mov $tccm,r1for: mov $3,(r1) / rbn for1: tstb (r1) bge 1b tst (r1) blt rev cmp tapa,(r0) beq rd bgt forrev: mov $4003,(r1) / rbn bac1: tstb (r1) bge 1b tst (r1) blt for mov (r0),r2 add $5,r2 cmp tapa,r2 blt rev br forrd: clr -(r0) / bus addr mov wc,-(r0) / wc mov $5,-(r0) / read1: tstb (r1) bge 1b tst (r1) blt taper rts pcrew: mov $4003,tccm rts pc.endiftvec: br putc br getc br mesgtks = 177560tkb = 177562getc: mov $tks,r0 inc (r0)1: tstb (r0) bge 1b mov tkb,r0 bic $!177,r0 cmp r0,$'A blo 1f cmp r0,$'Z bhi 1f add $40,r01: cmp r0,$'\r bne putc mov $'\n,r0tps = 177564tpb = 177566putc: tstb tps bge putc cmp r0,$'\n bne 1f mov $'\r,r0 jsr pc,(r5) mov $'\n+200,r0 jsr pc,(r5) clr r0 jsr pc,(r5) mov $'\n,r0 rts pc1: mov r0,tpb rts pcmesg: movb *(sp),r0 beq 1f jsr pc,(r5) inc (sp) br mesg1: add $2,(sp) bic $1,(sp) rts pcend:tapa: .=.+2mtapa: .=.+2mtma: .=.+2wc: .=.+2name: .=.+32.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -