From jurjen@cwi.nl Wed Aug 22 10:17:23 1990
From: jurjen@cwi.nl (Jurjen NE Bos)
Newsgroups: comp.sys.handhelds
Subject: Tetris on HP28S
Date: 20 Aug 90 09:48:27 GMT
Organization: STORC, Veldhoven

(You thought that only the HP48 had TETRIS?)

		TETRIS for the HP28S, Version 2BB.

-------------------------------------------------------------------------------
This is a translation of an article, published by STORC. STORC (Stichting Ter
Ondersteuning van RPL Calculators) is the Dutch support-group for the HP28S,
HP48SX and HP28C. STORC publishes a (dutch) magazine, called "STORC
Nieuwsbrief", 10 times a year.

Our address:	STORC p.a. Christ van Willegen
		Dordognelaan 45
		5627 HB  Eindhoven
		The Netherlands
-------------------------------------------------------------------------------

	An adapted version of Tetris, only for the HP28S, Version 2BB.
		Written by	Dirk De Bruycker
				Kattebulkdreef 8
				9880 Aalter
				Belgium


Make sure to type the SYSEVAL addresses correct! (Use CHK for checksums)
First, type all programs in the same subdirectory, then, type the following:

............................................................

"" 1 100 START " " + NEXT 'BLANK' STO
"  " 'S2' STO

[ (1,0) (0,-1) (-1,0) (0,1) ] 'AR' STO

<< CLLCD 8 32 FOR I 54 I 55 I 76 I 77 I\
pix pix pix pix NEXT LCD-> 'IBE' STO >> EVAL

(4,2) 'T' STO
-1 'MAXIM' STO

<< 1 7 FOR NR 1 4 FOR RI CLLCD BL NR GET
AR RI GET 2 * * ARRY-> DROP 1 4 START T +
C->R p4z NEXT # 1B362h SYSEVAL 3 12 SUB
NEXT NEXT 28 ->LIST DUP 20 GET 18 SWAP PUT
'STAND' STO >> EVAL

'T' PURGE

{ TETRIS } ORDER

............................................................

Now, you are ready to go. Just type TETRIS.

Manual:

It does not exactly behave like a Tetris on a computer:

On the display, you will see a horizontal line. This is the maximum height.
On this line, the new figures will come.

You kan use the key [7] to go left, [9] to go right, and [8] to turn.

Next to the field is a scroll-bar. The higher your score, the shorter this
scroll-bar will get. When the bar reaches the top, the figure will drop.

You get points, just like the "real" Tetris, by having the dropped figures
fill a horizontal row.

When the dropped figures reach the horizontal line, the game is over. Press
key [.] to see you score.

	Loads of fun!

One final remark: The program displays its messages in dutch :-)
Your first lesson in dutch:

einde = end
pauze = pause
plaats = place
proficiat = congratulations
ptn. = pnts.
punten = points
u behaalde = you reached

............................................................

'TETRIS' [9D12]
<< IBE ->LCD ini.ar
  DO plaats BLANK
->LCD z.hoogte elim
  UNTIL 'RAA' 12 GET
  END "Einde..." 1
DISP
  DO
  UNTIL KEY
    << "." SAME
    >>
    << 0
    >> IFTE
  END CLLCD
"   U behaalde"
"   " PUNT ->STR
" punten." + + 4
DISP 2 MAXIM
PUNT <
  << PUNT 'MAXIM' STO
"Proficiat. nr 1.."
1 DISP
  >> IFT
>>

'clln' [E1A2]
<< 8 32 TIME -
  FOR W 40 W 41 W
# C1DDh SYSEVAL
# 1ADFEh SYSEVAL
# C1DDh SYSEVAL
# 1ADFEh SYSEVAL
  NEXT 32 TIME - 31
  FOR W 40 W 41 W
# C1DDh SYSEVAL
# 1ADF2h SYSEVAL
# C1DDh SYSEVAL
# 1ADF2h SYSEVAL
  NEXT
>>

'z.hoogte' [E6B7]
<< { 4 } X 54 - 2 /
DUP 'XN' STO 0 R->C
CON BL NR 1 + GET AR
RI GET * CONJ DUP
'NAR' STO + ARRY->
DROP 1 4
  START C->R KHO ROT
GET SWAP - 1 + 4
ROLL
  NEXT MAX MAX MAX
DUP 2 * 30 SWAP -
PT2S XN SWAP R->C { 4
} SWAP CON NAR +
ARRY-> DROP 1 4
  START -> PT
    << 'RAA' PT IM
RAA OVER GET 1 + PUT
KHO PT RE GET PT IM
<
      << 'KHO' PT C->R
PUT
      >> IFT 'MATR'
PT C->R SWAP 1 - 14 *
+ 1 PUT
    >>
  NEXT
>>

'plaats' [2EF4]
<< 1 'RI' STO RAND 7
* FLOOR 'NR' STO 32
'K' STO 64 'X' STO
ZET clln
  DO KEY
    << DUP "7" SAME
      << links
      >> IFT DUP "9"
SAME
      << rechts
      >> IFT DUP "8"
SAME
      << draai
      >> IFT "S" SAME
      << # 18E58h
SYSEVAL
      >> IFT
    >>
    << -1 'K' STO+ 40
K 41 K pix pix
    >> IFTE
  UNTIL K 31 TIME -
==
  END
>>

'draai' [A712]
<< (54,76) EXT 4 NR *
RI 4 MOD 1 + DUP
'NRI' STO + GET -
DUP RE X < SWAP IM X
> AND
  << NRI 'RI' STO ZET
  >> IFT
>>

'PT2S' [AE3A]
<< X SWAP R->C -> T
  << BL NR 1 + GET AR
RI GET 2 * * ARRY->
DROP 1 4
    START T + C->R
p4z
    NEXT
  >>
>>

'elim' [EE1B]
<<
  WHILE RAA RNRM 10
SAME
  REPEAT -1 'TIME'
STO+ TIME 5 <
    << 10 'TIME' STO
    >> IFT 110 KHO
CNRM - 'PUNT' STO+
"Pauze.." PUNT ->STR
+ " ptn..." + 1 DISP
RAA ARRY-> LIST-> DROP
->LIST 10 POS -> B
     << B 12
       FOR W 'RAA' W
RAA W 1 + GET PUT
      NEXT 1 10
      FOR W B KHO W
GET
        FOR R MATR W
1 - 14 * R + GET DUP
MATR W 1 - 14 * R +
1 + GET -
          << W 2 * 54
+ SWAP 30 R 2 * -
SWAP
            << p4w 0
            >>
            << p4z 1
            >> IFTE
'MATR' W 1 - 14 * R
+ ROT PUT
          >>
          << DROP
          >> IFTE
        NEXT
        WHILE KHO W
GET
          << MATR W 1
- 14 * KHO W GET +
GET NOT
          >>
          << 0
          >> IFTE
        REPEAT 'KHO'
W KHO W GET 1 - PUT
        END
      NEXT
    >>
  END
>>

'pix' [4A5]
<< # C1DDh SYSEVAL
# 1ADFEh SYSEVAL
>>

'BL' [C816]
{
[ (-1,0) (0,0) (1,0)
(1,1) ]
[ (-1,0) (0,0) (0,1)
(1,1) ]
[ (1,0) (0,0) (0,1)
(-1,1) ]
[ (1,0) (0,0) (0,1)
(-1,0) ]
[ (-1,0) (0,0) (1,0)
(2,0) ]
[ (0,0) (1,0) (0,1)
(1,1) ]
[ (-1,1) (-1,0) (0,0)
(1,0) ]
}

'EXT' [6B8A]
{ (-2,2) (0,2)
(-2,2) (-2,0) (-2,2)
(0,2) (-2,2) (-2,0)
(-2,2) (0,2) (-2,2)
(-2,0) (-2,2) (0,2)
(-2,2) (-2,0) (-2,4)
(0,0) (-4,2) (0,0)
(0,2) (0,2) (-2,0)
(-2,0) (-2,2) (0,2)
(-2,2) (-2,0) }

'links' [3D3D]
<< 56 EXT NR 4 * RI +
GET RE - X <
  << # 1B362h SYSEVAL
-2 'X' STO+ 5 137
SUB ->LCD
  >> IFT
>>

'rechts' [BDDE]
<< 74 EXT NR 4 * RI +
GET IM - X >
  << S2 # 1B362h
SYSEVAL # 25174h
SYSEVAL 2 'X' STO+ +
->LCD
  >> IFT
>>

'ZET' [251C]
<< BLANK 5 X SUB
STAND NR 4 * RI +
GET + BLANK ->LCD
->LCD
>>

'ini.ar' [CF63]
<< 24 'TIME' STO 0
'PUNT' STO { 14 } 0
CON 'RAA' STO { 10 }
0 CON 'KHO' STO {
140 } 0 CON 'MATR'
STO
>>

'p4z' [75C6]
<< OVER OVER 1 + OVER
1 + OVER OVER OVER 1
- 1 4
  START # C1DDh
SYSEVAL # 1ADFEh
SYSEVAL
  NEXT
>>

'p4w' [767E]
<< OVER OVER 1 + OVER
1 + OVER OVER OVER 1
- 1 4
  START # C1DDh
SYSEVAL # 1ADF2h
SYSEVAL
  NEXT
>>

--
|                 | "Never imagine yourself not to be otherwise than what |
| Jurjen N.E. Bos | it might appear to others that what you were or might |
|                 | have been was not otherwise than what you had been    |
|  jurjen@cwi.nl  | would have appeared to them to be otherwise."         |

From jschippe@praxis.cs.ruu.nl Tue Aug 28 14:35:31 1990
From: jschippe@praxis.cs.ruu.nl (Jeroen Schipper)
Newsgroups: comp.sys.handhelds
Subject: Re: TETRIS FOR HP28S PROBLEMS!!
Date: 22 Aug 90 15:36:04 GMT

In <1990Aug21.233939.2335@ux1.cso.uiuc.edu> gcw20877@uxa.cso.uiuc.edu (George Wang) writes:

>My brother just typed in the HP28s version of TETRIS recently
>posted by a group in Europe... Anyways, he's had CHECKSUM
>differences in several of the modules.. The exact module
>names escape me (I will have a list by tonight) but he has
>double checked his input both with CHK and visually with
>the listing...

I also typed in the program and I had only one checksum error
in the main program 'TETRIS'. But that was no problem, it's
easy to see what the program does (the error was somewhere near
the end of the program; just leave out the "   " and the 2 I
think...?). All the other checksum numbers are correct!!!

>
>Also there is a BACKSLASH character "\" toward the beginning
>of the program... How does one enter a "\" backslash??

Don't.  Just skip that char and type the next line after the
first one.

>
>The program does not work.. I think it gave an error
>when a SYSEVAL was performed...

Then you made a typing error somewhere! I works fine with me.


Just check everything again....and you have a *great* game!!!


Jeroen.


::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
: Jeroen Schipper,     (31)3405-61733 : "Computer programs do what you   :
: Utrecht University, The Netherlands :  tell them to tell them to  do,  :
: Electronic mail: jschippe@cs.ruu.nl :  not what you want them  to do"  :
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

