📄 io2.s
字号:
/// io2 -- format cracker.globl iowf.globl iowp.globl iorfiowp: mov (sp)+,formp mov $6,r1 br 1fiowf: mov (sp)+,formp tst (sp)+ mov (sp)+,r11: jsr r5,setio; 2 / write clr rdflg br 1fiorf: mov (sp)+,formp tst (sp)+ mov (sp)+,r1 jsr r5,setio; 1 / read mov pc,rdflg1: clr binflg clr slcnt clr itmfnd clr scale clr itmflg mov $pbuf,ppar mov $-1,llpcnt jsr r5,fmtchr mov formp,llp cmp r0,$'( beq crack jsr r5,rerr; 106. sys exitcrack: clr ngflg mov $1,repitem: jsr r5,fmtchr cmp $' ,r0 beq item cmp $'\t,r0 beq item jsr r5,switch; mswitch jsr r5,rerr; 105. sys exitmswitch: 'a; afmt 'f; ffmt 'e; efmt 'g; gfmt 'd; dfmt 'i; ifmt 'l; lfmt 'h; hfmt 'x; xfmt 'p; scal '-; minus '0; numb '1; numb '2; numb '3; numb '4; numb '5; numb '6; numb '7; numb '8; numb '9; numb ',; crack '/; slash '(; lpar '); rpar '"; quote ' ; item 0; 0minus: jsr r5,gnum neg r0 br 1fnumb: dec formp jsr r5,gnum1: mov r0,rep br itemscal: mov rep,scale br crackelist: tst _nocr beq 1f tst rdflg bne 1f jsr r5,eorec1 br 2f1: jsr r5,eorec2: jmp *(r4)+slash: jsr r5,eorec br crackrpar: mov ppar,r0 cmp r0,$pbuf / see if outer parens blos 2f dec -2(r0) ble 1f / no repeats left mov -4(r0),formp / reset scan br crack1: sub $4,ppar br crack / pop parens2: jsr r5,getitm br elist tst itmfnd bne 1f jsr r5,rerr; 107. sys exit1: jsr r5,eorec inc itmflg mov llpcnt,r1 bpl 1f mov llp,formp jmp crack1: mov llp,r2 mov r2,formp mov ppar,r0 mov r2,(r0)+ mov r1,(r0)+ mov r0,ppar jbr crack1lpar: mov ppar,r0 cmp r0,$pbuf+10 blo 1f jsr r5,rerr; 108. sys exit1: mov formp,(r0)+ mov rep,(r0)+ mov r0,ppar cmp r0,$pbuf+4 bhi 1f mov formp,llp mov rep,llpcnt1: jmp crackquote: inc ngflg mov $44,-(sp) br 3fhfmt: inc ngflg mov $40,-(sp) br 3fxfmt: inc ngflg mov $34,-(sp) br 3fafmt: mov $30,-(sp) br 1fifmt: clr -(sp) br 1flfmt: mov $4,-(sp)1: jsr r5,gnum mov r0,width br 2fffmt: mov $10,-(sp) br 1fdfmt: mov $14,-(sp) br 1fgfmt: mov $20,-(sp) br 1fefmt: mov $24,-(sp)1: jsr r5,gnum mov r0,width4: jsr r5,fmtchr cmp r0,$' / beq 4b cmp r0,$'. bne err1 jsr r5,gnum mov r0,ndig2: inc itmfnd3: add $cvsw,(sp) tst rdflg beq 1f add $2,(sp)1: mov *(sp)+,-(sp)1: tst ngflg bne 2f jsr r5,getitm br 1f2: clr gflg jsr r5,*(sp) dec rep bgt 1b tst (sp)+ br crack11: tst (sp)+ jmp elistcvsw: iocv; iicv / 0 locv; licv / 4 focv; ficv / 10 docv; dicv / 14 gocv; gicv / 20 eocv; eicv / 24 aocv; aicv / 30 xocv; xicv / 34 hocv; hicv / 40 qocv; qicv / 44crack1: jmp crackerr1: jsr r5,rerr; 109. sys exit
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -