407. 1726 0 0. 0. 0 0 0 / _ after an operator name means discard/don't push on stack / nbrt0 040000: 012703 mov $177304,r3 040002: 177304 040004: 010600 mov sp,r0 040006: 011646 mov (sp),-(sp) 040010: 005720 tst (r0)+ 040012: 010066 mov r0,2(sp) 040014: 000002 040016: 016746 mov _main,-(sp) 040020: 000016 040022: 012705 mov $1f,r5 040024: 040030 040026: 000135 jmp *(r5)+ 1: 040030: 041600 call_; 0 040032: 000000 040034: 040036 .+2 040036: 104401 sys exit / echo _main: 040040: 040042 .+2 L1: 040042: 041460 va; 4 040044: 000004 040046: 041350 --b 040050: 041504 c; 1 040052: 000001 040054: 041130 >= 040056: 041666 f; L2 040060: 040112 040062: 041460 va; 6 040064: 000006 040066: 041330 ++w 040070: 041264 *wp 040072: 041504 c; str 040074: 040130 040076: 041500 x; printf 040100: 040244 040102: 041600 call_; 4 040104: 000004 040106: 041662 t; L1 040110: 040042 L2: 040112: 041504 c; 12 040114: 000012 040116: 041500 x; putchar 040120: 040744 040122: 041600 call_ 040124: 000002 040126: 041630 return str: 040130: 071445 <%s \0> 040132: 000040 / lib printn: 040134: 040136 .+2 040136: 041640 setstk; 4 040140: 000004 040142: 041460 va; -4 040144: 177774 040146: 041450 a; 4 040150: 000004 040152: 041450 a; 6 040154: 000006 040156: 041244 / 040160: 041032 = 040162: 041666 f; L3 040164: 040206 040166: 041450 a; 6 040170: 000006 040172: 041450 a; -4 040174: 177774 040176: 041500 x; printn 040200: 040134 040202: 041600 call_; 4 040204: 000004 L3: 040206: 041450 a; 4 040210: 000004 040212: 041450 a; 6 040214: 000006 040216: 041216 % 040220: 041504 c; '0 040222: 000060 040224: 041206 + 040226: 041500 x; putchar 040230: 040744 040232: 041600 call_ 040234: 000002 040236: 041640 setstk; 2 040240: 000002 040242: 041630 return printf: 040244: 040246 .+2 040246: 041640 setstk; 12 040250: 000012 040252: 041460 va; -6 040254: 177772 040256: 041460 va; 6 040260: 000006 040262: 041026 =_ loop: 040264: 041640 setstk; 12 040266: 000012 L6: 040270: 041460 va; -12 040272: 177766 040274: 041460 va; 4 040276: 000004 040300: 041404 b++ 040302: 041270 *bp 040304: 041032 = 040306: 041504 c; '% 040310: 000045 040312: 041100 != 040314: 041666 f; L4 040316: 040360 040320: 041450 a; -12 040322: 177766 040324: 041504 c; 0 040326: 000000 040330: 041070 == 040332: 041666 f; L5 040334: 040340 040336: 041630 return L5: 040340: 041450 a; -12 040342: 177766 040344: 041500 x; putchar 040346: 040744 040350: 041600 call_ 040352: 000002 040354: 041662 t; L6 040356: 040270 L4: 040360: 041460 va; -10 040362: 177770 040364: 041460 va; -6 040366: 177772 040370: 041414 w++ 040372: 041264 *wp 040374: 041026 =_ 040376: 041460 va; -12 040400: 177766 040402: 041460 va; 4 040404: 000004 040406: 041404 b++ 040410: 041270 *bp 040412: 041032 = 040414: 041700 sw; L9 040416: 040652 case_do: 040420: 041450 a; -10 040422: 177770 040424: 041504 c; 0 040426: 000000 040430: 041120 > 040432: 041666 f; L10 040434: 040466 040436: 041460 va; -10 040440: 177770 040442: 041450 a; -10 040444: 177770 040446: 041260 neg 040450: 041026 =_ 040452: 041504 c; '- 040454: 000055 040456: 041500 x; putchar 040460: 040744 040462: 041600 call_ 040464: 000002 L10: 040466: 041450 a; -12 040470: 177766 040472: 041504 c; 'o 040474: 000157 040476: 041070 == 040500: 041666 f; L11 040502: 040514 040504: 041504 c; 10 040506: 000010 040510: 041662 t; L12 040512: 040520 L11: 040514: 041504 c; 12 040516: 000012 L12: 040520: 041450 a; -10 040522: 177770 040524: 041500 x; printn 040526: 040134 040530: 041600 call_ 040532: 000004 040534: 041500 x; st_loop 040536: 040742 040540: 041634 goto case_c: 040542: 041450 a; -10 040544: 177770 040546: 041500 x; putchar 040550: 040744 040552: 041600 call_ 040554: 000002 040556: 041500 x; st_loop 040560: 040742 040562: 041634 goto case_s: 040564: 041460 va; -4 040566: 177774 040570: 041450 a; -10 040572: 177770 040574: 041026 =_ L8: 040576: 041460 va; -12 040600: 177766 040602: 041460 va; -4 040604: 177774 040606: 041404 b++ 040610: 041270 *bp 040612: 041032 = 040614: 041666 f; L7 040616: 040640 040620: 041450 a; -12 040622: 177766 040624: 041500 x; putchar 040626: 040744 040630: 041600 call_ 040632: 000002 040634: 041662 t; L8 040636: 040576 L7: 040640: 041500 x; st_loop 040642: 040742 040644: 041634 goto 040646: 041662 t; 1f 040650: 040676 L9: 040652: 000144 040654: 040420 case_do 040656: 000157 040660: 040420 case_do 040662: 000143 040664: 040542 case_c 040666: 000163 040670: 040564 case_s 040672: 000000 040674: 000000 1: 040676: 041504 c; '% 040700: 000045 040702: 041500 x; putchar 040704: 040744 040706: 041600 call_ 040710: 000002 040712: 041460 va; 4 040714: 000004 040716: 041360 b--_ 040720: 041460 va; -6 040722: 177772 040724: 041376 w--_ 040726: 041500 x; st_loop 040730: 040742 040732: 041634 goto 040734: 041640 setstk; 2 040736: 000002 040740: 041630 return st_loop: 040742: 040264 putchar: 040744: 040746 .+2 040746: 040750 .+2 040750: 016467 mov 4(r4),41022 040752: 000004 040754: 000044 040756: 016700 mov 41024,r0 040760: 000042 040762: 105767 tstb 41023 040764: 000035 040766: 001404 beq 41000 040770: 104404 trap 4 040772: 041022 bic (r0),(r2)+ 040774: 000002 rti r0,r2 040776: 000403 br 41006 041000: 104404 trap 4 041002: 041022 bic (r0),(r2)+ 041004: 000001 wait r0,r1 041006: 016700 mov 41022,r0 041010: 000010 041012: 000207 rts pc 041014: 041016 .+2 041016: 041020 .+2 041020: 000207 rts pc 041022: 000000 halt r0,r0 041024: 000001 wait r0,r1 / threaded code / =_ 041026: 012636 mov (sp)+,*(sp)+ 041030: 000135 jmp *(r5)+ / = 041032: 012600 mov (sp)+,r0 041034: 010036 mov r0,*(sp)+ 041036: 010046 mov r0,-(sp) 041040: 000135 jmp *(r5)+ / b=_ 041042: 112636 movb (sp)+,*(sp)+ 041044: 000135 jmp *(r5)+ / b= 041046: 012600 mov (sp)+,r0 041050: 110036 movb r0,*(sp)+ 041052: 010046 mov r0,-(sp) 041054: 000135 jmp *(r5)+ / | 041056: 052616 bis (sp)+,(sp) 041060: 000135 jmp *(r5)+ / & 041062: 005116 com (sp) 041064: 042616 bic (sp)+,(sp) 041066: 000135 jmp *(r5)+ / relationals 041070: 022626 cmp (sp)+,(sp)+ 041072: 001426 beq 1f 041074: 005046 clr -(sp) 041076: 000135 jmp *(r5)+ 041100: 022626 cmp (sp)+,(sp)+ 041102: 001022 bne 1f 041104: 005046 clr -(sp) 041106: 000135 jmp *(r5)+ 041110: 022626 cmp (sp)+,(sp)+ 041112: 002016 bge 1f 041114: 005046 clr -(sp) 041116: 000135 jmp *(r5)+ 041120: 022626 cmp (sp)+,(sp)+ 041122: 003012 bgt 1f 041124: 005046 clr -(sp) 041126: 000135 jmp *(r5)+ 041130: 022626 cmp (sp)+,(sp)+ 041132: 003406 ble 1f 041134: 005046 clr -(sp) 041136: 000135 jmp *(r5)+ 041140: 022626 cmp (sp)+,(sp)+ 041142: 002402 blt 1f 041144: 005046 clr -(sp) 041146: 000135 jmp *(r5)+ 1: 041150: 012746 mov $1,-(sp) 041152: 000001 041154: 000135 jmp *(r5)+ / >> 041156: 016643 mov 2(sp),-(r3) 041160: 000002 041162: 162667 sub (sp)+,177314 041164: 136126 041166: 012316 mov (r3)+,(sp) 041170: 000135 jmp *(r5)+ / << 041172: 016613 mov 2(sp),(r3) 041174: 000002 041176: 012667 mov (sp)+,177314 041200: 136112 041202: 011316 mov (r3),(sp) 041204: 000135 jmp *(r5)+ / + 041206: 062616 add (sp)+,(sp) 041210: 000135 jmp *(r5)+ / - 041212: 162616 sub (sp)+,(sp) 041214: 000135 jmp *(r5)+ / % 041216: 016613 mov 2(sp),(r3) 041220: 000002 041222: 012667 mov (sp)+,div 041224: 136052 041226: 016716 mov ac,(sp) 041230: 136050 041232: 000135 jmp *(r5)+ / * 041234: 012623 mov (sp)+,(r3)+ 041236: 012613 mov (sp)+,(r3) 041240: 014346 mov -(r3),-(sp) 041242: 000135 jmp *(r5)+ / / 041244: 016613 mov 2(sp),(r3) 041246: 000002 041250: 012667 mov (sp)+,div 041252: 136024 041254: 011316 mov (r3),(sp) 041256: 000135 jmp *(r5)+ / neg 041260: 005416 neg (sp) 041262: 000135 jmp *(r5)+ / *wp 041264: 013646 mov *(sp)+,-(sp) 041266: 000135 jmp *(r5)+ / *bp 041270: 113600 movb *(sp)+,r0 041272: 010046 mov r0,-(sp) 041274: 000135 jmp *(r5)+ / !u 041276: 005726 tst (sp)+ 041300: 001003 bne 1f 041302: 012746 mov $1,-(sp) 041304: 000001 041306: 000135 jmp *(r5)+ 1: 041310: 005046 clr -(sp) 041312: 000135 jmp *(r5)+ / ++b 041314: 005276 inc *(sp) 041316: 000000 041320: 013646 mov *(sp)+,-(sp) 041322: 000135 jmp *(r5)+ / ++b_ 041324: 005236 inc *(sp)+ 041326: 000135 jmp *(r5)+ / ++w 041330: 062776 add $2,*(sp) 041332: 000002 041334: 000000 041336: 013646 mov *(sp)+,-(sp) 041340: 000135 jmp *(r5)+ / ++w_ 041342: 062736 add $2,*(sp)+ 041344: 000002 041346: 000135 jmp *(r5)+ / --b 041350: 005376 dec *(sp) 041352: 000000 041354: 013646 mov *(sp)+,-(sp) 041356: 000135 jmp *(r5)+ / --b_ 041360: 005336 dec *(sp)+ 041362: 000135 jmp *(r5)+ / --w 041364: 162776 sub $2,*(sp) 041366: 000002 041370: 000000 041372: 013646 mov *(sp)+,-(sp) 041374: 000135 jmp *(r5)+ / --w_ 041376: 162736 sub $2,*(sp)+ 041400: 000002 041402: 000135 jmp *(r5)+ / b++ 041404: 012600 mov (sp)+,r0 041406: 011046 mov (r0),-(sp) 041410: 005210 inc (r0) 041412: 000135 jmp *(r5)+ / w++ 041414: 012600 mov (sp)+,r0 041416: 011046 mov (r0),-(sp) 041420: 062710 add $2,(r0) 041422: 000002 041424: 000135 jmp *(r5)+ / b-- 041426: 012600 mov (sp)+,r0 041430: 011046 mov (r0),-(sp) 041432: 005310 dec (r0) 041434: 000135 jmp *(r5)+ / w-- 041436: 012600 mov (sp)+,r0 041440: 011046 mov (r0),-(sp) 041442: 162710 sub $2,(r0) 041444: 000002 041446: 000135 jmp *(r5)+ a: 041450: 012500 mov (r5)+,r0 041452: 060400 add r4,r0 041454: 011046 mov (r0),-(sp) 041456: 000135 jmp *(r5)+ va: / push auto offset 041460: 012546 mov (r5)+,-(sp) 041462: 060416 add r4,(sp) 041464: 000135 jmp *(r5)+ ab: / push auto byte 041466: 012500 mov (r5)+,r0 041470: 060400 add r4,r0 041472: 111000 movb (r0),r0 041474: 010046 mov r0,-(sp) 041476: 000135 jmp *(r5)+ x: 041500: 013546 mov *(r5)+,-(sp) 041502: 000135 jmp *(r5)+ c: 041504: 012546 mov (r5)+,-(sp) 041506: 000135 jmp *(r5)+ xb: 041510: 113500 movb *(r5)+,r0 041512: 010046 mov r0,-(sp) 041514: 000135 jmp *(r5)+ idxw: 041516: 006316 asl (sp) 041520: 062616 add (sp)+,(sp) 041522: 013646 mov *(sp)+,-(sp) 041524: 000135 jmp *(r5)+ idxb: 041526: 062616 add (sp)+,(sp) 041530: 113600 movb *(sp)+,r0 041532: 010046 mov r0,-(sp) 041534: 000135 jmp *(r5)+ w+: 041536: 006316 asl (sp) 041540: 062616 add (sp)+,(sp) 041542: 000135 jmp *(r5)+ w2b: / byte to word offset/pointer 041544: 006316 asl (sp) 041546: 000135 jmp *(r5)+ call: 041550: 012600 mov (sp)+,r0 041552: 010546 mov r5,-(sp) 041554: 010446 mov r4,-(sp) 041556: 010604 mov sp,r4 041560: 010005 mov r0,r5 041562: 004735 jsr pc,*(r5)+ 041564: 010406 mov r4,sp 041566: 012604 mov (sp)+,r4 041570: 012605 mov (sp)+,r5 041572: 062506 add (r5)+,sp 041574: 010046 mov r0,-(sp) 041576: 000135 jmp *(r5)+ / ... / 6 arg1 / 4 arg0 / 2 old r5 (ret) / 0 old r4 <- r4 / -2 ret / -4 ... call_: / target on stack 041600: 012600 mov (sp)+,r0 041602: 010546 mov r5,-(sp) 041604: 010446 mov r4,-(sp) 041606: 010604 mov sp,r4 041610: 010005 mov r0,r5 041612: 004735 jsr pc,*(r5)+ ret: 041614: 010406 mov r4,sp 041616: 012604 mov (sp)+,r4 041620: 012605 mov (sp)+,r5 041622: 062506 add (r5)+,sp 041624: 000135 jmp *(r5)+ retval: / return with value in r0 041626: 011600 mov (sp),r0 return: 041630: 000174 jmp *-2(r4) 041632: 177776 goto: 041634: 012605 mov (sp)+,r5 041636: 000135 jmp *(r5)+ setstk: 041640: 010400 mov r4,r0 041642: 162500 sub (r5)+,r0 041644: 010006 mov r0,sp 041646: 000135 jmp *(r5)+ vec: 041650: 010400 mov r4,r0 041652: 162500 sub (r5)+,r0 041654: 010006 mov r0,sp 041656: 010046 mov r0,-(sp) 041660: 000135 jmp *(r5)+ t: 041662: 012505 mov (r5)+,r5 041664: 000135 jmp *(r5)+ f: 041666: 012500 mov (r5)+,r0 041670: 005726 tst (sp)+ 041672: 001001 bne 1f 041674: 010005 mov r0,r5 1: 041676: 000135 jmp *(r5)+ sw: 041700: 012505 mov (r5)+,r5 041702: 012600 mov (sp)+,r0 1: 041704: 020025 cmp r0,(r5)+ 041706: 001403 beq 1f 041710: 005725 tst (r5)+ 041712: 001374 bne 1b 041714: 000135 jmp *(r5)+ 1: 041716: 012500 mov (r5)+,r0 041720: 001401 beq 1f 041722: 010005 mov r0,r5 1: 041724: 000135 jmp *(r5)+