Jump to content
IGNORED

For your gaming enjoyment


sparkdrummer

Recommended Posts

Nice, that worked!  Code is below.  I think in the commercial version, someone rewrote the drawing code in assembler, because it was too slow in BASIC.  I guess I was 14 when I wrote this.

 

Check out my sweet call-out to the Houston BBS, now at 1200 baud!

 

10 !TI-RUNNER EDITOR
15 !COPYRIGHT (C) 1987 BY
20 !ANDREW KIRMSE
22 !
24 ! CALL HUG TIBBS              (713) 475-8909             24 HRS&1200 BAUD
26 !
30 CALL INIT :: CALL LOAD(-31806,16)
50 DATA 104,110,96,120,106,112,113,114,105
70 PO$="1234"
90 RESTORE 50 :: FOR I=1 TO 9 :: READ P(I) :: NEXT I
100 CALL CHAR(136,"1C3E1C183C7DBA78",137,"38382C26C203") :: CALL COLOR(14,16,1)
101 A$="000000" :: CALL CHAR(91,"003E414D514D413E",92,A$&"3A2B3A2A2A",93,A$&"5955D55559",94,A$&"DD5199515C",95,A$&"11115151A1")
102 CALL MAGNIFY(1) :: CALL CHAR(138,"387C38183CBE5D1E1C1C346443C")
104 CALL CHAR(64,A$&"5755965555",36,A$&"456D554445",37,A$&"B820B0A0B8",38,A$&"4ECA4E42E2",34,A$&"EEA2E4A8E8")
105 CALL CLEAR :: DISPLAY AT(1,5):". TI-RUNNER EDITOR .":"    .    [\]^_@$%&""    .": : :"PRESS:": : :"1) TO ADD A SCREEN"
107 DISPLAY AT(5,1):"PRESS:": : :"1) TO ADD A SCREEN": : :"2) TO EDIT A SCREEN": : :"3) TO EXIT"
110 IF PO$="1234" THEN DISPLAY AT(17,1):"4) FOR INSTRUCTIONS"
112 DISPLAY AT(24,1):"YOUR CHOICE?2"
115 ACCEPT AT(24,13) SIZE(-1) BEEP VALIDATE (PO$):CHOICE
117 PO$="123"
120 ON CHOICE GOTO 140,600,125,2000
125 CALL CLEAR :: END
130 !MAKE A SCREEN
140 LADCOL$="5" :: LADCOL2$="0" :: TRECOL$="5" :: TRECOL2$="0" :: TRE=3 :: GOSUB 1200 !GET COLORS
145 FOR I=1 TO 4 :: R(I)=19 :: C(I)=96 :: NEXT I
170 CALL CLEAR :: OPEN #1:"DSK1..LEVEL28",RELATIVE,DISPLAY,FIXED 28
180 OPEN #2:"DSK1..SCREENS" :: INPUT #2:SCREEN :: CLOSE #2 :: OPEN #2:"DSK1..SCREENS" :: CALL CLEAR :: GOSUB 1100
217 DISPLAY AT(24,11):"1h2n3`4x5j6p7q8r9i" :: HOR=1 !HORIZ ON
220 RO=1 :: CO=3 :: DISPLAY AT(24,1) SIZE(10):"SCREEN";SCREEN+1
225 CALL CHAR(128,"183C5A18185A3C18",129,"002442FFFF4224")
230 CALL SPRITE(#1,128+HOR,8,RO*8-7,CO*8-7)
240 CALL KEY(3,K,S) :: IF S<>0 THEN 270
250 CALL JOYST(1,X,Y) :: X=SGN(X) :: Y=-SGN(Y)
255 IF RO+Y>23 THEN RO=1 ELSE IF RO+Y<1 THEN RO=23 ELSE IF CO+X>30 THEN CO=3 ELSE IF CO+X<3 THEN CO=30 ELSE RO=RO+Y :: CO=CO+X
260 GOTO 230
270 IF K=15 THEN 380 ELSE IF K=13 THEN 350 ELSE IF K=90 THEN IF HOR=1 THEN HOR=0 :: GOTO 230 ELSE HOR=1 :: GOTO 230
275 IF K>48 AND K<58 THEN CALL HCHAR(RO,CO,P(K-48)) :: GOSUB 1000 :: GOTO 240 ELSE CALL HCHAR(RO,CO,K) :: GOSUB 1000 :: GOTO 240
350 GOSUB 1450 :: DISPLAY AT(24,10):"    SAVING" :: RECO=SCREEN*24 :: PRINT #1,REC RECO:FIRST$
360 FOR I=1 TO 23 :: A$="" :: FOR J=3 TO 30 :: CALL GCHAR(I,J,CH) :: A$=A$&CHR$(CH) :: NEXT J :: PRINT #1,REC RECO+I:A$ :: NEXT I
370 PRINT #2:SCREEN+1
380 CLOSE #1 :: CLOSE #2 :: CALL DELSPRITE(ALL) :: CALL CHARSET :: CALL SCREEN(8) :: GOTO 100
600 DISPLAY AT(12,1) ERASE ALL :"WHAT SCREEN TO EDIT?1" :: ACCEPT AT(12,21) SIZE(-2) BEEP VALIDATE (DIGIT):SCREEN
605 IF SCREEN=0 THEN 100
610 CALL CLEAR :: OPEN #1:"DSK1..LEVEL28",DISPLAY,RELATIVE,FIXED 28
615 OPEN #2:"DSK1..SCREENS"
620 INPUT #2:NUMSCREEN :: IF SCREEN>NUMSCREEN THEN CLOSE #1 :: CLOSE #2 :: GOTO 600
622 INPUT "CHANGE COLORS?":Q$ :: INPUT #1,REC(SCREEN-1)*24:FIRST$ :: IF Q$="N" OR Q$="n" THEN 626
623 LADCOL$=SEG$(FIRST$,17,1) :: LADCOL2$=SEG$(FIRST$,18,1) :: TRECOL$=SEG$(FIRST$,19,1) :: TRECOL2$=SEG$(FIRST$,20,1)
624 TRE=ASC(SEG$(FIRST$,22,1))-48 :: GOSUB 1200 !GET COLORS
625 GOTO 630
626 NUMTRE$=SEG$(FIRST$,22,1)
628 LADCOL$=SEG$(FIRST$,17,1) :: LADCOL=ASC(LADCOL$)-47 :: LADCOL2$=SEG$(FIRST$,18,1) :: LADCOL2=ASC(LADCOL2$)-47
629 TRECOL$=SEG$(FIRST$,19,1) :: TRECOL=ASC(TRECOL$)-47 :: TRECOL2$=SEG$(FIRST$,20,1) :: TRECOL2=ASC(TRECOL2$)-47
630 INPUT "CHANGE SCREEN?":Q$ :: Z$=Q$ :: IF Q$="N" OR Q$="n" THEN GOSUB 1400 :: SCREEN=SCREEN-1 :: GOTO 710
635 CALL MAGNIFY(1) :: FOR I=1 TO 23 :: LINPUT #1,REC(SCREEN-1)*24+I:A$ :: PRINT A$
640 NEXT I :: SCREEN=SCREEN-1 :: GOSUB 1100
655 HOR=1 :: RO=1 :: CO=3 :: DISPLAY AT(24,1):"SCREEN";SCREEN+1;"1h2n3`4x5j6p7q8r9i"
670 CALL CHAR(128,"183C5A18185A3C18",129,"002442FFFF4224")
672 CALL SPRITE(#1,128+HOR,8,RO*8-7,CO*8-7)
675 CALL KEY(3,K,S) :: IF S<>0 THEN 690 ELSE CALL JOYST(1,X,Y) :: X=SGN(X) :: Y=-SGN(Y)
680 IF RO+Y>23 THEN RO=1 ELSE IF RO+Y<1 THEN RO=23 ELSE IF CO+X>30 THEN CO=3 ELSE IF CO+X<3 THEN CO=30 ELSE RO=RO+Y :: CO=CO+X
685 GOTO 672
690 IF K=15 THEN 730 ELSE IF K=13 THEN 707 ELSE IF K=90 THEN IF HOR=1 THEN HOR=0 :: GOTO 672 ELSE HOR=1 :: GOTO 672
700 IF K>48 AND K<58 THEN CALL HCHAR(RO,CO,P(K-48)) :: GOSUB 1000 :: GOTO 675 ELSE CALL HCHAR(RO,CO,K) :: GOSUB 1000 :: GOTO 675
707 DISPLAY AT(24,10):" CHANGE MEN?N" :: ACCEPT AT(24,22) SIZE(-1) BEEP VALIDATE ("YNyn"):Q$ :: GOSUB 1400
708 DISPLAY AT(24,10):"    SAVING"
710 RECO=SCREEN*24 :: PRINT #1,REC RECO:FIRST$ :: IF Z$="N" OR Z$="n" THEN 730
715 FOR I=1 TO 23 :: A$="" :: FOR J=3 TO 30 :: CALL GCHAR(I,J,CH) :: A$=A$&CHR$(CH) :: NEXT J :: PRINT #1,REC RECO+I:A$ :: NEXT I
730 CLOSE #1 :: CLOSE #2 :: CALL DELSPRITE(ALL) :: CALL CHARSET :: CALL SCREEN(8) :: GOTO 100
999 !MOVING SUBROUTINE
1000 IF HOR=1 THEN IF CO=30 THEN CO=3 :: IF RO=23 THEN RO=1 ELSE RO=RO+1 ELSE CO=CO+1
1010 IF HOR=0 THEN IF RO=23 THEN RO=1 :: IF CO=30 THEN CO=3 ELSE CO=CO+1 ELSE RO=RO+1
1020 RETURN
1099 !CHAR DEFS
1100 CALL CHAR(96,"8181FF818181FF81",104,"FF101010FF010101",105,"FF",120,"407F410101417F4")
1110 CALL CHAR(113,"007EFF919191FF",106,"FF007E18181800FF",114,"003C5AA55A2418",110,"FF925592FF295529",112,"000002FD52")
1115 CALL CHAR(40,"1C3E1C183C7DBA7838382C26C203000000000000000000000")
1120 CALL COLOR(9,LADCOL,LADCOL2,10,7,1,11,TRECOL,TRECOL2,12,11,1,13,8,1)
1130 CALL SCREEN(2)
1140 FOR I=2 TO 8 :: CALL COLOR(I,16,1) :: NEXT I
1150 RETURN
1199 !INPUT COLOR ROUTINE
1200 DISPLAY AT(1,7) ERASE ALL :"CHOOSE LADDER COLOR" :: DISPLAY AT(24,13):"COLOR?";LADCOL$
1205 CALL CHAR(136,RPT$("F",16))
1210 RESTORE 1220 :: FOR I=1 TO 16 :: READ A$,B$ :: DISPLAY AT(I+4,10):A$;" ";B$ :: CALL SPRITE(#I,136,I,26+I*8,97) :: NEXT I
1215 ACCEPT AT(24,19) SIZE(-1) BEEP VALIDATE (DIGIT,":;<=>?"):LADCOL$ :: LADCOL=ASC(LADCOL$)-47
1220 DATA 0,TRANSPARENT,1,BLACK,2,MEDIUM GREEN,3,LIGHT GREEN,4,DARK BLUE,5,LIGHT BLUE,6,DARK RED
1225 DATA 7,CYAN,8,MEDIUM RED,9,LIGHT RED,:,DARK YELLOW,;,LIGHT YELLOW,<,DARK GREEN,=,MAGENTA
1230 DATA >,GRAY,?,WHITE
1240 DISPLAY AT(1,4):"BACKROUND LADDER COLOR" :: DISPLAY AT(24,13):"COLOR?";LADCOL2$
1245 ACCEPT AT(24,19) SIZE(-1) BEEP VALIDATE (DIGIT,":;<=>?"):LADCOL2$ :: LADCOL2=ASC(LADCOL2$)-47
1249 !TREASURE COLOR
1250 DISPLAY AT(1,1):"     CHOOSE TREASURE COLOR" :: DISPLAY AT(24,13):"COLOR?";TRECOL$
1270 ACCEPT AT(24,19) SIZE(-1) BEEP VALIDATE (DIGIT,":;<=>?"):TRECOL$ :: TRECOL=ASC(TRECOL$)-47
1280 DISPLAY AT(1,3):"BACKROUND TREASURE COLOR" :: DISPLAY AT(24,13):"COLOR?";TRECOL2$
1290 ACCEPT AT(24,19) SIZE(-1) BEEP VALIDATE (DIGIT,":;<=>?"):TRECOL2$ :: TRECOL2=ASC(TRECOL2$)-47
1295 CALL DELSPRITE(ALL)
1299 !# OF TREASURES
1300 DISPLAY AT(12,1) ERASE ALL :"HOW MANY TREASURES(0-15):";STR$(TRE) :: ACCEPT AT(12,26) SIZE(-2) BEEP VALIDATE (DIGIT):A :: NUMTRE$=CHR$(48+A)
1305 IF A>15 THEN 1300
1310 RETURN
1399 !GET POSITIONS&FIRST$
1400 IF Q$="N" OR Q$="n" THEN FIRST$=SEG$(FIRST$,1,16) :: GOTO 1600
1405 FOR I=1 TO 4 :: IF SEG$(FIRST$,(I-1)*4+1,2)="??" THEN R(I)=1 :: GOTO 1410
1407 R(I)=((ASC(SEG$(FIRST$,(I-1)*4+1,1))-48)*16+ASC(SEG$(FIRST$,(I-1)*4+2,1))-47)+3
1410 C(I)=(ASC(SEG$(FIRST$,(I-1)*4+3,1))-47)*16+ASC(SEG$(FIRST$,I*4,1))-64 :: NEXT I
1440 DATA PLAYER,16,PURPLE,14,YELLOW,11,GREEN,4
1450 CALL MAGNIFY(3) :: RESTORE 1440 :: FOR I=1 TO 4 :: READ A$,A :: DISPLAY AT(24,10):"    PLACE ";A$
1460 CALL SPRITE(#I,40,A,R(I),C(I))
1465 CALL KEY(1,K,S) :: IF S<>0 THEN 1500
1470 CALL JOYST(1,X,Y) :: X=SGN(X) :: Y=-SGN(Y)
1480 IF R(I)+Y<1 OR R(I)+Y>171 OR C(I)+X<16 OR C(I)+X>233 THEN 1465 ELSE R(I)=R(I)+Y :: C(I)=C(I)+X :: GOTO 1460
1500 IF K=18 THEN 1550
1505 IF R(I)>163 AND K=0 THEN 1470 ELSE IF R(I)<9 AND K=5 THEN 1470 ELSE IF C(I)>225 AND K=3 THEN 1470 ELSE IF C(I)<24 AND K=2 THEN 1470
1530 IF K=0 THEN R(I)=R(I)+8 ELSE IF K=5 THEN R(I)=R(I)-8 ELSE IF K=2 THEN C(I)=C(I)-8 ELSE IF K=3 THEN C(I)=C(I)+8 ELSE 1470
1540 GOTO 1460
1550 NEXT I
1560 FIRST$="" :: FOR I=1 TO 4 :: R(I)=R(I)-4
1565 IF R(I)<5 THEN FIRST$=FIRST$&"??" :: GOTO 1580
1570 FIRST$=FIRST$&CHR$(48+INT(R(I)/16))&CHR$(48+R(I)-(INT(R(I)/16)*16))
1580 FIRST$=FIRST$&CHR$(49+INT((C(I)-16)/16))&CHR$(48+C(I)-16-(INT((C(I)-16)/16)*16))
1590 NEXT I
1600 FIRST$=FIRST$&LADCOL$&LADCOL2$&TRECOL$&TRECOL2$&"0"&NUMTRE$ :: RETURN
1900 DISPLAY AT(24,1):"*PRESS ANY KEY TO CONTINUE*"
1910 CALL KEY(3,K,S) :: IF S=0 THEN 1910 ELSE RETURN
1998 !@P-
1999 !INSTRUCTIONS
2000 CALL CLEAR :: PRINT "YES! Now you can make your  own TI-RUNNER screens!  But it's a little tougher than  it looks, so here's some"
2010 PRINT "help to get you started:": :"There are 4 options on the  main menu..  Let's take them one at a time to make it"
2020 PRINT "easy..  First is ADD A SCREENwhere you actually type in ascreen.."
2030 PRINT "  After typing 1 at the     menu, you must choose the   foreground and backround    colors for the ladders and"
2040 PRINT "treasures..  These are just  decorations to add a little interest to the screen.. The colors will appear when you"
2050 PRINT "play the game, so try to    make them look nice..": : :: GOSUB 1900
2060 PRINT "For something really diff-  erent, try making the       ladders transparent with a  colored backround.."
2070 PRINT "  Now you have to enter the number of treasures on your screen..  If you aren't sure,just type ENTER and go back"
2080 PRINT "and edit it later..  One noteon this: The number you typein is the # of treasures youneed to win the screen.."
2090 PRINT "So, you can type in 5       treasures, but have 6 on thescreen and fool the player  into going for impossible"
2100 PRINT "treasures (nasty, but fun)..   Finally you get to enter  your screen..  Type the      number (on the bottom row)"
2110 PRINT "that corresponds to the     object you want to appear..": : :: GOSUB 1900
2120 PRINT : :"  You may type words on the screen if you wish..  To movearound, use Joystick #1 and make sure Alpha Lock is up.."
2130 PRINT "  One option you have at    this point is pressing Z..   Doing that will change your cursor from 'right-left' to"
2140 PRINT "'up-down' mode and vice     versa..  The arrow points theway in which the cursor     moves after you type some-"
2150 PRINT "thing..  'Up-down' is useful for typing in ladders very  quickly.."
2155 PRINT "  To abort here in ADD or   EDIT, press <FCTN 9>.."
2160 PRINT : :"  Press Enter when you are  done with the screen..": : :: GOSUB 1900
2170 PRINT "The last thing to do is to  place the 'men'..  First you place the player and then   the purple, yellow and green"
2180 PRINT "'bad guys'..  For fast move- ment around the screen, use the arrow keys..  Use the    joystick for bit-by-bit"
2190 PRINT "maneuvering..  WARNING: You  obviously don't want to put the player in solid rock or he will die immediately.."
2200 PRINT "You must be VERY careful    when placing the bad guys..  If you move them with the   joystick, they may act"
2210 PRINT "strangely when the game is  played..  I suggest just     using the arrow keys to     place them..": : : :: GOSUB 1900
2220 PRINT "Press the joystick button   after placing each man..":"  Use the EDIT option to    alter a screen you have al-"
2230 PRINT "ready created..  You may     choose to change the colors or not..  If you only want tochange the colors, type N at"
2240 PRINT "the CHANGE SCREEN prompt..   If you change the screen,   use the same procedure as inADD A SCREEN..  After typing"
2250 PRINT "in your changes you can     change the position of the  men or not.. Again, if you   do, do it the same way as"
2260 PRINT "before..  Editing is great   for fixing your  screen if  you find some mistakes afterplaying the game..  Note: If"
2270 PRINT "you change a man's position,it starts in its old place  as a default.."
2280 GOSUB 1900
2290 PRINT "  The other two options are quit and instructions, whichare self-explanatory.."
2350 PRINT : :"  One last thing: use the 9 in ADD or EDIT under all    blocks as decoration; they  add a nice touch.."
2355 PRINT "  BE SURE to use a separate disk for your screens so youdon't erase the screens you bought.."
2360 PRINT : :"  So have fun making your   own TI-RUNNER screens and   tell us about your best..": : : : : :
2380 GOSUB 1900 :: GOTO 100
2400 !@P+

 

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

  • 8 months later...

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...