Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!sdd.hp.com!zaphod.mps.ohio-state.edu!van-bc!cynic!ireta!rob From: rob@ireta.wimsey.bc.ca (Rob Prior) Newsgroups: comp.sys.handhelds Subject: Faster Tetris (again) Message-ID: Date: 23 Nov 90 06:16:08 GMT Organization: Still Animation Logo Design, Burnaby BC Lines: 241 Okay, at Eric's request I am posting my latest update to the fast version of TETRIS. It has a different keyboard layout than the first version: Rotate [8] Move Left [4] [5] [6] Move Right | Drop This was done to give your fingers more room to move when playing. It is personal preference, and can be changed by modifying the RK2 program. This version also uses [A] as a pause key. It just puts the game into an endless loop until a key is pressed, so you can't pause the game and turn off the calculator. I guess this could have been done, but I wrote it for the odd time that the boss walks by... :) It has a new screen display, and it shows the keyboard layout. (Don't forget to put the GROB for IPIC onto one line before uploading to the 48) Anyways, enough chatter, here it is! -=*=- Cut Here -=*=- %%HP: T(3)A(D)F(.); DIR PPAR { (-6.5,-3.1) (6.5,3.2) X 0 (0,0) FUNCTION Y } TETRIS \<< .101 'a' STO 1 CF MKSCR 0 'PNTS' STO 0 ADDP DO delay FLST RAND 7 * IP 1 + DUP 'OB1' STO GET 1 DUP 'OB2' STO GET # 11d 1 CF DO IF 1 FC? THEN RK2 RK2 RK2 RK2 END DUP2 # 0d XFIG # 256d + DUP2 # 0d + TFIG IF # 0d == THEN DUP2 # 63903d XFIG ELSE # 256d - # 63903d XFIG # 0d END UNTIL DUP # 0d == END 20 ADDP DROP PACK MEM DROP UNTIL FULL END 2 WAIT WHILE KEY REPEAT DROP END \>> PNTS 5340 a .0000001 MKSCR \<< PICT PURGE { # 84d # 60d } { # 84d # 0d } OVER LINE { # 43d # 60d } DUP ROT LINE { # 43d # 0d } LINE PICT { # 88d # 0d } IPIC REPL { # 0d # 0d } PVIEW \>> RK2 \<< IF KEY THEN IF { 72 74 73 63 11 } SWAP POS DUP THEN { \<< # 1d NEG MSIDE \>> \<< # 1d MSIDE \>> \<< 1 SF \>> ROTF \<< DO UNTIL KEY END DROP \>> } SWAP GET EVAL ELSE DROP END END a WAIT \>> ADDP \<< 'PNTS' STO+ PICT { # 5d # 5d } PNTS 2 \->GROB REPL \>> MSIDE \<< \-> CD \<< DUP2 # 0d XFIG CD + DUP2 # 0d + TFIG IF # 0d \=/ THEN CD - END DUP2 # 63903d XFIG \>> \>> TFIG @ Use ASC-> "CCD20E310013606DD061B97507142137135818F098BA606FF014713481AF0914 234E4A208A26060E01691527100E717414381AF2914581AF291321428A26060B 01691567AFAAF1D122A95118C9D5F522A8520A81819F122A82C1201B56507146 818F29818F29C9136AF2156090A90B456E002F308200E49BF4BF4BF4AF68AE09 AF0AF2AC48108087340E68084396840E614313216915472007DD071361421648 08C3CA6" XFIG @ Use ASC-> "CCD204410034E7507137143818F8E1358BE60691117E818F328FB97601CE1B56 507146134152739E1B20F880029916912014313234E4A201428A2606EB016915 271011741431321428A63E16915271001741431321428A68C1691567AFAAF122 A95118C9AF5BF522A8520A8181D22A82C1201B56507146818F29818F29C91341 19BF2BF2241542BF616F16F1610D880BEBF4BF4BF4AF68AA60688F208F2D7601 42164808CE7C9" ROTF \<< DUP2 # 0d XFIG FLST OB1 GET OB2 1 - IF DUP 0 \<= THEN DROP DUP SIZE END DUP \-> OS2 \<< GET SWAP DUP2 # 0d + TFIG IF # 0d == THEN ROT DROP OS2 'OB2' STO ELSE SWAP DROP END DUP2 # 63903d XFIG \>> \>> OB2 1 OB1 4 FLST { { # 17802707620356d # 279242096899d # 35399189680388d # 279242096901d } { # 279242096645d # 17802707620357d # 279242097155d # 17806986854917d } { # 206226604548d # 17944425808389d # 279242097157d # 17802707620355d } { # 279241044483d # 17802708664837d } { # 210504794628d # 35399188627717d } { # 52926935483141d # 279242097412d } { # 206226600196d } } TLIN \<< DUP # 72356802986000645d SWAP DUP2 # 0d + TFIG ROT ROT # 5d + TFIG + \>> IPIC GROB 40 63 @ Make this all one line before U/L'ing to the 48 0000000000EFFFFFFFF7A480800125EFFFFFFFF70000000000EFE7F7F9C30120 801A240120801A200120801A2001E380F9C30120805804012080980401208019 2401E7801AC30000000000EFFFFFFFF7A480800125EFFFFFFFF7000000000000 000000000000000000EF3000000020200000002220032567252005551127AA23 7523252001554125200157372020000000EF3000000000000000000000000000 00088700000008580000000830100000087010000008F0100000000000000000 FF10000000101000000093100000009210000000931000000092100000009310 00000010100000FFFFFF10021010109003909393918392909093C7939393D783 121292930312939391021010109000FFFFFF1000000000000000010000000001 00000000EF00000000C70000000083000000000100000000000000 delay \<< a .001 - DUP IF .001 \<= THEN .0000001 'a' STO DROP ELSE 'a' STO END \>> PACK \<< # 3338d DO TLIN IF # 4d == THEN P2 ELSE # 256d - END UNTIL DUP # 512d < END DROP \>> P2 \<< 100 ADDP DUP # 3840d AND SRB 4 * 3 + # 40d SWAP 2 \->LIST PICT SWAP { # 85d # 8d } SUB PICT { # 40d # 12d } ROT REPL \>> FULL \<< # 72356802986000645d # 778d DUP2 # 0d + TFIG ROT ROT # 5d + TFIG + # 0d > \>> END -=*=- Cut Here -=*=- +--------- | rob@ireta.wimsey.bc.ca | Rob Prior, President, Still Animation Logo Design +----------------------------------------------------------