$MACRO ALL VAR JSR PC,$$RES RES.STR #@{1} @#$$RES1 $ENDM ; - - - - - - - - - - - - - - - - - - - - - - - $MACRO FRE MOV (SP),R0 ADD R0,SP $ENDM ; - - - - - - - - - - - - - - - - - - - - - - - $MACRO RES.STR ; NAME,SIZE SUB #@2,SP SUB #10.,SP MOV #1,-(SP) MOV #@2,-(SP) ADD #8.,(SP) MOV SP,#@1 MOV #@1,-(SP) JSR PC,INI ADD #6.,(SP) JSR PC,$$$STK $ENDM ; - - - - - - - - - - - - - - - - - - - - - - - $MACRO print ** p%%t <#@*(1"Z)> $ENDM ; - - - - - - - - - - - - - - - - - - - - - - - $MACRO p%%t printf "#@1=(%d)(%o)" <#@1> <#@1> $ENDM ; - - - - - - - - - - - - - - - - - - - - - - - $MACRO LEN string ?? 2 mov #@{1},r0 #@2=. tstb (r0)+ bne #@2 sub #@{1},r0 dec r0 $ENDM / program dbug function dbug[s] ;printf "dbug called %d %d" num$+100. lnumber if lnumber gt 1 push num$+18. mov lnumber,num$+18. all r4 expand[" .word 3,#@#9. ;dbug",r4,s] outst[r4] fre pop num$+18. fi ret .end