1 REM ******************************   MENU.BAS ************************
2 A$="COPYRIGHT 1984, BELLSOFT, INC"
3 A$="Written By: OMNIMAX, Ltd. "
50      DIM GAME$(10),HS!(10),HN$(10),P$(25)
55      GOSUB 30000
60      SCREEN 0,0 : KEY OFF
71      KEY 1,"1"
72      KEY 2,"2"
73      KEY 3,"3"
74      KEY 4,"4"
75      KEY 5,"5"
76      KEY 6,"6"
110     GOSUB 40000
120     IF CLR%=1 THEN COLOR 7,0,0
125     PRINT CHR$(12);
130     IF TV%=0 THEN WIDTH 80 ELSE WIDTH 40
135     IF TV%=0 THEN T%=20 ELSE T%=1
140     PRINT TAB(T%);"         Omnigame Disk #1 "
150     PRINT TAB(T%);"    All games on this disk are;"
160     PRINT TAB(T%);"   COPYRIGHT 1984, BELLSOFT, INC"
170     PRINT TAB(T%);"     Written By: OMNIMAX, Ltd. "
180     PRINT : PRINT
195     PRINT TAB(T%);"key    file     special notes"
197     PRINT
198     PRINT TAB(T%);"F1 : ";GAME$(0);" : Black Jack             "
200     PRINT TAB(T%);"F2 : ";GAME$(1);" : R.R.R:BIG(Req:Graphics)"
202     PRINT TAB(T%);"F3 : ";GAME$(2);" : R.R.R:SML(Req:Graphics)"
204     PRINT TAB(T%);"F4 : ";GAME$(3);" : Mad Maze               "
206     PRINT TAB(T%);"F5 : ";GAME$(4);" : Bouncing Bad Beasties  "
208     PRINT TAB(T%);"F6 : ";GAME$(5);" : Wonder-Worm            "
230     PRINT TAB(T%);"<R>:  RESET   : Music/Color/TV settings"
240     PRINT : PRINT
250     PRINT TAB(T%);"Choice:";
260     IF MSC% THEN PLAY "mf X"+VARPTR$(P$(M%))
270     M%=M%+1 : IF M%=26 THEN M%=0
280     K$=INKEY$
290     IF K$="" THEN GOTO 260
295     IF LEN(K$)=2 AND RIGHT$(K$,1)=CHR$(131) THEN GOTO 49000
300     IF K$=>"1" AND K$<="6" THEN GOTO 1000
310     IF K$="r" OR K$="R" THEN GOTO 3000 ELSE GOTO 260
1000 REM number pressed : run game
1010    ON VAL(K$) GOTO 2000,2100,2200,2300,2400,2500
1020    GOTO 260
2000 REM BLACK JACK
2010    GAM$="BLK-JACK"
2020    GOTO 65000
2100 REM RAILROAD RUNNER BIG PICTURES
2110    GAM$="RRR-BIG "
2120    GOTO 65000
2200 REM RAILROAD RUNNER SMALL PICTURES
2210    GAM$="RRR-SML "
2220    GOTO 65000
2300 REM MAD MAZE
2310    GAM$="MADMAZES"
2320    GOTO 65000
2400 REM BAD BEASTIES
2410    GAM$="BEASTIES"
2420    GOTO 65000
2500 REM WIGGLE
2510    GAM$="WIGGLER "
2520    GOTO 65000
3000 REM reset program chosen
3010    GAM$="RESET   "
3020    GOTO 65000
30000 REM set-up music
30010    FOR C%=0 TO 25
30020           READ P$(C%)
30030           NEXT C%
30040   RETURN
32000  REM      Prep-Voice 1
32010  DATA "o5mn"
32020  REM  (1)Voice1
32030  DATA "mlg16e16f16d16mne8c8"
32040  DATA "d8o4b8o5c8o4g8"
32050  DATA "mlg16e16f16d16mne8c8"
32060  DATA "o3g8b8o4c4"                :REM first o5 made o3
32070  DATA "mlg16e-16f16d16mne8c8"
32080  DATA "o3b8o4d8c8o3g8"
32090  DATA "mlo4g16e-16f16d16mne8c8"
32100  DATA "o3g8b8o4c4"
32110  DATA "o3a-16b-16a16b16o4c8d8"
32120  REM  (10)Voice1
32130  DATA "e-8c8d8g8"
32140  DATA "o3a-16b-16a16b16o4c8d8"
32150  DATA "e-8c8o3g4"
32160  DATA "a16b16a16b16o4c8d8"
32170  DATA "e8c8d8g8"
32180  DATA "o3a16b16a16b16o4c8d8"
32190  DATA "e8c8o3g4"
32200  DATA "o4g16e16f16d16e8c8"
32210  DATA "d8o3b8o4c8o3g8"
32220  REM  (19)Voice1
32230  DATA "o4e16g16f16d16e8c8"
32240  DATA "o3g8b8o4c4"
32250  DATA "g16e-16f16d16e8c8"
32260  DATA "o3b8o4d8c8o3g8"
32270  DATA "o4e-16g16f16d16e8c8"
32280  DATA "o3g8b8o4c2"
32290  DATA "p2"
40000 REM field, open, read, write the system & score file
40010    IF SYSTM%=1 THEN GOTO 41130
40020    SYSTM%=1
40030    OPEN "R", #1, "SCORES.DAT",120
40040    FIELD #1,4 AS SYN0$,4 AS SYN1$,4 AS SYN2$,4 AS SYN3$,4 AS SYN4$,4 AS SYN5$,4 AS SYN6$,4 AS SYN7$,4 AS SYN8$,4 AS SYN9$
40050    FIELD #1,40 AS SYJNK$,8 AS SYA0$,8 AS SYA1$,8 AS SYA2$,8 AS SYA3$,8 AS SYA4$,8 AS SYA5$,8 AS SYA6$,8 AS SYA7$,8 AS SYA8$,8 AS SYA9$
40060    GET #1,1
40070    CLR%=INT(CVS(SYN0$))                    :REM color?     1=yes & 0=no
40080    TV%=INT(CVS(SYN1$))                     :REM TV?        1=yes & 0=no
40090    MSC%=INT(CVS(SYN2$))                    :REM Joystick?  1=yes & 0=no
40100    GAME$(0)=SYA0$                          :REM name of game #0
40110    GAME$(1)=SYA1$                          :REM name of game #1
40120    GAME$(2)=SYA2$                          :REM name of game #2
40130    GAME$(3)=SYA3$                          :REM name of game #3
40140    GAME$(4)=SYA4$                          :REM name of game #4
40150    GAME$(5)=SYA5$                          :REM name of game #5
40160    GAME$(6)=SYA6$                          :REM name of game #6
40170    GAME$(7)=SYA7$                          :REM name of game #7
40180    GAME$(8)=SYA8$                          :REM name of game #8
40190    GAME$(9)=SYA9$                          :REM name of game #9
40200   RETURN
41000 REM get high scores for this game
41010    GET #1,GAMESYSREC%
41020    HS!(0)=CVS(SYN0$) : HN$(0)=SYA0$
41030    HS!(1)=CVS(SYN1$) : HN$(1)=SYA1$
41040    HS!(2)=CVS(SYN2$) : HN$(2)=SYA2$
41050    HS!(3)=CVS(SYN3$) : HN$(3)=SYA3$
41060    HS!(4)=CVS(SYN4$) : HN$(4)=SYA4$
41070    HS!(5)=CVS(SYN5$) : HN$(5)=SYA5$
41080    HS!(6)=CVS(SYN6$) : HN$(6)=SYA6$
41090    HS!(7)=CVS(SYN7$) : HN$(7)=SYA7$
41100    HS!(8)=CVS(SYN8$) : HN$(8)=SYA8$
41110    HS!(9)=CVS(SYN9$) : HN$(9)=SYA9$
41120    RETURN
41130 REM put away new high score if appropriate
41140 REM if highest amoung 10 is desired then jump to >>>>>> 2000
41150    IF HS!(K99%)>SCORE! THEN RETURN
41160    GOSUB 41370
41170    HS!(K99%)=SCORE!
41180    HN$(K99%)=NNAME$
41190    GOSUB 42000
41200    RETURN
41210 REM highest score if higher than lowest
41220    IF SCORE!<HS!(9) THEN RETURN
41230    HSCORE!=SCORE! : HNAME$="????????"
41240    FOR C%=0 TO 9
41250        IF HSCORE!>HS!(C%) THEN SWAP HSCORE!,HS!(C%) : SWAP HNAME$,HN$(C%)
41260        NEXT C%
41270    IF CLR%=1 THEN COLOR 0,7
41280    LOCATE 1,1
41290    FOR C%=0 TO 9
41300        PRINT HS!(C%);TAB(12);HN$(C%);"   "
41310        IF SCORE!=HS!(C%) THEN K98%=C%
41320        NEXT C%
41330    GOSUB 41370
41340    HN$(K98%)=NNAME$
41350    GOSUB 42000
41360    RETURN
41370 REM collect new highest name
41380    IF CLR%=1 THEN COLOR 0,7
41390    LOCATE 11,1 : PRINT "                                      ";
41400    LOCATE 12,1 : PRINT "                                      ";
41410    LOCATE 13,1 : PRINT "                                      ";
41420    LOCATE 12,1
41430    PRINT " ";SCORE!;"=NEW HIGHEST!  Name?:";
41440    GOSUB 42130
41450    INPUT " ",NNAME$
41460    IF LEN(NNAME$)>8 THEN GOTO 41370
41470    IF CLR%=1 THEN COLOR 15,0
41480    RETURN
41490 REM system error
41500       CLS
41510       LOCATE 10,10
41520       PRINT "Game Disk has been Copied or Modified!"
41530       LOCATE 11,10
41540       PRINT "See your dealer .........";
41550       GOTO 41550
42000 REM ----------   put away scores
42010    LSET SYN0$=MKS$(HS!(0)) : LSET SYA0$=HN$(0)
42020    LSET SYN1$=MKS$(HS!(1)) : LSET SYA1$=HN$(1)
42030    LSET SYN2$=MKS$(HS!(2)) : LSET SYA2$=HN$(2)
42040    LSET SYN3$=MKS$(HS!(3)) : LSET SYA3$=HN$(3)
42050    LSET SYN4$=MKS$(HS!(4)) : LSET SYA4$=HN$(4)
42060    LSET SYN5$=MKS$(HS!(5)) : LSET SYA5$=HN$(5)
42070    LSET SYN6$=MKS$(HS!(6)) : LSET SYA6$=HN$(6)
42080    LSET SYN7$=MKS$(HS!(7)) : LSET SYA7$=HN$(7)
42090    LSET SYN8$=MKS$(HS!(8)) : LSET SYA8$=HN$(8)
42100    LSET SYN9$=MKS$(HS!(9)) : LSET SYA9$=HN$(9)
42110    PUT #1, GAMESYSREC%
42120    RETURN
42130 REM play new high tune
42140    IF MSC% THEN PLAY "mbo5mn"
42150    IF MSC% THEN PLAY "mbg16e16f16d16e8c8d8o4b8o5c8o4g8g16e16f16d16e8c8o3g8b8o4c4"
42170    IF MSC% THEN PLAY "mbg16e-16f16d16e8c8o3b8o4d8c8o3g8o4g16e-16f16d16e8c8o3g8b8o4c2"
42190    RETURN
65000 REM exit to a game or the reset program
65010   CLOSE
65020   IF CLR%=1 THEN COLOR 15,0,0
65030   CLS
65040   RUN GAM$
