;GPRIMS taken from TP01_all_macros.txt ;GPRIMS 4/10/76 ; Primitives updated from 61.pdf "Blue tape" 12/8/77 PRIM ' 1, PRIM = 2, PRIM OR 3, PRIM AND 4, PRIM NOT 5 PRIM LT 6, PRIM LE 7, PRIM EQ 8, PRIM NE 9, PRIM GE 10, PRIM GT 11 PRIM + 12, PRIM - 13, PRIM * 14, PRIM / 15, PRIM EXP 16 ;new value for TYPE PRIM TYPE 17 PRIM $ 20 PRIM GO 21, PRIM AV 22, PRIM @ 23, PRIM CY 24, PRIM FNTH 25 PRIM FIND 26, PRIM RP 27, PRIM : 28, PRIM NEW 29, PRIM OLD 30 ;PRIM IF 31, PRIM TYPE 32, PRIM IF 32 PRIM ABUG 33, PRIM ITMS 34, PRIM GRPS 35 PRIM LNS 36, PRIM RHA 37, PRIM LINA 38, PRIM CLA 39 PRIM READ 40 ;PRIM GRIN 42, PRIM AIN 43 ;PRIM LEFT 46, PRIM GARB 47 PRIM GRIN 41 PRIM AIN 42 PRIM PROT 43 PRIM LOCAL 44 PRIM DIR 45 PRIM SS 47 PRIM LEFT 48 PRIM GARB 49 PRIM % 50 ; new SRC PRIM SRC 51 PRIM DEST 52, ; APTO and CRF not in this version ;PRIM APTO 53, PRIM CRF 54 ; RES not in this version ;PRIM RES 55, PRIM SAVE 56, PRIM NAME 57 ;, PRIM SS 58 ;new PRIM ALFA 58 PRIM OP 60, PRIM NUTR 61, PRIM DNTR 62, PRIM UPTR 63, PRIM FIG 64 PRIM MOVE 65, PRIM SCALE 66, PRIM ROT 67, PRIM ROTX 68, PRIM ROTY 69 ;PRIM UNITY 71,PRIM LIN 72 PRIM UNITY 70, PRIM LIN 71, PRIM HARM 72 ;new PRIM ARC0 73, PRIM TREE 74, PRIM SETCOL 75 PRIM COLR 77, PRIM FAD0 78, PRIM LEVEL 79 ;PRIM ARC0 78, PRIM TREE 79, PRIM PERSP 80, PRIM EXIT 90, PRIM EXTR 91 PRIM STOP 100 ; user defined primitives, start group, end group used at start,end frame PRIM SG 101 PRIM EG 102 PRIM PRMACS 103 ; 104 generates coordinates of arc PRIM GENARC 104 :NL<<^>>, :PRINT<##(OP)>, PRINT"PRIMITIVES LOADED" ; then has PROT(DIR) not sure what that does, omitted ;PROT(DIR) ; added DFLT and ARG1 from TP01_all movier :DFLT[:#1(ARG1#2(@#1 CY 1)0)] :ARG1<#1> ;VIEWER 2/9/77 from 61.pdf )"WAIT FOR VIEWER TO LOAD"(OP ;OLD((CSYS)),:CSYS VIEWER ;:VIEWER VIEWER PICTURE PIC ADPIC DEPIC ANIM CH THEN HOLD AFTER AFTALL( ; )END NEWQ SSQ EXFR ESEQ RSTQ VIEW VU0 NFR SEC MSEC F B T :PICTURE[:TRTP#1] :PIC[DNTR,##,UPTR] :ABT[:II 0, @-1 1,MOVE(ABT0),(CY 7),MOVE($(-II))] :ABT0[-(CY 1),'II=II+1,GO((AV 1 TYPE)EQ 1)ABT0] :ANIM[:ANM0[SSQ#0>#1(SFNO,CEFN#2##)<]] :SSQ[#2##(FNO),EXIT(#4 GT FNO),RP(RHA(@#1 FIND(SS 4))),UNITY] :CEFN[+EFNO=SFNO+(NFR##),EXIT(+EFNO LE FFNO),'FFNO=EFNO] :CH[IF(RHA(@#1 FIND(SS 4)))[@(RHA)],:#1(CY "ZZ", CY ANM0)#2##] :THEN[:SFNO(EFNO),GO NEWQ] :AFTER[:SFNO((NFR##)+SFNO),GO NEWQ] :AFTALL[:SFNO(FFNO),GO NEWQ] :OFF [NEW #1, @OLST :0 #1, PRIM #1 46] :ON [OLD(@(@OLST FIND #1) CY I), :I] :OLST :FADE (NEW #1 (FAD1 #1 (CEFN##) OFF0 (EFNO) -), @OLST :0 #1) :MIXON [EXIT(@(@OLST FIND #1),NOT TYPE) OLD#1, NEW#1(FAD1 #1 (CEFN##) ON0 (-SFNO) +)] :FAD1 <[GO( >#2< LE FNO) >#3<]( CY#1) [FAD0( >#4#5< FNO) >(+EFNO-SFNO)< ]> :OFF0[PRI #0 46] :ON0[ON #0, GO #0] :HOLD['SFNO=FFNO-1,NEWQ,'SFNO=FFNO+(NFR##),'EFNO=SFNO IF(+FNO LT SFNO)['FNO=SFNO],GO NEWQ] :NEWQ[IF(+SFNO GT FFNO)['FFNO=SFNO],EXIT(+FNO GE SFNO,BCK) EXFR,GO QLOG] :EXFR[SG(FNO),NUTR,PIC(TRTP),EXTR(FR),EG,NFNO,GO(+FNO LE SFNO)EXFR] :FILM[NEW NFNO['FNO=(+LFNO=FNO)+FREP],RSOL :FNO 2,SEQ0##,RSOL,OLD NFNO] :FREP 2 :VIEW[:FNO 0,:FNO(NFR(READ"?")),GO VU0] :VU0[RSOL,OFF QLOG,:QLOG,OFF FR,SEQ0##,GO(-BCK)VU0 PRINT"SEQUENCE ENDS AT FRAME "(FFNO),GO VIEW] :RSOL[OLD(OLST),:OLST] :SEQ0[:BCK,:SFNO 0,:EFNO 0,:FFNO 0,:LFNO 0,##,END] :END['SFNO=FFNO,GO NEWQ] :NFNO[PRINT" "(NL)"FRAME "(FNO) :BCK(IF((FNO)GT(+FNO=(NFR(READ"?"))))2) EXIT(0 LE FNO),:FNO 1] :FR[+FNO-LFNO] :NFR[(1+FNO,#2#1)+(#4#3)] :SEC[#1*25] :MSEC[#1/40] :F[#1+FNO] :B[+FNO-#1] :T[NEW EXFR[OLD EXFR,EXIT "ZZ"]] :QLOG[PRINT(FNO)#0##] ;)"LOADED"(OP,SRC 0,VIEW )"LOADED"(OP PRINT"STACK LEFT "(LEFT) ; second and third parameters are start point, fourth and fifth centre :WHL1 (GENARC -24 5000 0 0 0) ; spoke 2 deliberately extended to emphasise rotation (5500 not 5000) :SPK1 2!-5000 0 5000 0 :SPK2 2!0 5500 0 -5000 :SPK3 2!3535 3535 -3535 -3535 :SPK4 2!-3535 3535 3535 -3535 :WHEEL [ FIG WHL1 FIG SPK1 FIG SPK2 FIG SPK3 FIG SPK4 ROT (TURN) SCALE 30 30 MOVE (PLACE) ] :ROLL [ PICTURE WHEEL :TURN 0 :PLACE -2000 2000 ANIM LIN 20 CH PLACE 2000 -2000 ANIM LIN 10 CH TURN -720 THEN ANIM LIN 20 CH PLACE 2000 2000 ] VIEW ROLL 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 T STOP