10 REM > PROCs - display PROC def blocks
   20 IFINKEY$-256="W":PROCfred:PROCjim(0):PROCsheila(0):PROChazel(0,0)
   30 IFINKEY$-256="W":PROCroger(0,0):PROCsophie(0,0):PROCrichard(0,0)
   40 A%=^PROCfred:A%=^PROCjim():A%=^PROCsheila():A%=^PROChazel()
   50 A%=^PROCroger():A%=^PROCsophie():A%=^PROCrichard()
   60 :
   70 *pointer 1
   80 PRINTSPC10;:FOR A%=0 TO 24:PRINTFNh0(A%,1);"  ";:NEXT:PRINT
   90 IFINKEY$-256="W":st%=!^PROCfred AND-16 ELSE st%=!(^PROCfred+4)AND-16
  100 IFINKEY$-256="W":en%=!^PROCrichard()+24 ELSE en%=^PROCrichard()+24
  110 add%=st%:REPEAT
  120   PRINT FNh0(add%,8);" ";:FOR a%=add% TO add%+23:PRINT FNh0(?a%,2);" ";:NEXT:PRINT
  130   PRINT SPC9;            :FOR a%=add% TO add%+23:PRINT" ";FNc(?a%);" ";:NEXT:PRINT
  140 add%=add%+24:UNTIL add%>=en%
  150 PRINT"^PROCfred   =&";~^PROCfred   ;"   ^PROCjim()   =&";~^PROCjim()  ;
  160 PRINT"   ^PROCsheila() =&";~^PROCsheila();"   ^PROChazel()  =&";~^PROChazel()
  170 PRINT"^PROCroger()=&";~^PROCroger();"   ^PROCsophie()=&";~^PROCsophie();
  180 PRINT"   ^PROCrichard()=&";~^PROCrichard()
  190 END
  200 DEFFNh0(A%,N%)=RIGHT$("0000000"+STR$~A%,N%)
  210 DEFFNc(A%):A%=A%AND127:IF A%=127 OR A%<32:="." ELSE =CHR$ A%
  220 :
  230 DEFPROCfred:ENDPROC
  240 DEFPROCjim(A%):ENDPROC
  250 DEFPROCsheila(A%  \ comment
  260 \             )
  270 ENDPROC
  280 DEFPROChazel(A%,  \ comment
  290 \            B%)
  300 ENDPROC
  310 DEFPROCroger(A%   \ comment
  320 \           ,B%)
  330 ENDPROC
  340 DEFPROCsophie(A%, \ comment
  350 \             B%  \ comment
  360 \            )
  370 ENDPROC
  380 DEFPROCrichard(A% \ comment
  390 \            ,B%  \ comment
  400 \            )
  410 ENDPROC
  420 
  430 DEFPROC15
  440 PROCrend(pdev%,   \ pointer to Direct3D device
  450 \        nobj%,   \ number of objects
  460 \        y,       \ yaw angle
  470 \        p,       \ pitch angle
  480 \        r)       \ roll angle
  490 \
  500 ENDPROC
  510 :
  520 DEFPROCrend(pd%,no%,y,pi,rl)
  530 ENDPROC