*********************************************************************************
* DRUGWAR *
* THIS PROGRAM IS FREEWARE *
* PLEASE EDIT, CHANGE, IMPROVE, UPGRADE, DISTRIBUTE *
* THIS GAME!!! *
*********************************************************************************
* This is Drugwar Version 1.0 for the G/GX calculators ONLY.
* This is not an original idea, but rather a clone of the popular TI game under
* the same name. Only this version has improved features.
* I take no credit for the idea of the game, but only for the code which runs it.
* I hold no responsibility for the well being of the calculator that runs this.
* Please edit, upgrade, improve this program, and send it to k3g1@pipeline.com -
* my friends and I would love to play new, improved versions.
* I wrote this at the request of my peers.
* There is no malicious intent towards police officers, or drug enforcement officials.
* This is a "joke" game for entertainment purposes only. If you are offended,
* don't play this, but please don't think I mean what I say in this game...like
* I said, it is only a "joke".
* Thanks go to Jim Donnelly for his great book "An Introduction to HP 48 System RPL
* and Assembly Language Programming", it was a great use and I recommend it to
* anyone wishing to REALLY program the HP48.
* Please excuse me for sloppy programming, this was an attempt to make this work
* with speed and size in mind, not organization. Good luck w/reading the code.
* - Adam Klein <k3g1@pipeline.com>
ASSEMBLE
NIBASC /HPHP48-A/
* These are definitions for external libraries found ONLY in G/GX calculators!
~DoKeyOK EQU #5A0B0
~DoKeyCancel EQU #590B0
~IFMenuRow1 EQU #050B0
~gFldVal EQU #C50B0
RPL
******************************************************
* DEFINEs for use with InputForms *
* *
******************************************************
DEFINE FTYPE_TEXT ONE
DEFINE OBTYPE_ANY MINUSONE
DEFINE FMT_STD FOUR
DEFINE LROW1 TEN
DEFINE LROW2 NINETEEN
DEFINE LROW3 TWENTYEIGHT
DEFINE LROW4 THIRTYSEVEN
DEFINE LROW5 FORTYSIX
DEFINE FROW1 EIGHT
DEFINE FROW2 SEVENTEEN
DEFINE FROW3 TWENTYSIX
DEFINE FROW4 THIRTYFIVE
DEFINE FROW5 FORTYFOUR
DEFINE COL1 ONE
DEFINE COL2 SEVEN
DEFINE COL3 THIRTEEN
DEFINE COL4 NINETEEN
DEFINE COL5 TWENTYFIVE
DEFINE COL6 THIRTYONE
DEFINE COL7 THIRTYSEVEN
DEFINE COL8 FORTYTHREE
DEFINE COL9 FORTYNINE
DEFINE COL10 FIFTYFIVE
DEFINE COL11 SIXTYONE
DEFINE COL12 FOURTHREE ( decimal 67 )
DEFINE COL13 73
DEFINE COL14 SEVENTYNINE
DEFINE COL15 2LIST ( decimal 85 )
DEFINE COL16 BINT_91d
DEFINE COL17 IDREAL ( decimal 97 )
DEFINE COL18 103
DEFINE COL19 109
DEFINE COL20 BINT_115d
DEFINE COL21 121
DEFINE COL22 127
DEFINE FHEIGHT NINE ( field height )
DEFINE FWIDTH1 SEVEN
DEFINE FWIDTH2 THIRTEEN
DEFINE FWIDTH3 NINETEEN
DEFINE FWIDTH4 TWENTYFIVE
DEFINE FWIDTH5 THIRTYONE
DEFINE FWIDTH6 THIRTYSEVEN
DEFINE FWIDTH7 FORTYTHREE
DEFINE FWIDTH8 FORTYNINE
DEFINE FWIDTH9 FIFTYFIVE
DEFINE FWIDTH10 SIXTYONE
DEFINE FWIDTH11 FOURTHREE ( decimal 67 )
DEFINE FWIDTH12 73
DEFINE FWIDTH13 SEVENTYNINE
DEFINE FWIDTH14 2LIST ( decimal 85 )
DEFINE FWIDTH15 BINT_91d
DEFINE FWIDTH16 IDREAL ( decimal 97 )
DEFINE FWIDTH17 103
DEFINE FWIDTH18 109
DEFINE FWIDTH19 BINT_115d
DEFINE FWIDTH20 121
DEFINE FWIDTH21 127
DEFINE NOVAL MINUSONE
DEFINE OPTDATA_NULL MINUSONE
**************************************************
* EXTERNAL data for G/GX only!!! Careful! *
**************************************************
EXTERNAL DoKeyOK
EXTERNAL DoKeyCancel
EXTERNAL IFMenuRow1
EXTERNAL gFldVal
* these are definitions for game variables and constants
DEFINE err ZERO
DEFINE interest % 0.07
DEFINE tsize % 200
DEFINE bankint % 0.07
DEFINE bronx ONE
DEFINE brook TWO
DEFINE manha THREE
DEFINE getto FOUR
DEFINE cpark FIVE
DEFINE mag ONE
DEFINE nmm TWO
DEFINE spec THREE
DEFINE none ZERO
DEFINE cops 17GETLAM
DEFINE STOcops 17PUTLAM
DEFINE free 22GETLAM EVAL
DEFINE incday 23 GETLAM EVAL
DEFINE sdrugskey 24 GETLAM EVAL
DEFINE bdrugskey 25 GETLAM EVAL
DEFINE dummy 26 GETLAM
DEFINE STOdummy 26 PUTLAM
DEFINE stocks 28 GETLAM
DEFINE STOstocks 28 PUTLAM
DEFINE wallstreet 27 GETLAM EVAL
DEFINE inputfm 21GETLAM EVAL
DEFINE selldrugs 20GETLAM EVAL
DEFINE buydrugs 19GETLAM EVAL
DEFINE gobank 18GETLAM EVAL
DEFINE copchase 16GETLAM EVAL
DEFINE doevent 15GETLAM EVAL
DEFINE jet 14GETLAM EVAL
DEFINE trenchcoat 13GETLAM EVAL
DEFINE shark 12GETLAM EVAL
DEFINE mainmenu 11GETLAM EVAL
DEFINE dispprices 10GETLAM EVAL
DEFINE randomize 9GETLAM EVAL
DEFINE prices 8GETLAM
DEFINE locat 7GETLAM
DEFINE account 6GETLAM
DEFINE wallet 5GETLAM
DEFINE weapon 4GETLAM
DEFINE day 3GETLAM
DEFINE debt 2GETLAM
DEFINE trench 1GETLAM
DEFINE STOprices 8PUTLAM
DEFINE STOlocat 7PUTLAM
DEFINE STOaccount 6PUTLAM
DEFINE STOwallet 5PUTLAM
DEFINE STOweapon 4PUTLAM
DEFINE STOday 3PUTLAM
DEFINE STOdebt 2PUTLAM
DEFINE STOtrench 1PUTLAM
:: AtUserStack ClrDA1IsStat
* Put everything on the stack - then into local variables...
%0
* this is the wallstreet procedure
' :: CLEARVDISP ZERO
BEGIN
DROP ZERO ZERO
" $$$ Stock Market $$$ " $>GROB INVGROB XYGROBDISP
" 1 - Invest" DISPROW3
" 2 - Sell Stock" DISPROW4
" 3 - Scram" DISPROW5
" Stock Value: " stocks a%>$ &$ DISPROW7
" Wallet: " wallet a%>$ &$ EIGHT DISPN
WaitForKey DROP
:: DUP FORTYONE #= case
:: DROP inputfm
DUP wallet %> IT :: DROP wallet ;
DUP %0 %< IT :: DROP % 0 ;
DUP wallet SWAP %- STOwallet stocks %+ STOstocks
CLEARVDISP err
;
DUP FORTYTWO #= case
:: DROP
inputfm
DUP stocks %> IT :: DROP stocks ;
DUP %0 %< IT :: DROP % 0 ;
DUP wallet %+ STOwallet stocks SWAP %- STOstocks
CLEARVDISP err
;
DUP FORTYTHREE #= case
::
DROP ONE
;
DROP err
; DUP err #= NOT UNTIL DROP
;
ZERO
* this is to get how many drugs to buy
' :: STOdummy DROP inputfm
DUP %0 %< IT :: DROP %0 ;
DUP free %> IT :: DROP free ;
DUP wallet prices dummy NTHCOMPDROP %/ %IP %>
IT :: DROP wallet prices dummy NTHCOMPDROP %/ %IP ;
DUP trench dummy NTHCOMPDROP %+ dummy trench PUTLIST
STOtrench prices dummy
NTHCOMPDROP %* wallet SWAP %- STOwallet err
;
* this is to get how many drugs to sell after user hits a valid key
' :: STOdummy
DROP inputfm
DUP %0 %< IT :: DROP %0 ;
DUP trench dummy NTHELCOMP DROP %>
IT :: DROP trench dummy NTHELCOMP DROP ;
DUP prices dummy NTHELCOMP DROP %* wallet %+ STOwallet
trench dummy NTHELCOMP DROP SWAP %- dummy trench PUTLIST STOtrench
err
;
* this procedure increments the day
' :: day %1 %+ STOday randomize debt DUP interest %* %+ %0 RNDXY STOdebt
stocks %RAN %10 %* %1 %+ %IP %4 %- % 0.05 %* %* stocks %+ %IP STOstocks
account account bankint %* %IP %+ STOaccount ;
* this procedure finds how much more drugs you can hold
' :: tsize trench INNERCOMP ONE DO %+ LOOP %- ;
* input form procedure
' ::
"Enter Amount >>:" COL1 LROW3
'DROPFALSE
COL12 FROW3
FWIDTH11 FHEIGHT
FTYPE_TEXT OBTYPE_ANY FMT_STD NOVAL OPTDATA_NULL OPTDATA_NULL NOVAL NOVAL
ONE ONE
' :: FIFTEEN #<> case FALSE ' NoExitAction
IFMenuRow1
{
NULL{}
NULL{}
{ "Deal" :: TakeOver ONE gFldVal TYPEREAL? case :: DoKeyOK ; ; }
}
&COMP TWO ::N
TRUE
; "Drug Underworld" DoInputForm DROP %0 RNDXY TURNMENUOFF
;
* sell drugs procedure
' :: CLEARVDISP ZERO
BEGIN
DROP ZERO ZERO
"Drug Amount " $>GROB INVGROB XYGROBDISP
"1-Cocaine " trench ONE NTHCOMPDROP a%>$ &$ DISPROW2
"2-Heroin " trench TWO NTHCOMPDROP a%>$ &$ DISPROW3
"3-Acid " trench THREE NTHCOMPDROP a%>$ &$ DISPROW4
"4-Weed " trench FOUR NTHCOMPDROP a%>$ &$ DISPROW5
"5-Speed " trench FIVE NTHCOMPDROP a%>$ &$ DISPROW6
"6-Ludes " trench SIX NTHCOMPDROP a%>$ &$ DISPROW7
"7-Exit " EIGHT DISPN
WaitForKey DROP
:: DUP FORTYONE #= case
:: ONE sdrugskey ;
DUP FORTYTWO #= case
:: TWO sdrugskey ;
DUP FORTYTHREE #= case
:: THREE sdrugskey ;
DUP THIRTYSIX #= case
:: FOUR sdrugskey ;
DUP THIRTYSEVEN #= case
:: FIVE sdrugskey ;
DUP THIRTYEIGHT #= case
:: SIX sdrugskey ;
DUP THIRTYONE #= case
:: DROP ONE ;
DROP err
;
DUP err #= NOT UNTIL DROP
;
* buy drugs procedure
' ::
CLEARVDISP ZERO
BEGIN
DROP ZERO ZERO
"Drug # Afford " $>GROB INVGROB XYGROBDISP
"1-Cocaine " wallet prices ONE NTHELCOMP DROP %/ %IP a%>$ &$ DISPROW2
"2-Heroin " wallet prices TWO NTHELCOMP DROP %/ %IP a%>$ &$ DISPROW3
"3-Acid " wallet prices THREE NTHELCOMP DROP %/ %IP a%>$ &$ DISPROW4
"4-Weed " wallet prices FOUR NTHELCOMP DROP %/ %IP a%>$ &$ DISPROW5
"5-Speed " wallet prices FIVE NTHELCOMP DROP %/ %IP a%>$ &$ DISPROW6
"6-Ludes " wallet prices SIX NTHELCOMP DROP %/ %IP a%>$ &$ DISPROW7
"7-Exit FREE=" free a%>$ &$ EIGHT DISPN
WaitForKey DROP
:: DUP FORTYONE #= case
:: ONE bdrugskey ;
DUP FORTYTWO #= case
:: TWO bdrugskey ;
DUP FORTYTHREE #= case
:: THREE bdrugskey ;
DUP THIRTYSIX #= case
:: FOUR bdrugskey ;
DUP THIRTYSEVEN #= case
:: FIVE bdrugskey ;
DUP THIRTYEIGHT #= case
:: SIX bdrugskey ;
DUP THIRTYONE #= case
:: DROP ONE ;
DROP err
;
DUP err #= NOT UNTIL DROP
;
* bank procedure
' :: CLEARVDISP ZERO
BEGIN
DROP ZERO ZERO
" $$$ NYC BANK $$$ " $>GROB INVGROB XYGROBDISP
" 1 - Deposit" DISPROW3
" 2 - Withdraw" DISPROW4
" 3 - Scram" DISPROW5
" ACCOUNT: " account a%>$ &$ DISPROW7
" WALLET: " wallet a%>$ &$ EIGHT DISPN
WaitForKey DROP
:: DUP FORTYONE #= case
:: DROP
inputfm
DUP wallet %> IT :: DROP wallet ;
DUP %0 %< IT :: DROP % 0 ;
DUP wallet SWAP %- STOwallet account %+ STOaccount
CLEARVDISP err
;
DUP FORTYTWO #= case
:: DROP
inputfm
DUP account %> IT :: DROP account ;
DUP %0 %< IT :: DROP % 0 ;
DUP wallet %+ STOwallet account SWAP %- STOaccount
CLEARVDISP err
;
DUP FORTYTHREE #= case
::
DROP ONE
;
DROP err
; DUP err #= NOT UNTIL DROP
;
THREE
* copchase routine...check if cops are after you!
' ::
BEGIN ONE cops ZERO #= NOT IT
::
DROP CLEARVDISP ZERO ZERO
" COPCHASE " $>GROB INVGROB XYGROBDISP
" 1 - Fight " DISPROW2
" 2 - Run " DISPROW3
" 3 - PayOff" DISPROW4
" Weapon: "
{ "None" "Magnum" "Nine mm" "S.N. Special" } weapon ONE #+ NTHELCOMP DROP &$ DISPROW6
" Cops: " cops UNCOERCE a%>$ &$ DISPROW7
WaitForKey DROP
::
DUP FORTYONE #= case
:: DROP
weapon mag #= case
:: CLEARVDISP %RAN % 0.2 %> ITE
:: " You got one!" BIGDISPROW2 cops ONE #- STOcops err WaitForKey 2DROP ;
:: " Hit!!! Lose 1 Day" BIGDISPROW2 incday err WaitForKey 2DROP ;
;
weapon nmm #= case
:: CLEARVDISP %RAN % 0.4 %> ITE
:: " You got one!" BIGDISPROW2 cops ONE #- STOcops err WaitForKey 2DROP ;
:: " Hit!!! Lose 1 Day" BIGDISPROW2 incday err WaitForKey 2DROP ;
;
weapon spec #= case
:: CLEARVDISP %RAN % 0.6 %> ITE
:: " You got one!" BIGDISPROW2 cops ONE #- STOcops err WaitForKey 2DROP ;
:: " Hit!!! Lose 1 Day" BIGDISPROW2 incday err WaitForKey 2DROP ;
;
CLEARVDISP weapon none #= case
:: " Hit!!! Lose 1 Day" BIGDISPROW2 incday err WaitForKey 2DROP ;
;
DUP FORTYTWO #= case
:: DROP
CLEARVDISP %RAN % 0.4 %> ITE
:: " You got away!" BIGDISPROW2 WaitForKey 2DROP ONE ;
:: " They found you!" BIGDISPROW2
" Lose 2 Days!" BIGDISPROW3 incday incday err WaitForKey 2DROP
;
;
DUP FORTYTHREE #= case
:: DROP CLEARVDISP " The Cops take your $ " BIGDISPROW2 %0 STOwallet WaitForKey 2DROP ONE ;
DROP err
;
;
err #= NOT UNTIL THREE STOcops
;
* Choose event routine for after "Jet"
' :: randomize CLEARVDISP ZERO ZERO %RAN % 200 %* %RANDOMIZE
" !!! SUBWAY !!! " $>GROB INVGROB XYGROBDISP
{
:: " You find 5 units of" DISPROW3
%RAN %6 %* %1 %+ %IP DUP DUP
{ " Cocaine" " Heroin" " Acid" " Weed"
" Speed" " Ludes" }
SWAP COERCE NTHCOMPDROP DISPROW4
" On a dead guy in the" DISPROW5
" Subway" DISPROW6
trench SWAP COERCE NTHCOMPDROP
free %5 %< ITE :: DROP free ; %5 %+ SWAP COERCE trench PUTLIST STOtrench
WaitForKey 2DROP
;
:: " 3 Cops Are After You" DISPROW4 WaitForKey 2DROP copchase ;
:: " You found a used" DISPROW3
%RAN %3 %* %1 %+ %IP DUP
{ " Magnum!" " Nine Millimeter!" " S.N. Special!" }
SWAP COERCE NTHCOMPDROP DISPROW4
COERCE STOweapon WaitForKey 2DROP
;
:: " Cops are selling " DISPROW3
%RAN %6 %* %1 %+ %IP DUP DUP
{ " Cocaine" " Heroin" " Acid" " Weed"
" Speed" " Ludes" }
SWAP COERCE NTHCOMPDROP DISPROW4
"real cheap from raid!!" DISPROW5
{ % 10000 % 7000 % 500 % 200 % 100 %2 }
SWAP COERCE NTHCOMPDROP SWAP COERCE prices PUTLIST STOprices
WaitForKey 2DROP
;
:: %RAN %6 %* %1 %+ %IP DUP DUP
{ " Cocaine" " Heroin" " Acid" " Weed"
" Speed" " Ludes" } SWAP COERCE NTHCOMPDROP
" addicts are" &$ DISPROW3
" buying at outrageous" DISPROW4
" prices!" DISPROW5
{ % 52443 % 35118 % 26561 % 20965 % 14931 % 7000 }
SWAP COERCE NTHCOMPDROP SWAP COERCE prices PUTLIST STOprices
WaitForKey 2DROP
;
:: " You are mugged !!!!" DISPROW3
" All your drugs" DISPROW4
" Are gone!" DISPROW5
{ %0 %0 %0 %0 %0 %0 } STOtrench WaitForKey 2DROP
;
:: " BUSTED !!!" DISPROW3
" Cops take your $" DISPROW4
" and beat you up !!!" DISPROW5
" LOSE 1 DAY" DISPROW6
incday %0 STOwallet WaitForKey 2DROP
;
}
%RAN %12 %* %1 %+ %IP
DUP %8 %= case :: DROP TWO NTHCOMPDROP EVAL ;
DUP %9 %= case :: DROP ONE NTHCOMPDROP EVAL ;
DUP %10 %= case :: DROP THREE NTHCOMPDROP EVAL ;
DUP %11 %= case :: DROP FOUR NTHCOMPDROP EVAL ;
DUP %12 %= case :: DROP FIVE NTHCOMPDROP EVAL ;
COERCE NTHCOMPDROP EVAL
;
* Jet routine handler
' ::
ZERO
BEGIN
DROP ZERO ZERO
CLEARVDISP " <-- JET! --> " $>GROB INVGROB XYGROBDISP
"1 - The Bronx" DISPROW2
"2 - Brooklyn" DISPROW3
"3 - Manhattan" DISPROW4
"4 - The Ghetto" DISPROW5
"5 - Central Park" DISPROW6
"6 - Oops...Stay" DISPROW7
"7 - Suicide" EIGHT DISPN
WaitForKey DROP
:: DUP FORTYONE #= case :: DROP locat bronx #= case :: err ; bronx STOlocat incday day % 30 %>=
case :: err ONE ; doevent ONE ONE ;
DUP FORTYTWO #= case :: DROP locat brook #= case :: err ; brook STOlocat incday day % 30 %>=
case :: err ONE ; doevent ONE ONE ;
DUP FORTYTHREE #= case :: DROP manha locat #= case :: err ; manha STOlocat incday day % 30 %>=
case :: err ONE ; doevent ONE ONE ;
DUP THIRTYSIX #= case :: DROP getto locat #= case :: err ; getto STOlocat incday day % 30 %>=
case :: err ONE ; doevent ONE ONE ;
DUP THIRTYSEVEN #= case :: DROP cpark locat #= case :: err ; cpark STOlocat incday day % 30 %>=
case :: err ONE ; doevent ONE ONE ;
DUP THIRTYEIGHT #= case :: DROP ONE ONE ;
DUP THIRTYONE #= case :: DROP err ONE ;
DROP err
;
DUP err #= NOT UNTIL DROP
;
* show whats in the trenchcoat routine
' ::
CLEARVDISP
"Cocaine: " trench ONE NTHCOMPDROP a%>$ &$ DISPROW1
"Heroin: " trench TWO NTHCOMPDROP a%>$ &$ DISPROW2
"Acid: " trench THREE NTHCOMPDROP a%>$ &$ DISPROW3
"Weed: " trench FOUR NTHCOMPDROP a%>$ &$ DISPROW4
"Speed: " trench FIVE NTHCOMPDROP a%>$ &$ DISPROW5
"Ludes: " trench SIX NTHCOMPDROP a%>$ &$ DISPROW6
" WEAPON: " { "none" "Magnum" "NMM" "S.N.S" } weapon ONE #+ NTHCOMPDROP &$ DISPROW7
" WALLET: " wallet a%>$ &$ EIGHT DISPN
WaitForKey 2DROP
;
* loan shark procedure
' :: CLEARVDISP ZERO
BEGIN
DROP ZERO ZERO
" $$$ LOAN SHARK $$$ " $>GROB INVGROB XYGROBDISP
" 1 - Repay" DISPROW3
" 2 - Borrow" DISPROW4
" 3 - Scram" DISPROW5
" DEBT: " debt a%>$ &$ DISPROW7
" WALLET: " wallet a%>$ &$ EIGHT DISPN
WaitForKey DROP
:: DUP FORTYONE #= case
:: DROP
inputfm
DUP wallet %> IT :: DROP wallet ;
DUP debt %> IT :: DROP debt ;
DUP %0 %< IT :: DROP % 0 ;
DUP wallet SWAP %- STOwallet debt SWAP %- STOdebt
CLEARVDISP err
;
DUP FORTYTWO #= case
:: DROP
inputfm
DUP % 5000 %> IT :: DROP % 5000 ;
DUP %0 %< IT :: DROP % 0 ;
DUP wallet %+ STOwallet debt %+ STOdebt
CLEARVDISP err
;
DUP FORTYTHREE #= case
::
DROP ONE
;
DROP err
; DUP err #= NOT UNTIL
DROP
;
* main menu procedure
' :: CLEARVDISP ZERO
BEGIN DROP ZERO ZERO
" DRUGWAR!!! " $>GROB INVGROB XYGROBDISP
" 1 - See Prices" DISPROW2
" 2 - Trenchcoat" DISPROW3
" 3 - Buy" DISPROW4
" 4 - Sell" DISPROW5
" 5 - Jet" DISPROW6
bronx locat #= IT :: " 6 - See Loan Shark" DISPROW7 ;
brook locat #= IT :: " 6 - Go To Bank" DISPROW7 ;
manha locat #= IT :: " 6 - Wall Street" DISPROW7 ;
WaitForKey DROP
:: DUP FORTYONE #= case :: DROP ONE ;
DUP FORTYTWO #= case :: DROP TWO ;
DUP FORTYTHREE #= case :: DROP THREE ;
DUP THIRTYSIX #= case :: DROP FOUR ;
DUP THIRTYSEVEN #= case :: DROP FIVE ;
DUP THIRTYEIGHT #= locat bronx #= AND case :: DROP SIX ;
DUP THIRTYEIGHT #= locat brook #= AND case :: DROP SEVEN ;
DUP THIRTYEIGHT #= locat manha #= AND case :: DROP EIGHT ;
DROP err
;
DUP err #= NOT UNTIL
;
* display prices procedure
' ::
CLEARVDISP ZERO ZERO
" PRICES " $>GROB INVGROB XYGROBDISP
"Cocaine: " prices ONE NTHCOMPDROP a%>$ &$ DISPROW2
"Heroin: " prices TWO NTHCOMPDROP a%>$ &$ DISPROW3
"Acid: " prices THREE NTHCOMPDROP a%>$ &$ DISPROW4
"Weed: " prices FOUR NTHCOMPDROP a%>$ &$ DISPROW5
"Speed: " prices FIVE NTHCOMPDROP a%>$ &$ DISPROW6
"Ludes: " prices SIX NTHCOMPDROP a%>$ &$ DISPROW7
" Day[" day a%>$ &$ "]" &$ EIGHT DISPN
WaitForKey 2DROP
;
* randomize prices procedure
' ::
%0 %RANDOMIZE NULL{}
%RAN % 10000 %* % 15000 %+ %0 RNDXY >TCOMP
%RAN % 9000 %* % 9000 %+ %0 RNDXY >TCOMP
%RAN % 4000 %* % 2001 %+ %0 RNDXY >TCOMP
%RAN % 2000 %* % 400 %+ %0 RNDXY >TCOMP
%RAN % 400 %* % 100 %+ %0 RNDXY >TCOMP
%RAN % 200 %* % 20 %+ %0 RNDXY >TCOMP
STOprices
;
{ %0 %0 %0 %0 %0 %0 } bronx %0 % 2000 none %1 % 5000 { %0 %0 %0 %0 %0 %0 }
' NULLLAM TWENTYSEVEN NDUPN
TWENTYEIGHT DOBIND CLEARMENU RECLAIMDISP TURNMENUOFF
ASSEMBLE
CON(5) =DOGROB
REL(5) end
CON(5) 56
CON(5) 130
NIBHEX 00000000000000000000000000000000000000000000
NIBHEX 000000000000000000000000CCF00000000000000003
NIBHEX 00030000000000CFF100000000000000030103000000
NIBHEX 0000C383000000000000000381030000000000C18300
NIBHEX 0000000000000381030000000000C007000000000000
NIBHEX 000383030000000000C0060000000000000003838300
NIBHEX 00000000C006000000000000000383810000000000C0
NIBHEX 06000000000000000383810083000000C0060037083C
NIBHEX 000C7003C78100F7007E00C00600BF083C000E7006C6
NIBHEX 810836006F00C00600FD003C00037006C6C10C1600ED
NIBHEX 10C00600FC003C00817006C6C0080600EC10C006007C
NIBHEX 003C0081700646C00006006C00C0070030003C00C070
NIBHEX 046CC00007006000C0070030003C00C070046CC000C7
NIBHEX 006000C0030030003C00E0700C6C4000F6006000C083
NIBHEX 0030003C0068700C28600836006000C0810030003C00
NIBHEX 68700C38700C16006000C0C10030003C0068700C3870
NIBHEX 0C07006000C0E00030003C006C700C38700687006000
NIBHEX C8700030083E0066600C187006C6006000CD30003000
NIBHEX BF0066600C103006E6006000CF00007000FD10E3600C
NIBHEX 10300E76007000C300003000FC00C1600800300E1200
NIBHEX 20000000000000000000700000000000000000000000
NIBHEX 00000000007000000000000000000000000000000000
NIBHEX 30000000000000000000000000000000003000000000
NIBHEX 0000000000000000408100C830000000000000000000
NIBHEX 000000C98100CF10000000000000000000000000C991
NIBHEX 008F0000000000000000000000007003130000000000
NIBHEX 000000000000000800E1033100000000000000000000
NIBHEX 00000C10830623000000000000000000000000083007
NIBHEX 322300000000000000000000000000F1062223000000
NIBHEX 00000000000000000000C30462660000000000000000
NIBHEX 00000000000F06424E30000000000000000000000000
NIBHEX 0C1646081000000000000000000000000008164E0000
NIBHEX 00000000000000000000000000364EF0000000000000
NIBHEX 000000000000000076C070CFFFFFFFF7000000000000
NIBHEX 0000002C800EFFFFFFFFFF1000000000000000002C93
NIBHEX 0FF70E1E10FD7000000000000000002B32CFFF1C3C70
NIBHEX 83E700000000000000002370EF783070F0078F000000
NIBHEX 000000000022E1CF70F0C1C0060C0000000000000000
NIBHEX 2E30CF70C181810E0F00000000000000002C300FF081
NIBHEX 83810CC7000000000000000070000EFF0303030CF100
NIBHEX 00000000000000608FF0CFF7078FFF10000000000000
NIBHEX 0000CFFFF108FFFFFFFF0000000000000000008FF000
NIBHEX 00000000000000000000000000000000000000000000000000000000
end
RPL
ZERO SWAP ZERO SWAP XYGROBDISP WaitForKey 2DROP randomize err
BEGIN err #= WHILE
mainmenu
::
DUP ONE #= case :: DROP dispprices err ;
DUP TWO #= case :: DROP trenchcoat err ;
DUP THREE #= case :: DROP buydrugs err ;
DUP FOUR #= case :: DROP selldrugs err ;
DUP FIVE #= case :: DROP jet err #= ITE ONE err ;
DUP SIX #= case :: DROP shark err ;
DUP SEVEN #= case :: DROP gobank err ;
DUP EIGHT #= case :: DROP wallstreet err ;
;
REPEAT
CLEARVDISP
" GAME OVER STATUS " BIGDISPROW2
wallet account %+ stocks %+ debt %- DUP %0 %< IT :: DROP %0 ;
::
DUP % 20000 %< case :: DROP " Druggie" ;
DUP % 50000 %< case :: DROP " Pusher" ;
DUP % 200000 %< case :: DROP " Gangster" ;
DUP % 500000 %< case :: DROP " Lord" ;
DUP % 900000 %<= case :: DROP " Ring Leader" ;
DUP % 900000 %> case :: DROP " DEA Administrator" ;
;
BIGDISPROW3 WaitForKey 2DROP ABND GARBAGE
TURNMENUON ClrDAsOK
;