📄 tp1.s
字号:
/ tap1 -- dec-disk lod/dmp.globl _localtime, _endnamep = 0mode = 2uid = 4; gid = 5size0 = 7size1 = 8time0 = 10.time1 = 12.tapea = 14.dirsiz = 16.mdirent = 496. mov (sp),rnarg mov (sp)+,narg mov $cmr,command incb flu tst (sp)+ cmp narg,$2 bge 1f mov $2,narg br 3f1: mov (sp)+,r0 mov sp,parg1: movb (r0)+,r1 beq 3f mov $swtab,r22: cmp r1,(r2)+ beq 2f tst (r2)+ bne 2b br useerr2: jsr pc,*(r2)+ br 1b3: jsr pc,optap mov $_end,r4 / string pointer jsr pc,setb jmp *commandoptap: tstb flm bne 2f mov $578.,tapsiz mov $192.,ndirent sys open; tc; 2 br 3f2: mov $-1,tapsiz mov $mdirent,ndirent cmp command,$cmr beq 2f sys open; mt; 0 br 3f2: sys open; mt; 13: bes 1f mov r0,fio mov ndirent,r1 ash $-3,r1 mov r1,ndentd8 mov ndirent,r1 mul $dirsiz,r1 add $dir,r1 mov r1,edir rts pc1: jsr r5,mesg <Tape open error\n\0>; .even jmp donesetcom: cmp command,$cmr bne useerr mov (r5)+,command rts r5noflag: mov (r5)+,r0 beq 1f tstb (r0) beq noflag br useerr1: rts r5useerr: jsr r5,mesg <Bad usage\n\0>; .even jmp doneswtab: '0; dcof '1; dcof '2; dcof '3; dcof '4; dcof '5; dcof '6; dcof '7; dcof 'c; dcc 'd; dcd 'f; dcf 'i; dci 'm; dcm 'r; dcr 't; dct 'u; dcu 'v; dcv 'w; dcw 'x; dcx 0; 0dcof: movb r1,tcx movb r1,mtx rts pcdcc: incb flc rts pcdcf: incb flf rts pcdcd: jsr r5,setcom; cmd rts pcdci: incb fli rts pcdcm: incb flm rts pcdcu: incb flu jsr r5,setcom; cmr rts pcdcr: clrb flu jsr r5,setcom; cmr rts pcdct: jsr r5,setcom; cmt rts pcdcv: incb flv rts pcdcw: incb flw rts pcdcx: jsr r5,setcom; cmx rts pccmd: jsr r5,noflag; flm; flc; flf; 0 cmp narg,$2 bgt 1f jmp useerr1: jsr pc,rddir jsr r5,gettape; delete jsr pc,wrdir br checkcmr: jsr r5,noflag; 0 tstb flc bne 1f tstb flm bne 1f jsr pc,rddir br 2f1: jsr pc,clrdir2: jsr pc,getfiles jsr pc,update br checkcmt: jsr r5,noflag; flc; flf; flw; 0 jsr pc,rddir tstb flv beq 1f jsr r5,mesg < mode uid gid tapa size date time name\n\0>; .even1: jsr r5,gettape; taboc br check1cmx: jsr r5,noflag; flc; flf; 0 jsr pc,rddir jsr r5,gettape; xtract br donecheck:check1: jsr pc,usagedone: jsr r5,mesg <END\n\0>; .even sys exitencode: mov r2,-(sp) mov r4,(r1) mov (r5)+,r21: movb (r2),(r4)+ jsr pc,setb tstb (r2)+ bne 1b mov (sp)+,r2 rts r5decode: mov r2,-(sp) mov r1,-(sp) mov (r1),r1 mov (r5)+,r21: movb (r1)+,(r2)+ bne 1b mov (sp)+,r1 mov (sp)+,r2 rts r5setb: mov r0,-(sp) mov r4,r0 add $513.,r0 cmp r0,sp bhis 2f bic $777,r0 cmp r0,0f beq 1f mov r0,0f sys break; 0:.. bes 2f1: mov (sp)+,r0 rts pc2: jsr r5,mesg <Out of core\n\0>; .even jmp done
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -