Jump to content
IGNORED

Super Frogger


Recommended Posts

Hello. I have a tape with a frogger game titled, Super Frogger. The frog has to be moved from the left side to the right side instead of botton to top. There's two versions, one joystick controlled and one keyboard controlled. They were saved in protected mode so can't copy to disk or list. When the program starts it asks if my machine has the hardware problem. Alpha lock? It also asks if I want to play the advanced level and when I say yes it asks for a password. I don't know the password. Anybody know more about this game? Thanks.

  • Like 1
Link to comment
Share on other sites

100 RANDOMIZE :: CALL CLEAR :: CALL SCREEN(16) :: DISPLAY AT(6,8):"SUPER FROGGER": : :"       COPYRIGHT 1982": : :"       NORTON SOFTWARE" :: FOR I=1 TO 200 :: NEXT I
101 DISPLAY AT(6,6)ERASE ALL:"DOES YOUR MACHINE HAVE THE       HARDWARE PROBLEM" :: ACCEPT AT(10,12)VALIDATE("YN")SIZE(1):ANS$ :: IF ANS$="Y" THEN BBB=1
110 DISPLAY AT(6,6)ERASE ALL:"  DO YOU WANT TO PLAY THE         ADVANCED LEVEL" :: ACCEPT AT(10,12)VALIDATE("YN")SIZE(1):ANS$ :: IF ANS$="N" THEN 140
120 DISPLAY AT(12,2):"OKAY, WHATS THE PASSWORD ?" :: ACCEPT AT(15,6):ANS$ :: IF ANS$="MILLIPEDE" THEN ZQ=5 :: GOTO 140 ELSE DISPLAY AT(17,6):"SORRY THAT'S WRONG"
130 FOR I=1 TO 200 :: NEXT I :: CALL CLEAR :: GOTO 110
140 DIM MS$(11) :: MS$(1)="    RATING: AMUSING" :: MS$(2)="    RATING: TADPOLE" :: MS$(3)="  KERMIT COULD DO BETTER       CARRYING MISS PIGGY"
150 MS$(5)="  THE SECRET PASSWORD IS             MILLIPEDE" :: MS$(4)="FROM YOUR PERFORMANCE, I CANSEE  THAT YOU NEVER  PLAY   VIDEO GAMES"
160 MS$(6)="THERE IS HOPE FOR YOU YET" :: MS$(7)=" NOT BAD FOR AN AMPHIBIAN" :: MS$(8)=" GOOD, KEEP THIS UP AND THE  PRINCESS MAY START LOOKING  AT YOU."
170 MS$(9)="EXCELENT SHE'S COMING THIS  WAY" :: MS$(10)="THE PRINCESS KISSES YOU     (YUCK) !!! AND YOU TURN INTOA UGLY PRINCE WITH WEBBED   FEET"
180 MS$(11)="   BET YOU CAN'T MAKE IT TO THE NEXT SCREEN"
190 CALL CLEAR :: CALL SCREEN(2) :: CALL MAGNIFY(4)
200 DIM C(9),D(16)
210 C(0)=96 :: C(1)=108 :: C(9)=104 :: C(8)=100 :: GOSUB 220 :: GOSUB 250 :: GOTO 350
220 CALL COLOR(1,3,5) :: CALL COLOR(2,12,13) :: CALL COLOR(3,2,13) :: CALL COLOR(4,2,13) :: CALL COLOR(5,11,7) :: CALL COLOR(6,15,5)
230 FOR I=69 TO 77 STEP 4 :: CALL CHARPAT(I,GAR$) :: CALL CHAR(58+(I-69)/4,GAR$) :: NEXT I :: CALL CHARPAT(84,GAR$) :: CALL CHAR(61,GAR$)
240 CALL COLOR(7,7,1) :: RETURN
250 CALL CHAR(40,"0540128010452004") :: CALL CHAR(48,"F0F0F0F0F0F0F0F0") :: CALL CHAR(49,"F0F0F0F0FFFFFFFF") :: CALL CHAR(50,"00000000F0F0F0F0")
260 CALL CHAR(51,"F0F0F0F000000000") :: CALL CHAR(52,"FFFFFFFFF0F0F0F0") :: CALL CHAR(53,"00000000FFFFFFFF") :: CALL CHAR(54,"F0F0F0F0F0F0F0F0")
270 CALL CHAR(55,"FFFFFFFF00000000") :: CALL CHAR(56,"FFFFFFFFFFFFFFFF") :: CALL CHAR(57,"0242128010442004") :: CALL CHAR(64,RPT$("F",16))
280 CALL CHAR(65,"8383838383838383") :: CALL CHAR(66,"FFFFFFFF83838383") :: CALL CHAR(63,"0343138111452105") :: CALL CHAR(33,RPT$("3F",8)) :: CALL CHAR(34,RPT$("FC",8))
290 CALL CHAR(88,"81838783A1B5A393A397A7AFAFFFE7C3"&RPT$("0",18)) :: CALL CHAR(84,"C3FFDFDFDFCFCFCFC7C7878383838381"&RPT$("0",18))
300 CALL CHAR(35,RPT$("F8",8)) :: CALL CHAR(132,"C3EFF7EFF7C3"&RPT$("0",42)) :: CALL CHAR(92,"102020100804040810202010080C0C08"&RPT$("0",18))
310 CALL CHAR(68,"0000000000003C24243C"&RPT$("0",34)) :: CALL CHAR(76,"3333303033333C3C33333C3C33333333FCFCCCCCF0F0F0F0F0F0C0C0C0C0")
320 CALL CHAR(72,"0000001C0407173F3F1707041C0000000000001C1090D0F8F8D090101C0000") :: CALL CHAR(44,"00001C2A3E141C"&RPT$("0",40))
330 CALL CHAR(80,"00010367FFFB7F7D3E7BEDDF7E3E1C0000868F9FF6FCD8F0D0F0B8F878300000") :: CALL CHAR(36,RPT$("1F",8))
340 CALL CHAR(41,RPT$("3F",8)) :: CALL CHAR(42,RPT$("FC",8)) :: CALL CHAR(62,"99BDFF3C3CE78181") :: RETURN
350 CALL CHAR(104,"00002A3E1C3E22"&RPT$("0",36)) :: CALL CHAR(100,"0000223E1C3E2A"&RPT$("0",36)) :: CALL CHAR(108,"0000361C1E1C36"&RPT$("0",40))
360 CALL CHAR(96,"0000361C3C1C36"&RPT$("0",40)) :: CALL CHAR(112,"0000000000183C3C663C243C66663C00"&RPT$("0",18))
370 CALL CHAR(128,"00183C663C183C7E3C3C3C3C7E7E3C00"&RPT$("0",18)) :: CALL CHAR(116,"0000003C6624247E187E5A5A00000000"&RPT$("0",18))
380 CALL CHAR(120,"00000000183C663C3C663C1800000000"&RPT$("0",18)) :: CALL CHAR(124,"00187E7E3C187E7E187E427E7E3C0000"&RPT$("0",18))
390 CALL CHAR(140,"99A5DBE7FFFFFFFFFFFFFFFFFFFFE7C3"&RPT$("0",18)) :: CALL CHAR(136,"C3"&RPT$("F",14)&"FFFFFFFFE7E7C3DB"&RPT$("0",18))
400 SCR1=0 :: PNT=0 :: FSC=0 :: FG=04 :: LCC=1 :: SCR=0+ZQ :: SD=07
410 CALL VCHAR(1,29,40,96) :: CALL VCHAR(1,16,57,48) :: CALL VCHAR(1,6,56,240) :: CALL VCHAR(1,4,57,48) :: CALL VCHAR(1,1,64,72)
420 SC=0 :: CF=32 :: CCF=32 :: CALL VCHAR(1,3,40,7) :: CALL VCHAR(13,3,65,12) :: FOR I=2 TO 6 STEP 2 :: IF(I/2)+1>FG THEN 430 ELSE CALL VCHAR(I,3,62)
430 NEXT I :: FOR I=1 TO 19 STEP 6 :: CALL HCHAR(I,28,48) :: CALL HCHAR(I+1,28,49) :: CALL HCHAR(I+1,30,50) :: CALL HCHAR(I+4,30,51) :: CALL HCHAR(I+4,28,52)
440 CALL HCHAR(I+5,28,48) :: CALL HCHAR(I+1,29,53) :: CALL VCHAR(I+2,30,54,2) :: CALL HCHAR(I+4,29,55) :: CALL HCHAR(I+2,28,32,2)
450 CALL HCHAR(I+3,28,32,2) :: NEXT I :: CALL VCHAR(1,17,63,24)
460 CALL VCHAR(8,3,61) :: CALL VCHAR(9,3,59) :: CALL VCHAR(10,3,60) :: CALL VCHAR(11,3,58)
470 ON ERROR 1130
480 D(9)=-.75*SD :: D(10)=SD :: D(11)=2*SD :: D(12)=-.75*SD :: D(13)=SD
490 SPRT$="023579"&RPT$("9",100) :: IHS$="212519101712150916" :: SPT1$="0366"&RPT$("6",100)
500 DATA 2,140,1,153,1,3,140,81,153,1,4,140,161,153,1,5,140,41,201,1,6,140,121,201,1
510 DATA 7,140,201,201,1,22,128,25,105,-1.5,14,124,1,89,1,24,120,1,73,-1.5,20,120,153,73,-1.5
520 DATA 13,116,41,57,1,11,116,161,57,1,23,112,49,41,-1.5,18,112,177,41,-1.5
530 DATA 16,128,129,105,-1.5,9,124,121,89,1,15,124,193,89,1,12,116,225,57,1,17,112,97,41,-1.5
540 DATA 10,116,81,57,1,19,112,225,41,-1.5,25,120,73,73,-1.5,21,120,201,73,-1.5
550 DATA 8,140,33,169,2,9,140,129,169,2,10,140,225,169,2,25,92,67,169,2,26,92,163,169,2
560 DATA 20,116,1,41,2,21,124,65,57,2
570 DATA 22,116,97,73,2,23,124,161,89,2,24,116,193,105,2,27,68,223,153,1
580 DATA 11,136,1,137,-.75,12,136,129,137,-.75,15,136,33,185,-.75,16,136,161,185,-.75
590 DATA 13,132,65,137,-.75,14,132,193,137,-.75,17,132,97,185,-.75,18,132,225,185,-.75
600 DATA 2,84,1,153,1,3,88,49,153,1,4,140,161,153,1,5,84,81,201,1
610 DATA 6,88,129,201,1,7,140,201,201,1
620 REM  WATER MANAGEMENT AND TRAFFIC CONTROL DIVISON OF FROGGER !!!!
630 CALL VCHAR(1,18,32,240) :: IF SP=1 THEN 730 ELSE CALL DELSPRITE(ALL)
640 SCR=SCR+1 :: SRI=VAL(SEG$(SPRT$,SCR,1))+14 :: RESTORE 500
650 FOR I=1 TO SRI :: READ T1,T2,T4,T5,T6 :: CALL SPRITE(#T1,T2,1,MAX(T4-(INT((T4+I*T6*SD*.086)/257)*256)+I*T6*SD*.086,2)-1,T5) :: NEXT I
660 IF SP=1 THEN 760 ELSE CALL MOTION(#2,SD,0,#3,SD,0,#4,SD,0,#5,SD,0,#6,SD,0,#7,SD,0,#22,-SD,0,#14,SD,0,#24,-SD,0,#20,-SD,0)
670 CALL MOTION(#13,SD,0,#11,SD,0,#23,-SD,0,#18,-SD,0,#16,-SD,0,#9,SD,0,#15,SD,0,#12,SD,0,#17,-SD,0)
680 CALL MOTION(#10,SD,0,#19,-SD,0,#25,-SD,0,#21,-SD,0,#8,SD,0)
690 CALL DELSPRITE(#8) :: FOR I=1 TO 9-VAL(SEG$(SPRT$,SCR,1)) :: CALL DELSPRITE(#VAL(SEG$(IHS$,I*2-1,2))) :: NEXT I
700 CALL COLOR(#2,5,#3,5,#4,5,#5,5,#6,5,#7,5,#9,15,#10,10,#11,10,#12,10,#13,10)
701 IF BBB=1 THEN CALL DELSPRITE(#7,#15,#12,#19,#21)
710 CALL COLOR(#14,15,#15,15,#16,5,#17,3,#18,3,#19,3,#20,6,#21,6,#22,5,#23,3,#24,6,#25,6)
720 SP=1 :: FOR I=1 TO 2 :: CALL VCHAR(1,19+I,I+32,24) :: CALL VCHAR(1,25+I,I+32,24) :: NEXT I :: GOTO 860
730 CALL VCHAR(1,18,32,240) :: CALL DELSPRITE(#1,#9,#10,#11,#12,#13,#14,#15,#16,#17,#18,#19,#20,#21,#22,#23,#24,#25)
740 CALL SOUND(800,440,0,880,0,263,0) :: IF SCR=2 THEN CALL DELSPRITE(#2,#3,#4)ELSE IF SCR>=3 THEN CALL DELSPRITE(#2,#3,#4,#5,#6,#7)
750 RESTORE 550 :: SRI=VAL(SEG$(SPT1$,SCR,1))+19 :: GOTO 650
760 SP=0 :: SE=2*SD :: SF=-.75*SD
770 CALL MOTION(#8,SE,0,#9,SE,0,#10,SE,0,#25,SE,0,#26,SE,0,#20,SE,0,#21,SE,0,#22,SE,0,#23,SE,0,#24,SE,0,#27,SD,0)
780 CALL MOTION(#11,SF,0,#12,SF,0,#15,SF,0,#16,SF,0,#13,SF,0,#14,SF,0,#17,SF,0,#18,SF,0)
790 CALL MOTION(#2,SD,0,#3,SD,0,#27,SD,0,#4,SD,0,#5,SD,0,#6,SD,0,#7,SD,0,#19,SE,0)
791 IF BBB=1 THEN CALL DELSPRITE(#7,#27,#24,#10,#14,#18)
800 CALL DELSPRITE(#19) :: IF SCR<5 THEN CALL DELSPRITE(#25,#26)ELSE IF SCR=5 THEN CALL DELSPRITE(#26,#21)ELSE IF SCR>5 THEN CALL DELSPRITE(#21,#23)
801 IF SCR<2 THEN CALL DELSPRITE(#27)
810 CALL COLOR(#2,5,#3,5,#4,5,#5,5,#6,5,#7,5,#8,5,#9,5,#10,5,#11,5,#12,5,#13,5,#14,5)
820 CALL COLOR(#15,5,#16,5,#17,5,#18,5,#20,10,#21,15,#22,10,#23,15,#24,10,#25,2,#26,2,#27,14)
830 CALL VCHAR(1,18,41,24) :: CALL VCHAR(1,19,42,24) :: CALL VCHAR(1,22,33,24) :: CALL VCHAR(1,23,35,24) :: CALL VCHAR(1,24,41,24)
840 CALL VCHAR(1,25,42,24)
850 FOR I=1 TO 2 :: CALL VCHAR(1,19+I,I+32,24) :: CALL VCHAR(1,25+I,I+32,24) :: NEXT I :: GOTO 860
860 IF SP=1 THEN CALL SPRITE(#1,108,16,97,24)ELSE CALL SPRITE(#1,108,16,R,120)
870 CALL COINC(ALL,H) :: IF H OR R>183 AND R<246 THEN 950 ELSE IF S=120 AND RS=0 OR S=216 OR T>4 THEN 900 ELSE IF RC>20 AND SCR>2 AND RS=1 THEN 910 ELSE CALL POSITION(#1,R,S) :: CALL JOYST(1,N,M)
880 CALL COINC(ALL,H) :: IF H THEN 950 ELSE IF M<>0 XOR N<>0 THEN 890 ELSE RC=RC+1 :: T=T+1 :: GOTO 870
890 O=S+N*4 :: CALL POSITION(#1,R,S) :: CALL MOTION(#1,D(O/16),0) :: CALL LOCATE(#1,R+(-4*M),O) :: CALL PATTERN(#1,102+M*.5+N*1.5) :: T=T+1 :: GOTO 870
900 IF T>4 THEN T=0 :: CT=CT+.5 :: CALL VCHAR(11+CT,3,64) :: CALL VCHAR(12+CT,3,65+(CT/2)/INT(CT+.5)) :: CALL SOUND(9,440,0) :: GOTO 870 ELSE IF S=120 AND RS=0 THEN RS=1 :: GOTO 730 ELSE 1030
910 RC=0 :: OCC=LCC :: LCC=INT(RND*4)+1 :: IF OCC=LCC THEN 870 ELSE CCF=CF :: PS=6*OCC-3 :: CALL GCHAR(6*LCC-3,28,CF) :: IF CCF=72 THEN OF=1 ELSE OF=0
920 CALL VCHAR(PS,28,32+40*OF) :: CALL VCHAR(PS+1,28,32+41*OF) :: CALL VCHAR(PS,29,32+42*OF) :: CALL VCHAR(PS+1,29,32+43*OF)
930 DISPLAY AT(6*LCC-3,26)SIZE(2):"LN" :: DISPLAY AT(6*LCC-2,26)SIZE(2):"MO" :: GOTO 870
940 REM  BLOOD AND GUTS ROUTINES
950 IF SP=0 AND FZ=0 THEN FZ=1 :: CALL COINC(#1,#27,20,H) :: IF H THEN PNT=PNT+150 :: CALL DELSPRITE(#27) :: H=0 :: GOTO 870
960 CALL POSITION(#1,R,S) :: IF S>39 AND S<120 AND(R<184 OR R>245)THEN CALL DELSPRITE(#1) :: DISPLAY AT(R/8+1,S/8-1)SIZE(2):"PR" :: DISPLAY AT(R/8+1,S/8-1)SIZE(2):"QS" ELSE 1000
970 CALL SOUND(1000,262,0,262,1,349,7) :: FOR I=1 TO 50 :: NEXT I
980 DISPLAY AT(R/8+1,S/8-1)SIZE(2):"PR" :: DISPLAY AT(R/8+2,S/8-1)SIZE(2):"QS" :: FOR I=1 TO 5 :: CALL COLOR(7,10,2) :: FOR J=1 TO 20 :: NEXT J :: CALL COLOR(7,7,2) :: NEXT I
990 GOTO 1020
1000 CALL COLOR(#1,2) :: CALL PATTERN(#1,44)
1010 CALL SOUND(-250,-7,0) :: FOR I=1 TO 10 :: NEXT I :: CALL SOUND(-500,-5,0) :: FOR I=1 TO 200 :: NEXT I
1020 SC=1 :: CALL MOTION(#1,0,0) :: GOSUB 1120 :: FG=FG-1 :: IF FG=0 THEN GOTO 1050 ELSE IF FG>3 THEN GOTO 620 ELSE CALL VCHAR(FG*2,3,40) :: GOTO 620
1030 CALL GCHAR((R+8)/8,28,CC) :: CALL POSITION(#1,R,S) :: IF CC<>32 OR R<12+48*INT((R)/48)OR R>20+48*INT((R)/48)THEN 1000
1040 DISPLAY AT(INT((R)/48)*6+3,26)SIZE(2):"HJ" :: DISPLAY AT(INT((R)/48)*6+4,26)SIZE(2):"IK" :: GOSUB 1120 :: FSC=FSC+1 :: PNT=PNT+200 :: IF FSC>=4 THEN FSC=0 :: GOTO 1080 ELSE 620
1050 CALL DELSPRITE(ALL) :: CALL CLEAR :: CALL SCREEN(8) :: CALL CHARSET :: DISPLAY AT(4,4):SCR1;"SCREENS COMPLETED" :: DISPLAY AT(7,10):"SCORE ";PNT
1060 DISPLAY AT(14,2):"DO YOU WANT TO PLAY AGAIN" :: ACCEPT AT(17,12)VALIDATE("YN")SIZE(1):ANS$
1070 IF ANS$="Y" THEN CALL SCREEN(2) :: CALL CLEAR :: GOSUB 220 :: GOSUB 250 :: GOTO 400 ELSE CALL CLEAR :: STOP
1080 PNT=PNT+500 :: CF=32 :: CCF=32 :: FG=FG+1 :: SCR=SCR+1 :: SCR1=SCR1+1 :: IF SCR>5 THEN SD=SD+3 :: SCR=3 :: IF SD>13 THEN SD=13
1090 IF SC=0 THEN PNT=PNT+1000
1100 CALL CLEAR :: CALL DELSPRITE(ALL) :: CALL CHARSET :: CALL SCREEN(9) :: IF SCR1+ZQ>11 THEN ZQ=0 :: SCR1=11
1110 DISPLAY AT(8,2):MS$(SCR1+ZQ) :: DISPLAY AT(16,6):"CURRENT SCORE:";PNT :: FOR I=1 TO 500 :: NEXT I :: CALL CLEAR :: CALL SCREEN(2) :: GOSUB 220 :: GOSUB 250 :: GOTO 410
1120 FZ=0 :: CT=0 :: S=24 :: R=97 :: SP=0 :: RC=0 :: T=0 :: CALL VCHAR(13,3,65,12) :: RS=0 :: SCR=SCR-1 :: RETURN
1130 ON ERROR 1130 :: S=24 :: RETURN 1000

  

     SS123.dsk

  • Like 8
  • Thanks 1
Link to comment
Share on other sites

1 hour ago, Gary from OPA said:

Has anyone tried converting it to compiled basic?

It would need a little work. There are floating point numbers and it uses VALIDATE. (and maybe other issues)

VALIDATE is easy:

1061 ACCEPT AT(17,12)VALIDATE("YN")SIZE(1):ANS$   can become:

1061 ACCEPT AT(17,12)SIZE(1):ANS$::IF ANS$<>"Y" AND ANS$<>"N" THEN 1061

The floating point numbers would take a little more effort to eliminate.

  • Like 1
Link to comment
Share on other sites

A little hint about protected disks. The standard TI method was to add the letter "P" to a specific spot in the disk header. that letter informed the computer that it should not copy the disk contents. Individual program files could also be protected so that you could not list them--a problem that can be solved with a specific CALL LOAD routine.

 

A quick way to remove the disk level protection is to use the DSKU program, as it can easily clear the protection. You can also go in with a sector editor and remove the letter "P" if you want to get closer to the bare metal. . .

  • Like 4
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...