;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 :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) :TOSEA[PICTURE SCENE : ABT 0 0 AFTER 2 ANIM LIN 5 CH ABT 6000 0 THEN ANIM LIN 5 CH ABT 0 0 ] :SCENE[ PIC BOAT ABT FIG LIGHTH ] :BOAT[FIG HULL FIG CABIN FIG LWIND FIG RWIND FIG FUNNEL MOVE (#1) ] )TOSEA" LOADED"(OP : HULL 5! -800 0 800 0 600 -400 -600 -400 -800 0 : CABIN 5! -600 0 600 0 600 400 -600 400 -600 0 : LWIND 5! -300 200 -300 300 -200 300 -200 200 -300 200 : RWIND 5! 300 200 300 300 200 300 200 200 300 200 : FUNNEL 5! -100 400 100 400 0 700 -200 700 -100 400 : LIGHTH 7! -1800 -600 -1700 300 -1700 500 -1500 500 -1500 300 ( ) -1400 -600 -1800 -600 VIEW TOSEA 1 2 3 4 5 6 7 8 9 10 11 T STOP