(67/97) _____A____L____I____E____N____
01-30-2020, 08:24 PM (This post was last modified: 02-01-2020 01:46 AM by Archilog.)
Post: #1
 Archilog Member Posts: 86 Joined: Dec 2013
(67/97) _____A____L____I____E____N____

"Very well done... you would almost think you were aboard!"

Here is a game to escape the Nostromo spacecraft before being devoured by Alien or being lost in space after the final explosion!

How can I play it?

You are Sgt Ripley and you have just initiated the self-destruction process: you have 20 seconds left to leave the Nostromo by reaching the airlock. But Alien will follow in your footsteps...
Will you survive?

The room where the famous scene occurs is represented by an 8x8 square, 0.0 being the airlock you have to reach without being eaten (i.e. being on Alien's coordinates); you can not touch any side of the spacecraft since Alien has infected them: your only chance is to flee by the airlock within 20 seconds.

How does it work?

Once you have pressed a key to move (see below), your position is displayed during a pause; then Alien's distance to you and your time left are displayed. Alien's position is NOT known.

You benefit the particular feature of being able to key in an input during execution (no need to press [R/S] or whatever), a premiere in 1976 on a pocket calculator - as far as I know.
So you use your numeric keyboard like a pad to move in eight possible directions:

Code:
 [7][8][9]   [NW][N][NE] [4][X][6] = [W ][0][ E] [1][2][3]   [SW][S][SE]

This has to be done when Alien to player's distance is displayed, else the program may stop (in that case, just enter your move again and press [R/S]). If you don't press any key or press the 5 key (and therefore don't move), your time is lost as well and Alien is approaching... So be quick!
With a little stress it is unfortunately possible to press a key two times... if that occurs, your calculator won't accept your number and will display a -5, asking for a new entry. Once again, your time will be lost.

Example

• Once you have keyed in the program, enter a positive number not greater than 10^7 (say .999) and press [A]
... then displays your distance to Alien and time left: 7.071      19.
You decide to press [1], your new position is 6.1 and the new distance and time are... 5.385      18,
so you press [1] and your new position is 5.0...
but Alien's distance is displayed: 3.606, and you have 17 seconds left... what will you do? Go on or draw back?
• If you reach the airlock, you are safe! Your calculator will display 0.0 (a number of times identical to the number of your remaining moves).
• If time is over, you will be lost for ever, like Alien, in infinite spaces: your calculator will display 0 . 000000000 and an error will occur.
• If you meet a side of the spacecraft or Alien (or more probably, Alien meets you), your calculator will scream 1111111111 for you ! Actually, you won't emit anything anymore... an error will occur as well. You can enter a new seed or recall register 5 to panic once again...

You need luck, tactical thinking and good nerves...

Program:

Code:
 -------------------------------------------------------------------------------------------------------------------------------------------------------------- ST.  INSTR.    CODE(67)    CODE(97)                  Comment                  ||  ST.  INSTR.    CODE(67)    CODE(97)                  Comment       ------------------------------------------------------------------------------++------------------------------------------------------------------------------ 001  LBL A     31 25 11       21 11 -Phase 1-(000-009)-Initialization---------||  113  GTO 5        22 05       22 05 002  STO 5        33 05       35 05               Seed in R5                  ||  114   CF 0     35 61 00    16 22 00 003      2           02          02                                           ||  115    RTN        35 22          24 004      0           00          00          You can change number of         ||  116  LBL 5     31 25 05       21 05 005  STO I        35 33       35 46          seconds here  (max. 99).         ||  117   CF 0     35 61 00    16 22 00 006    GRD        35 43       16-23                                           ||  118   CF 1     35 61 01    16 22 01 007  GSB 0     31 22 00       23 00  To respective pos. calculus  (st. 152)   ||  119      1           01          01 008  GSB 1     31 22 01       23 01  To player position display   (st. 121)   ||  120    RTN        35 22          24 009  GSB 2     31 22 02       23 02  To Alien-Player dist. calc.  (st. 141)   ||  121  LBL 1     31 25 01       21 01 ------- Player's Position Display ------ 010  LBL 9     31 25 09       21 09 -Phase 2-(010-042)- Keypad detection -----||  122    FIX        31 23         -11 011   CF 3     35 61 03    16 22 03                                           ||  123  DSP 1        23 01      -63 01 012  GSB E     31 22 15       23 15  'E' routine (st. 191) waits for pressed  ||  124      8           08          08 013      1           01          01  key detected by flag 3 and displays      ||  125  RCL 0        34 00       36 00 014      -           51         -45  distance and countdown.                  ||  126  GSB 7     31 22 07       23 07   Routine '7' (st. 184) checks if a side 015  x<0 ?        31 71       16-45  Flag 3 must be cleared first.            ||  127      8           08          08   is reached. 016  GTO 9        22 09       22 09                                           ||  128  RCL 1        34 01       36 01 017      9           09          09                                           ||  129  GSB 7     31 22 07       23 07 018  x<=y?        32 71       16-35     If pressed key(s) is/are incorrect,   ||  130   x><y        35 52         -41 019  GTO 9        22 09       22 09     go to routine '9' (st. 038).          ||  131     Rd        35 53         -31 020   x><y        35 52         -41                                           ||  132      1           01          01 021      3           03          03                                           ||  133      0           00          00 022      /           81         -24  2 formulas to transformate number into   ||  134      /           81         -24 023  ENTER           41         -21  direction :                              ||  135      +           61         -55 024    INT        31 83       16 34                                           ||  136  PAUSE        35 72       16 51 025      1           01          01     -INT((K-1)/3)-1                       ||  137  x≠0 ?        31 61       16-42 026      -           51         -45  and                                      ||  138    RTN        35 22          24 027   x><y        35 52         -41     RND(FRAC((K-1)/3)*3)-1                ||  139  DSZ I        31 33    16 25 46         Well done, you are safe ! 028   FRAC        32 83       16 44                                           ||  140  GTO 1        22 01       22 01  0.0 is displayed while remaining  moves 029      3           03          03     with K for the pressed key.           ||  141    R/S           84          51              are available. 030      *           71         -35                                           ||  142  LBL 2     31 25 02       21 02 ------- Distance & Angle Calculus ------ 031    RND        31 24       16 24                                           ||  143  RCL 3        34 03       36 03 032      1           01          01                                           ||  144  RCL 1        34 01       36 01     033      -           51         -45                                           ||  145      -           51         -45 034  STO+0     33 61 00    35-55 00     Modifying player's coordinates        ||  146  RCL 2        34 02       36 02 035   x><y        35 52         -41     then going to '8' (st. 043).          ||  147  RCL 0        34 00       36 00     036  STO+1     33 61 01    35-55 01                                           ||  148      -           51         -45            037  GTO 8        22 08       22 08                                           ||  149    →>P        32 72          34                      038  LBL 9     31 25 09       21 09                                           ||  150  x=0 ?        31 51       16-43  039  DSP 0        23 00      -63 00                                           ||  151  GTO C        22 13       22 13             Once upon a time... 040      5           05          05                                           ||  152    RTN        35 22          24 041    CHS           42         -22                                           ||  153  LBL 0     31 25 00       21 00 –----- Positions are decided here ------ 042  GTO 9        22 09       22 09                                           ||  154  RCL 5        34 05       36 05 043  LBL 8     31 25 08       21 08 -Phase 3-(044-120)- Alien's Move ---------||  155  GSB 6     31 22 06       23 06 044  GSB 1     31 22 01       23 01  Displaying Player's Position             ||  156  STO 2        33 02       35 02 045  GSB 2     31 22 02       23 02  Displaying Alien's Distance              ||  157  RCL 5        34 05       36 05     046   x<>y        35 52         -41  Angle is recovered from Y register and   ||  158     PI        35 73       16-24    047      4           04          04  compared to 8 GRAD angles in order to    ||  159      *           71         -35    048      0           00          00  increment or decrement Alien's location, ||  160  GSB 6     31 22 06       23 06    049      0           00          00  (Registers 2 & 3).                       ||  161  STO 3        33 03       35 03 050   x<>y        35 52         -41                                           ||  162  RCL 5        34 05       36 05     051  x<0 ?        31 71       16-45                                           ||  163     PI        35 73       16-24 052      +           61         -55                                           ||  164    e^x        32 52          33   053      1           01          01                                           ||  165      *           71         -35 054      0           00          00                                           ||  166  GSB 6     31 22 06       23 06 055      /           81         -24                                           ||  167  STO 0        33 00       35 00 056  STO 4        33 04       35 04                                           ||  168  RCL 5        34 05       36 05           057      3           03          03                                           ||  169     PI        35 73       16-24     058  GSB 3     31 22 03       23 03                                           ||  170     x²        32 54          53 059      1           01          01                                           ||  171    e^x        32 52          33    060      7           07          07                                           ||  172      *           71         -35   061  GSB 4     31 22 04       23 04                                           ||  173  GSB 6     31 22 06       23 06  062  STO-3     33 51 03    35-45 03                                           ||  174  STO 1        33 01       35 01   063  RCL 4        34 04       36 04                                           ||  175    RTN        35 22          24 064      2           02          02                                           ||  176  LBL 6     31 25 06       21 06 —- Returns an integer between 0 and 7 ---    065      3           03          03                                           ||  177      8           08          08 066  GSB 3     31 22 03       23 03                                           ||  178      /           81         -24 067      3           03          03                                           ||  179   FRAC        32 83       16 44    068      7           07          07                                           ||  180      8           08          08 069  GSB 4     31 22 04       23 04                                           ||  181      *           71         -35 070  STO+3     33 61 03    35-55 03                                           ||  182    INT        31 83       16 34 071  RCL 4        34 04       36 04                                           ||  183    RTN        35 22          24 072      1           01          01                                           ||  184  LBL 7     31 25 07       21 07 –- Checks if Player has touched a wall -- 073      3           03          03                                           ||  185  x<0 ?        31 71       16-45 074  GSB 3     31 22 03       23 03                                           ||  186  GTO C        22 13       22 13 075      2           02          02                                           ||  187  x≠y ?        32 61       16-32   076      7           07          07                                           ||  188    RTN        35 22          24   077  GSB 4     31 22 04       23 04                                           ||  189      -           51         -45 078  STO+2     33 61 02    35-55 02                                           ||  190  GTO C        22 13       22 13 079  RCL 4        34 04       36 04                                           ||  191  LBL E     31 25 15       21 15 –--- Distance & Time Display Routine ----   080      0           00          00                                           ||  192    SCI        32 23         -12 081  GSB 3     31 22 03       23 03                                           ||  193  DSP 3        23 03      -63 03 082      7           07          07                                           ||  194   F? 3     35 71 03    16 23 03 083  GSB 4     31 22 04       23 04                                           ||  195    RTN        35 22          24 084  STO-2     33 51 02    35-45 02                                           ||  196  DSZ I        31 33    16 25 46 085  RCL 4        34 04       36 04                                           ||  197  GTO 0        22 00       22 00     086      3           03          03                                           ||  198      0           00          00 –------------ Time is over... ----------- 087      3           03          03                                           ||  199  DSP 9        23 09      -63 09   088  x>y ?        32 81       16-34                                           ||  200    FIX        31 23         -11 089  GTO 8        22 08       22 08                                           ||  201  PAUSE        35 72       16 51                 BRRAAAOOOM !   090      1           01          01                                           ||  202    1/x        35 62          52 091  STO-2     33 51 02    35-45 02                                           ||  203  LBL 0     31 25 00       21 00 ---------–- I seconds remaining --------- 092  LBL 8     31 25 08       21 08                                           ||  204  RCL I        35 34       36 46 093  GSB 2     31 22 02       23 02 Once new distance is shown, the program   ||  205   10^x        32 53       16 33 094  GTO 9        22 09       22 09 go back to '9' (st. 010) for a new loop.  ||  206      *           71         -35 095  LBL 3     31 25 03       21 03                                           ||  207  PAUSE        35 72       16 51   096  x<=y?        32 71       16-35 Routines '3', '4' and '5' are used to     ||  208    F?3     35 71 03    16 23 03 097   SF 0     35 51 00    16 21 00 combine the flags and decide if 0 or 1    ||  209    RTN        35 22          24 098  RCL 4        34 04       36 04 will be add or substract to/from Alien's  ||  210  LASTx        35 82       16-63    099    RTN        35 22          24 coordinates.                              ||  211      /           81         -24 100  LBL 4     31 25 04       21 04                                           ||  212  GTO E        22 15       22 15 101  x>y ?        32 81       16-34 (This algorithm seems quite heavy,        ||  213  LBL C     31 25 13       21 13 –-------------- Bon appétit ! -----------    102   SF 1     35 51 01    16 21 01  it must be possible to gain some         ||  214      .           83         -62                 for Alien... 103      0           00          00  steps here...)                           ||  215      9           09          09 104  GSB 5     31 22 05       23 05                                           ||  216    1/x        35 62          52 105    RTN        35 22          24                                           ||  217  DSP 9        23 09      -63 09 106  LBL 5     31 25 05       21 05                                           ||  218    EEX           43         -23  107   F? 0     35 71 00    16 23 00                                           ||  219      9           09          09 108  GTO 5        22 05       22 05                                           ||  220      *           71         -35 109   CF 1     35 61 01    16 22 01                                           ||  221  PAUSE        35 72       16 51 110    RTN        35 22          24                                           ||  222    Clx           44         -51 111  LBL 5     31 25 05       21 05                                           ||  223    1/x        35 62          52 112   F? 1     35 71 01    16 23 01                                           ||

This program was definitively published there in 2019 (p. 14).
Thank you, Sylvain, for the drawing legend translation; many thanks also to Pir2 from Silicium's forum for the two magic formulas.
01-31-2020, 02:47 AM
Post: #2
 teenix Senior Member Posts: 904 Joined: May 2016
RE: (67/97) _____A____L____I____E____N____
Was there anything supposed to be after step 223
It seems the code would go out the way of the alien :-)

cheers

Tony
01-31-2020, 04:05 PM (This post was last modified: 02-01-2020 02:11 AM by Archilog.)
Post: #3
 Archilog Member Posts: 86 Joined: Dec 2013
RE: (67/97) _____A____L____I____E____N____
(01-31-2020 02:47 AM)teenix Wrote:  Was there anything supposed to be after step 223
It seems the code would go out the way of the alien :-)

cheers

Tony

That's an interesting point you make, Tony.

Technically the program stops there (step 223) with an absurdity, since clearing the X register and then divide one with it drives to an error.
From the fictional perspective we are in the alien's abdomen (as you noticed) but it seems to be nowhere... or out of nowhere... but where?

Well, this is a delicate issue. Human beings (perhaps since they are human beings) frequently ask if a place after death exists; for some people there is nothing, for other people it is a certainty so fundamental (that something exists) that I have finally choosen to leave the question undecided.

Everyone can consequently add at step 224, the last step of the partition, a function or command which reflects what he/she has in mind:

- PAUSE,
- RTN,
- MERGE,

or even any other instruction without any clear signification like 0, 1, 7, +, x><y, Rd or Rup... Technically it will have no effect but it may ease the mind.

Note that on the 67/97 however, NOP (No operation, Nope, No hope) is impossible.

Regards :)
01-31-2020, 06:18 PM
Post: #4
 rprosperi Senior Member Posts: 4,237 Joined: Dec 2013
RE: (67/97) _____A____L____I____E____N____
There is an obvious and fitting final step for this situation, however the HP-67/97 has no BURP instruction.

--Bob Prosperi
02-01-2020, 02:32 AM (This post was last modified: 02-01-2020 02:33 AM by teenix.)
Post: #5
 teenix Senior Member Posts: 904 Joined: May 2016
RE: (67/97) _____A____L____I____E____N____
(01-31-2020 04:05 PM)Archilog Wrote:  That's an interesting point you make, Tony.

Technically the program stops there (step 223) with an absurdity, since clearing the X register and then divide one with it drives to an error.

I think I have some alien space lurking in my head :-)

I rewrote the code to work with my emulator and created an Alien card for it. I used the notes feature to add a winning display for the Alien

http://www.teenix.org/Alien.zip

cheers

Tony

Attached File(s) Thumbnail(s)

02-01-2020, 05:35 AM
Post: #6
 Paul Dale Senior Member Posts: 1,643 Joined: Dec 2013
RE: (67/97) _____A____L____I____E____N____
I did wonder if messages were the intention ...

Pauli
02-02-2020, 10:38 AM
Post: #7
 Archilog Member Posts: 86 Joined: Dec 2013
RE: (67/97) _____A____L____I____E____N____
(02-01-2020 05:35 AM)Paul Dale Wrote:  I did wonder if messages were the intention ...

Pauli