Jump to content
IGNORED

HELP - I AM STUCK! - TI EXtended BASIC


oddemann

Recommended Posts

22 minutes ago, oddemann said:

New program I am testing... BUT... in line 160 I find this, "@=23" the character in the book dos not look anything like @, been trying to figure this one... I think it has to do with printing on paper. So the main question, is the listing correct with @ in it?

Book "entertainment-games-in-ti-basic-and-extended-basic", program: Biorhythm
From here: http://www.hexbus.com/tibooks/

Downloaded the files, then as it did not work, I "fixed" it (downloaded the PDF to look), but could not make out @ character. So I ask you!

 

  Reveal hidden contents


10 !/////////////
20 !/ BIORHYTHM /
30 !/////////////
40 !
50 !///INITIALIZE///
60 DIM DOM(12) :: ON WARNING NEXT :: CALL INIT :: CALL LOAD(-31878,0)
70 DATA 31,28,31,30,31,30,31,31,30,31,30,31
80 FOR I=1 TO 12 :: READ S :: K=K+S :: DOM(I)=K :: NEXT I
90 CALL CHAR(39,"000000007E",96,"1899FF1818246642",104,"0066E7FFFF7E3C18",112,"1014583FFC1A2808",120,"817E665A5A667E81")
100 CALL COLOR(9,11,1,10,9,1,11,5,1,12,13,1)
110 !///OPENING///
120 CALL CLEAR :: CALL SCREEN(16) :: CALL COLOR(2,9,1)
130 A$=RPT$(" ",7) :: B$=RPT$("*",13) :: C$="*           *" :: PRINT A$;B$:A$;C$:A$;"* BIORHYTHM *":A$;C$:A$;B$: : : : : : : : : : : : : :"NEED INSTRUCTIONS?(Y/N)*";
140 CALL CHARPAT(42,A$) :: B$="000000103810"
150 CALL KEY(0,K,S) :: IF K=78 THEN 320 ELSE IF K<>89 THEN CALL SOUND(100,110,3) :: CALL CHAR(42,B$) :: CALL SOUND(200,110,16) :: CALL CHAR(42,A$) :: CALL SOUND(400,44733,30) :: GOTO 150
160 INPUT "TO PRINTER OR SCREEN?(P/S)":A$ :: IF A$="P" THEN FILE=1 :: @=23 :: OPEN #1:"RS232.DA=8.BA=4800" ELSE IF A$<>"S" THEN 160 ELSE FILE=0 :: @=1
170 !//INSTRUCTIONS//
180 DATA "********* BIORHYTHM ********",,"*THE THEORY OF BIORHYTHM","STATES THAT EVERYONE HAS","THREE CYCLES WHICH START ON"
190 DATA THE DAY OF HIS BIRTH.,,*THESE CYCLES ARE:,-----PHYSICAL CYCLE(23 DAYS),----EMOTIONAL CYCLE(28 DAYS)
200 DATA -INTELLECTUAL CYCLE(33 DAYS),,"*IN THIS PROGRAM,CYCLES SPAN",FROM -1(LOW) TO 1(HIGH).
210 DATA ,"*""HIGH"" DAYS OF A CYCLE ARE",WHEN FIGURES OF THAT CYCLE,"RISE ABOVE THE MIDDLE LINE,","AND ""LOW"" DAYS ARE BELOW IT."
220 DATA,*WHEN ALL 3 OF THE CYCLES,COINCIDE ABOVE THE MIDDLE,"LINE,PERSON IS AT HIS BEST!"
230 CALL CLEAR :: RESTORE 180 :: FOR I=1 TO 23 :: READ A$ :: PRINT #FILE:TAB(@);A$ :: NEXT I :: IF FILE=1 THEN 250 ELSE PRINT "****PRESS ANY KEY";
240 CALL KEY(0,K,S) :: IF S=0 THEN 240
250 CALL CLEAR :: PRINT "*WHEN ASKED FOR THESE KEYS, THEY HAVE THE FOLLOWING":"FUNCTIONS:"
260 PRINT:"-PROCEED: CONTINUE PROGRAM": :"-REDO: BACK TO INPUT SCREEN": :"-": IF IN INPUT, SCREEN WILL":"PRINT TO PRINTER 12 MONTHS"
270 PRINT "    IF IN GRAPH, SCREEN WILL PRINT TO PRINTER BIORHYTHM  GRAPH": :"-BEGIN: ASK FOR DIFFERENT   NAME": :"-BACK: END PROGRAM"
280 PRINT #FILE: :TAB(@);"*AVERAGE OF CYCLES IS THE":TAB(@);"AVERAGE ON DAY LISTED.";CHR$(12)
290 PRINT:"****PRESS ANY KEY";
300 CALL KEY(0,K,S) :: IF S=0 THEN 300 ELSE IF FILE=1 THEN CLOSE #1
310 !///START///
320 CALL CLEAR :: RD,PR=0 :: CALL CHAR(43,"0010101010101")
330 INPUT "WHAT IS YOUR NAME?":N$ :: CALL CLEAR :: PRINT: : :"HELLO ";N$: : : : : : : : : : : :: CALL SAY("HELLO")
340 !//MONTHS//
350 DATA JANUARY,3,FEBRUARY,0,MARCH,3,APRIL,2,MAY,3,JUNE,2,JULY,3,AUGUST,3,SEPTEMBER,2,OCTOBER,3,NOVEMBER,2,DECEMBER,3
360 !//BIRTHDATES//
370 !DATA ODD KRISTENSEN, AUGUST,11,1968
380 !DATA**IN THIS FORM:<NAME,MONTH,DATE,YEAR>. EXAMPLE: JOE BLOW,JANUARY,1,1892,MARY BLOW,APRIL,4,1983 ETC...
390 !DATA**BUT PUT IT BEFORE DATA ZZZ,ZZZ,0,0
400 DATA ZZZ,ZZZ,0,0
410 DISPLAY AT(1,1)ERASE ALL:"*********BIRTHDATE**********": : :"MONTH OF BIRTH:": :"DATE OF BIRTH:": :"YEAR OF BIRTH:"
420 IF RD THEN 450
430 RESTORE 370
440 READ A$,MO$,DA,YR :: IF A$="ZZZ" THEN 460 ELSE IF A$<>N$ THEN 440
450 DISPLAY AT(4,20)BEEP:MO$ :: DISPLAY AT(6,19):DA :: DISPLAY AT(8,19):YR :: GOTO 510
460 CALL SAY("PLEASE+ANSWER THEN PRESS+ENTER") :: ACCEPT AT(4,20)SIZE(-9)BEEP:MO$ :: ACCEPT AT(6,20)SIZE(-2)BEEP:DA :: ACCEPT AT(8,20)SIZE(-4)BEEP:YR
470 IF(DA>0 AND YR>0 AND DA=INT(DA)AND YR=INT(YR))THEN 510
480 CALL SAY("#THAT IS INCORRECT# #TRY AGAIN#") :: GOTO 460
490 IF I=13 THEN B$="WHAT IS A "&MO$&"?" ELSE B$=STR$(DA)&" DAYS IN "&MO$&"?!?"
500 DISPLAY AT(24,1):B$ :: GOTO 460
510 RESTORE 350
520 FOR I=1 TO 12 :: READ A$,BT :: IF A$=MO$ THEN MO=I :: I=14
530 NEXT I :: IF YR/4=INT(YR/4)AND BT=0 THEN BT=1
540 IF I=13 OR DA>BT+28 THEN 490
550 DISPLAY AT(24,1)BEEP:"PRESS PROCEED,REDO OR """
560 CALL KEY(0,K,S) :: IF K=6 THEN 460 ELSE IF K=34 THEN 570 ELSE IF K=12 THEN 600 ELSE 560
570 DISPLAY AT(24,1):"IS PRINTER READY?(Y/N):N" :: ACCEPT AT(24,24)SIZE(-1)VALIDATE("YN"):A$ :: IF A$="N" THEN 550 ELSE DISPLAY AT(24,1):"WHAT YEAR?1983" :: ACCEPT AT(24,11)SIZE(-4)VALIDATE(DIGIT):YR1
580 IF YR1<YR THEN 570
590 DISPLAY AT(24,1):"STARTING MONTH:JANUARY" :: ACCEPT AT(24,16)SIZE(-9)BEEP:MO1$ :: GOTO 690
600 DISPLAY AT(12,1):"*******PROJECTION DAY*******": : :"THE MONTH:": :"THE DATE:": :"THE YEAR:": : : : : :
610 IF K=34 THEN 720 ELSE CALL SAY("PLEASE+ANSWER THEN PRESS+ENTER")
620 DISPLAY AT(19,20):"1983"
630 ACCEPT AT(15,20)SIZE(-9)BEEP:MO1$ :: ACCEPT AT(17,20)SIZE(-2)BEEP:DA1 :: ACCEPT AT(19,20)SIZE(-4)BEEP:YR1
640 IF(DA1>0 AND YR1>0 AND DA1=INT(DA1)AND YR1=INT(YR1)AND YR<=YR1)THEN 740
650 CALL SAY("#THAT IS INCORRECT# #TRY AGAIN#") :: GOTO 630
660 IF I=13 THEN B$="   INVENTED A NEW MONTH?" ELSE B$="ONLY "&STR$(NT+28)&" DAYS IN "&MO1$
670 DISPLAY AT(24,1):B$ :: GOTO 630
680 !///LOOPS FOR 1 YEAR///
690 RESTORE 350
700 FOR I=1 TO 12 :: READ A$,NT :: IF A$=MO1$ THEN MO1=I :: I=14
710 NEXT I :: IF I=13 THEN 590
720 PR=1 :: DA1=15 :: FOR LFY=MO1 TO 12 :: RESTORE 350 :: FOR K=1 TO LFY :: READ MO1$,NT :: NEXT K :: MO1=LFY
730 DISPLAY AT(15,20)BEEP:MO1$ :: DISPLAY AT(17,19):DA1 :: DISPLAY AT(19,19):YR1 :: GOTO 790
740 RESTORE 350
750 FOR I=1 TO 12 :: READ A$,NT :: IF A$=MO1$ THEN MO1=I :: I=14
760 NEXT I :: IF YR1/4=INT(YR1/4)AND NT=0 THEN NT=1
770 IF I=13 OR DA1>NT+28 THEN 660
780 DISPLAY AT(24,1)BEEP:"   PRESS PROCEED OR REDO"
790 CALL KEY(0,K,S) :: IF K=6 THEN 630 ELSE IF K<>12 AND PR=0 THEN 790
800 !//DAYS LIVED//
810 DTB=INT(365.25*YR+DOM(MO-1))+DA
820 DTN=INT(365.25*YR1+DOM(MO1-1))+DA1
830 DL=DTN-DTB
840 !///SINE GRAPH///
850 DISPLAY AT(1,1)ERASE ALL:"*********BIORHYTHM**********": :"NAME: ";N$:"+=";MO1$;" ";STR$(DA1);",";YR1
860 CALL HCHAR(12,2,39,31) :: CALL VCHAR(5,16,43,14)
870 DISPLAY AT(20,1):CHR$(96);"=PHYSICAL CYCLE":CHR$(104);"=EMOTIONAL CYCLE":CHR$(112);"=INTELLECTUAL CYCLE"
880 DISPLAY AT(24,1):"PRESS REDO,BEGIN,",OR BACK"
890 CALL GRAPH(23,DL) :: CALL GRAPH(28,DL) :: CALL GRAPH(33,DL)
900 DISPLAY AT(23,1):"AVERAGE OF CYCLES:";SEG$(STR$((SIN(PI/180*360*DL/23)+SIN(PI/180*360*DL/28)+SIN(PI/180*360*DL/33))/3),1,7)
910 CALL KEY(0,K,S) :: IF K=6 THEN RD=1 :: GOTO 410 ELSE IF K=14 THEN 320 ELSE IF K=15 THEN CALL CLEAR :: STOP ELSE IF K<>34 AND PR=0 THEN 910
920 !///PRINTOUT///
930 @=16 :: GR$=CHR$(27)&"K"&CHR$(8)&CHR$(0) :: B$=CHR$(96)&CHR$(35)&CHR$(38)&CHR$(248)&CHR$(248)&CHR$(38)&CHR$(35)&CHR$(96)!/MAN/
940 C$=CHR$(56)&CHR$(124)&CHR$(126)&CHR$(31)&CHR$(31)&CHR$(126)&CHR$(124)&CHR$(56)!/HEART/
950 D$=CHR$(8)&CHR$(40)&CHR$(26)&CHR$(252)&CHR$(63)&CHR$(88)&CHR$(20)&CHR$(16)!/CROSS/
960 E$=RPT$(CHR$(0),8)!/SPACE/
970 F$=CHR$(0)&RPT$(CHR$(8),6)&CHR$(0)!/DASH/
980 G$=RPT$(CHR$(0),4)&CHR$(255)&RPT$(CHR$(0),3)
990 H$=CHR$(129)&CHR$(126)&CHR$(102)&CHR$(153)&CHR$(153)&CHR$(102)&CHR$(126)&CHR$(129)!/COINC/
1000 OPEN #1:"RS232.DA=8.BA=4800.CR"
1010 PRINT #1:CHR$(14);TAB(16);"BIORHYTHM";CHR$(10);CHR$(10);TAB(@);"NAME: ";N$;CHR$(10);TAB(@);"BIRTHDATE: ";MO$;" ";STR$(DA);",";YR;CHR$(10)
1020 PRINT #1:TAB(@);GR$&G$;CHR$(27);"E";"=";MO1$;" ";STR$(DA1);",";YR1;CHR$(@);CHR$(10);CHR$(27);"F";CHR$(10)
1030 IF DA1<>15 THEN 1060 ELSE A$="1234567890123456789012345678" :: IF MO1=2 AND YR1/4=INT(YR1/4)THEN A$=A$&"9" ELSE A$=A$&SEG$("901",1,NT)
1040 PRINT #1:TAB(@);
1050 FOR I=1 TO LEN(A$) :: PRINT #1:CHR$(27);"K";CHR$(2);CHR$(0);CHR$(0);CHR$(0);SEG$(A$,I,1) :: NEXT I :: PRINT #1:CHR$(10)
1060 FOR I=5 TO 18 :: A$="" :: FOR K=2 TO 32 :: CALL GCHAR(I,K,S) :: IF S=39 THEN A$=A$&F$ ELSE IF S=120 THEN A$=A$&H$ ELSE IF S>95 THEN 1080 ELSE IF S=43 THEN A$=A$&G$ ELSE A$=A$&E$
1070 GOTO 1090
1080 IF S=96 THEN A$=A$&B$ ELSE IF S=104 THEN A$=A$&C$ ELSE A$=A$&D$
1090 NEXT K :: PRINT #1:TAB(@);CHR$(27);"K";CHR$(248);CHR$(0);A$;CHR$(10) :: NEXT I
1100 PRINT #1:TAB(@);GR$&B$;"=PHYSICAL CYCLE";CHR$(10);TAB(@);GR$&C$;"=EMOTIONAL CYCLE";CHR$(10);TAB(@);GR$&D$;"=INTELLECTUAL CYCLE";CHR$(10)
1110 PRINT #1:TAB(@);GR$&H$;"=COINCIDENCE";CHR$(10)
1120 PRINT #1:TAB(@);"AVERAGE OF CYCLES:";SEG$(STR$((SIN(PI/180*360*DL/23)+SIN(PI/180*360*DL/28)+SIN(PI/180*360*DL/33))/3),1,7);CHR$(13)
1130 IF PR=1 THEN IF LFY/2=INT(LFY/2)THEN PRINT #1:CHR$(12)ELSE PRINT #1:RPT$(CHR$(10),5)
1140 CLOSE #1 :: IF PR<>1 THEN 910
1150 NEXT LFY :: PR=0 :: GOTO 910
1160 SUB GRAPH(A,B)
1170 FOR Y=2 TO 32 :: X=INT(SIN(PI/180*360*(B+Y-16)/A)*-6)+12
1180 CALL GCHAR(X,Y,C) :: IF C>95 THEN CALL SOUND(100,999,0) :: CALL VCHAR(X,Y,120)ELSE CALL VCHAR(X,Y,(A-23)/5*8+96)
1190 NEXT Y
1200 SUBEND

 

 

 

‘@’ is the ASCII character just before ‘A’ and is a perfectly good character for an XB variable name and that is the name of the variable you note, whether or not it looks like ‘@’, that is an artifact of the font in use.

 

...lee

Link to comment
Share on other sites

3 minutes ago, Lee Stewart said:

 

‘@’ is the ASCII character just before ‘A’ and is a perfectly good character for an XB variable name and that is the name of the variable you note, whether or not it looks like ‘@’, that is an artifact of the font in use.

 

...lee

Thx!

  • Like 1
Link to comment
Share on other sites

  • 4 weeks later...

Target!
Found this in a magazine (here in Atariage) The code is changed in the graphic dep. Original listing is in the pic.

Problems... Bomb is not displayed! Been reading and re-reading. Changing and I have not gotten anywhere... Need "new eyes" on this. Can you help me?
Also building explosion is now gone... too MUCH fixing :p hehehe

 

Spoiler

100 REM ***TX SOFTWARE***
110 REM R.MATTHENS (1982)
120 REM *****************
130 DIM A(32) :: A(1),A(2),A(3),A(31),A(30),A(31),A(32)=25
140 RANDOMIZE :: CALL MAGNIFY(3) :: CALL COLOR(9,2,6,11,1,5,13,1,1)
145 CALL SCREEN(6) :: CALL INSTRUCTIONS(PN)
149 REM PLANE
150 A1$="0080C0FFFFFF1E78"&RPT$("0",22)&"F8FEFE8000000000"
159 REM TANK
160 A2$="000000030F1F1F077FFFFF7F2A3F000000000000C0FFC080FCFEFEFCA8F80000"
169 REM ROAD
170 A3$="FFFF"
179 REM TANK EXPLOSIONS 1(ANIM) START
180 A4$=RPT$("0",16)&"293A6FDABF754F3D"&RPT$("0",16)&"0E0D5BEDDF7AEF1C"
189 REM TANK EXPLOSIONS 2(ANIM) BIG
190 A5$="291B7DD7BF7B6F3D0F07030303070F7F8060F5D5BFFFFADEFA1C1818181C1EFF"
199 REM EXPLOSIONS BUILDING
200 A6$="34599544B5AE78AF7AD77EB7CA425149"
209 REM BOMB
210 A7$="E040404000000000"
219 REM RIGHT SIDE HOUSE
220 A8$="7F7F66667F7F6666"
229 REM LEFT SIDE HOUSE
230 A9$="FEFE6666FEFE6666"
234 REM ASIGN CHAR TO Ax$
235 CALL CHAR(96,A1$,108,A2$,112,A3$,116,A4$,120,A5$)
236 CALL CHAR(124,A6$,104,A7$,132,A8$,128,A9$)
240 REM SETTING HEIGHT :: CALL CLEAR :: FOR J=4 TO 28 STEP 2 :: HT=INT(RND*10)+1
245 REM DRAWING HOUSES :: CALL VCHAR(24-HT,J,132,HT) :: CALL VCHAR(24-HT,J+1,128,HT)
250 A(J),A(J+1)=24-HT :: NEXT J :: CALL COLOR(13,2,6) :: CALL HCHAR(24,1,112,32)
260 CALL SPRITE(#2,96,5,10,1,0,35) :: REM #2=PLANE
265 CALL SPRITE(#4,108,16,178,100,0,5,#5,108,11,178,20,0,5) :: REM #4 and #5=TANK 1-2
266 CALL SPRITE(#6,108,12,178,180,0,5) :: REM #6=TANK 3
270 CALL KEY(1,K,S) :: IF S THEN GOSUB 280 ELSE SC=SC-PN :: REM "RED BUTTON" DROP BOMB
271 GOTO 270
280 CALL POSITION(#2,X,Y) :: CALL LOCATE(#2,X+1,Y) :: REM WHERE IS THE PLANE
285 CALL SPRITE(#3,104,16,X,Y,50,0) :: CL=INT(Y/8.01)+1 :: X1=INT(X/8.01)+3 :: REM BOMB
290 IF CL<4 OR CL>30 THEN 330
300 CALL COINC(ALL,C) :: IF C THEN 360 ELSE CALL POSITION(#3,X,Y)
305 IF X>184 THEN 330 ELSE RW=INT(X/8.01)+1 :: IF RW<A(CL) THEN 300
310 CALL SPRITE(#3,124,2,X,Y,-20,0) :: CALL SOUND(-200,-5,0)
315 CALL VCHAR(RW-2,CL,32,3) :: A(CL)=RW+1
320 SC=SC+10 :: DISPLAY AT(1,1):SC
330 CALL DELSPRITE(#3) :: IF X1<16 THEN RETURN :: REM DELETE BOMB, RETURN TO "RED BUTTON"
340 FOR J=4 TO 29 :: IF A(J)<X1 THEN 380
350 NEXT J :: RETURN
360 CALL SPRITE(#3,116,16,176,Y,0,0) :: CALL SOUND(-560,-5,0)
365 SC=SC+(75-RW)*4 :: DISPLAY AT(1,1):SC
370 CALL PATTERN(#3,120) :: IF RND<.5 THEN 360 ELSE 330
380 CALL SOUND(-4000,-3,0,400,0)
385 FOR DEL=1 TO 1500 :: NEXT DEL :: RUN
390 STOP
400 SUB INSTRUCTIONS(PN) :: CALL CLEAR
410 DISPLAY AT(1,8):"TARGET" :: DISPLAY AT(2,8):"======"
420 DISPLAY AT(5,1):"USE ANY KEY TO DROP BOMB."
430 DISPLAY AT(9,1):"CHOOSE OPTION PLEASE"
440 DISPLAY AT(13,1):"EASY OPTION";TAB(26);"(1)"
450 DISPLAY AT(15,1):"HARD OPTION"
460 DISPLAY AT(16,1):"NEGATIVE SCORINGS";TAB(26);"(2)"
470 CALL KEY(0,KY,ST) :: CALL SOUND(-20,900,20) :: IF ST=0 THEN 470
480 IF KY=49 OR KY=50 THEN PN=KY-49 ELSE 470
500 SUBEND

600 REM *******
601 REM LINES 150 TO 210 DEFINE CHARACTERS .. EXPERIMENT HERE!
610 REM A1$................ PLANE
620 REM A2$................ TANKS
630 REM A3$................ ROAD
640 REM A4$,A5$,A6$........ EXPLOSIONS
650 REM A7$................ BOMB
660 REM A8$,A9$............ BUILDINGS
670 REM *******
680 REM SPRITE #2...........PLANE
690 REM SPRITES #4,#5,#6... TANKS
700 REM SPRITE #3.......... BOMB
710 REM *******
720 REM INCREASE DIFFICULTY LEVEL BY INCREASING SPEED OF SPRITE(#2)
725 REM ALSO HEIGHT OF BUILDIWGS CAH BE CHANHGED IN LINE 240
726 REM TANKS CAH BE SPEEDED UP ORF SLOWED DOWN IN LINES 265 AND 266
730 REM ARRAY "A()" KEEPS CHECK OF HEIGHT OF EACH BUILDING
740 REM AS AN ALTERNATIVE TO "RUN" IN 385 YOU CAN CHECK FOR HIGHEST SCORE TO
750 REM DATE ..HIGHEST=MAX(SC,HIGHEST) AND GOTO 246 . HIGHEST SCORE CAN THEN
760 REM BE DISPLAYED
800 REM ALL REMS MAY BE DELETED

801 REM PLAYING AROUND – OLD/ORIGINAL STUFF
802 REM EXPLOSIONS 80E0F5FEFFFFFFF1C
803 REM 293B7FFFFF7F7F3F0F07030303070F7F80E0F5F5FFFFFEFEFE1C1818181C1EFF
804 REM 34599D45B5AC7CBF7EFF7EFFCA425149
805 REM A1$="0080C0FFFFFF3F78"&RPT$("0",22)&"FCFEFE8000000000"
900 END

 

 

cvgJan83_target_bb_REN.jpg

Link to comment
Share on other sites

2 hours ago, oddemann said:

Target!
Found this in a magazine (here in Atariage) The code is changed in the graphic dep. Original listing is in the pic.

Problems... Bomb is not displayed! Been reading and re-reading. Changing and I have not gotten anywhere... Need "new eyes" on this. Can you help me?
Also building explosion is now gone... too MUCH fixing ? hehehe

 

I have not looked at this very carefully yet, but this struck me as odd:  Perhaps it was intentional, but the REM at the beginning of lines 240 and 245 makes the entire line a comment. The ‘::’ after the REM part does not render the rest of the line executable. You should put the REM on a line by itself or use tail comments that start with ‘!’ at the end of an executable line.

 

...lee

  • Like 2
Link to comment
Share on other sites

Here is your program with the comments fixed:

Spoiler

100 REM ***TX SOFTWARE***
110 REM R.MATTHENS (1982)
120 REM *****************
130 DIM A(32) :: A(1),A(2),A(3),A(31),A(30),A(31),A(32)=25
140 RANDOMIZE :: CALL MAGNIFY(3) :: CALL COLOR(9,2,6,11,1,5,13,1,1)
145 CALL SCREEN(6) :: CALL INSTRUCTIONS(PN)
149 REM PLANE
150 A1$="0080C0FFFFFF1E78"&RPT$("0",22)&"F8FEFE8000000000"
159 REM TANK
160 A2$="000000030F1F1F077FFFFF7F2A3F000000000000C0FFC080FCFEFEFCA8F80000"
169 REM ROAD
170 A3$="FFFF"
179 REM TANK EXPLOSIONS 1(ANIM) START
180 A4$=RPT$("0",16)&"293A6FDABF754F3D"&RPT$("0",16)&"0E0D5BEDDF7AEF1C"
189 REM TANK EXPLOSIONS 2(ANIM) BIG
190 A5$="291B7DD7BF7B6F3D0F07030303070F7F8060F5D5BFFFFADEFA1C1818181C1EFF"
199 REM EXPLOSIONS BUILDING
200 A6$="34599544B5AE78AF7AD77EB7CA425149"
209 REM BOMB
210 A7$="E040404000000000"
219 REM RIGHT SIDE HOUSE
220 A8$="7F7F66667F7F6666"
229 REM LEFT SIDE HOUSE
230 A9$="FEFE6666FEFE6666"
234 REM ASIGN CHAR TO Ax$
235 CALL CHAR(96,A1$,108,A2$,112,A3$,116,A4$,120,A5$)
236 CALL CHAR(124,A6$,104,A7$,132,A8$,128,A9$)
240 CALL CLEAR :: FOR J=4 TO 28 STEP 2 :: HT=INT(RND*10)+1 !SETTING HEIGHT
245 CALL VCHAR(24-HT,J,132,HT) :: CALL VCHAR(24-HT,J+1,128,HT) !DRAWING HOUSES
250 A(J),A(J+1)=24-HT :: NEXT J :: CALL COLOR(13,2,6) :: CALL HCHAR(24,1,112,32)
260 CALL SPRITE(#2,96,5,10,1,0,35) !#2=PLANE
265 CALL SPRITE(#4,108,16,178,100,0,5,#5,108,11,178,20,0,5) !#4 and #5=TANK 1-2
266 CALL SPRITE(#6,108,12,178,180,0,5) !#6=TANK 3
270 CALL KEY(1,K,S) :: IF S THEN GOSUB 280 ELSE SC=SC-PN !"RED BUTTON" DROP BOMB
271 GOTO 270
280 CALL POSITION(#2,X,Y) :: CALL LOCATE(#2,X+1,Y) !WHERE IS THE PLANE
285 CALL SPRITE(#3,104,16,X,Y,50,0) :: CL=INT(Y/8.01)+1 :: X1=INT(X/8.01)+3 !BOMB
290 IF CL<4 OR CL>30 THEN 330
300 CALL COINC(ALL,C) :: IF C THEN 360 ELSE CALL POSITION(#3,X,Y)
305 IF X>184 THEN 330 ELSE RW=INT(X/8.01)+1 :: IF RW<A(CL) THEN 300
310 CALL SPRITE(#3,124,2,X,Y,-20,0) :: CALL SOUND(-200,-5,0)
315 CALL VCHAR(RW-2,CL,32,3) :: A(CL)=RW+1
320 SC=SC+10 :: DISPLAY AT(1,1):SC
330 CALL DELSPRITE(#3) :: IF X1<16 THEN RETURN !DELETE BOMB, RETURN TO "RED BUTTON"
340 FOR J=4 TO 29 :: IF A(J)<X1 THEN 380
350 NEXT J :: RETURN
360 CALL SPRITE(#3,116,16,176,Y,0,0) :: CALL SOUND(-560,-5,0)
365 SC=SC+(75-RW)*4 :: DISPLAY AT(1,1):SC
370 CALL PATTERN(#3,120) :: IF RND<.5 THEN 360 ELSE 330
380 CALL SOUND(-4000,-3,0,400,0)
385 FOR DEL=1 TO 1500 :: NEXT DEL :: RUN
390 STOP
400 SUB INSTRUCTIONS(PN) :: CALL CLEAR
410 DISPLAY AT(1,8):"TARGET" :: DISPLAY AT(2,8):"======"
420 DISPLAY AT(5,1):"USE ANY KEY TO DROP BOMB."
430 DISPLAY AT(9,1):"CHOOSE OPTION PLEASE"
440 DISPLAY AT(13,1):"EASY OPTION";TAB(26);"(1)"
450 DISPLAY AT(15,1):"HARD OPTION"
460 DISPLAY AT(16,1):"NEGATIVE SCORINGS";TAB(26);"(2)"
470 CALL KEY(0,KY,ST) :: CALL SOUND(-20,900,20) :: IF ST=0 THEN 470
480 IF KY=49 OR KY=50 THEN PN=KY-49 ELSE 470
500 SUBEND

600 REM *******
601 REM LINES 150 TO 210 DEFINE CHARACTERS .. EXPERIMENT HERE!
610 REM A1$................ PLANE
620 REM A2$................ TANKS
630 REM A3$................ ROAD
640 REM A4$,A5$,A6$........ EXPLOSIONS
650 REM A7$................ BOMB
660 REM A8$,A9$............ BUILDINGS
670 REM *******
680 REM SPRITE #2...........PLANE
690 REM SPRITES #4,#5,#6... TANKS
700 REM SPRITE #3.......... BOMB
710 REM *******
720 REM INCREASE DIFFICULTY LEVEL BY INCREASING SPEED OF SPRITE(#2)
725 REM ALSO HEIGHT OF BUILDIWGS CAH BE CHANHGED IN LINE 240
726 REM TANKS CAH BE SPEEDED UP ORF SLOWED DOWN IN LINES 265 AND 266
730 REM ARRAY "A()" KEEPS CHECK OF HEIGHT OF EACH BUILDING
740 REM AS AN ALTERNATIVE TO "RUN" IN 385 YOU CAN CHECK FOR HIGHEST SCORE TO
750 REM DATE ..HIGHEST=MAX(SC,HIGHEST) AND GOTO 246 . HIGHEST SCORE CAN THEN
760 REM BE DISPLAYED
800 REM ALL REMS MAY BE DELETED

801 REM PLAYING AROUND - OLD/ORIGINAL STUFF
802 REM EXPLOSIONS 80E0F5FEFFFFFFF1C
803 REM 293B7FFFFF7F7F3F0F07030303070F7F80E0F5F5FFFFFEFEFE1C1818181C1EFF
804 REM 34599D45B5AC7CBF7EFF7EFFCA425149
805 REM A1$="0080C0FFFFFF3F78"&RPT$("0",22)&"FCFEFE8000000000"
900 END

 

Look at lines 240 and 245, particularly.

 

...lee

  • Like 2
Link to comment
Share on other sites

Here is the same program with each REM referring to a single line of code moved, as a tail comment, to the end of the relevant line. This leaves the line-234 REM intact as the only REM referring to more than one line:

Spoiler

100 REM ***TX SOFTWARE***
110 REM R.MATTHENS (1982)
120 REM *****************
130 DIM A(32) :: A(1),A(2),A(3),A(31),A(30),A(31),A(32)=25
140 RANDOMIZE :: CALL MAGNIFY(3) :: CALL COLOR(9,2,6,11,1,5,13,1,1)
145 CALL SCREEN(6) :: CALL INSTRUCTIONS(PN)
150 A1$="0080C0FFFFFF1E78"&RPT$("0",22)&"F8FEFE8000000000" !PLANE
160 A2$="000000030F1F1F077FFFFF7F2A3F000000000000C0FFC080FCFEFEFCA8F80000" !TANK
170 A3$="FFFF" !ROAD
180 A4$=RPT$("0",16)&"293A6FDABF754F3D"&RPT$("0",16)&"0E0D5BEDDF7AEF1C" !TANK EXPLOSIONS 1(ANIM) START
190 A5$="291B7DD7BF7B6F3D0F07030303070F7F8060F5D5BFFFFADEFA1C1818181C1EFF" !TANK EXPLOSIONS 2(ANIM) BIG
200 A6$="34599544B5AE78AF7AD77EB7CA425149" !EXPLOSIONS BUILDING
210 A7$="E040404000000000" !BOMB
220 A8$="7F7F66667F7F6666" !RIGHT SIDE HOUSE
230 A9$="FEFE6666FEFE6666" !LEFT SIDE HOUSE
234 REM ASIGN CHAR TO Ax$
235 CALL CHAR(96,A1$,108,A2$,112,A3$,116,A4$,120,A5$)
236 CALL CHAR(124,A6$,104,A7$,132,A8$,128,A9$)
240 CALL CLEAR :: FOR J=4 TO 28 STEP 2 :: HT=INT(RND*10)+1 !SETTING HEIGHT
245 CALL VCHAR(24-HT,J,132,HT) :: CALL VCHAR(24-HT,J+1,128,HT) !DRAWING HOUSES
250 A(J),A(J+1)=24-HT :: NEXT J :: CALL COLOR(13,2,6) :: CALL HCHAR(24,1,112,32)
260 CALL SPRITE(#2,96,5,10,1,0,35) !#2=PLANE
265 CALL SPRITE(#4,108,16,178,100,0,5,#5,108,11,178,20,0,5) !#4 and #5=TANK 1-2
266 CALL SPRITE(#6,108,12,178,180,0,5) !#6=TANK 3
270 CALL KEY(1,K,S) :: IF S THEN GOSUB 280 ELSE SC=SC-PN !"RED BUTTON" DROP BOMB
271 GOTO 270
280 CALL POSITION(#2,X,Y) :: CALL LOCATE(#2,X+1,Y) !WHERE IS THE PLANE
285 CALL SPRITE(#3,104,16,X,Y,50,0) :: CL=INT(Y/8.01)+1 :: X1=INT(X/8.01)+3 !BOMB
290 IF CL<4 OR CL>30 THEN 330
300 CALL COINC(ALL,C) :: IF C THEN 360 ELSE CALL POSITION(#3,X,Y)
305 IF X>184 THEN 330 ELSE RW=INT(X/8.01)+1 :: IF RW<A(CL) THEN 300
310 CALL SPRITE(#3,124,2,X,Y,-20,0) :: CALL SOUND(-200,-5,0)
315 CALL VCHAR(RW-2,CL,32,3) :: A(CL)=RW+1
320 SC=SC+10 :: DISPLAY AT(1,1):SC
330 CALL DELSPRITE(#3) :: IF X1<16 THEN RETURN !DELETE BOMB, RETURN TO "RED BUTTON"
340 FOR J=4 TO 29 :: IF A(J)<X1 THEN 380
350 NEXT J :: RETURN
360 CALL SPRITE(#3,116,16,176,Y,0,0) :: CALL SOUND(-560,-5,0)
365 SC=SC+(75-RW)*4 :: DISPLAY AT(1,1):SC
370 CALL PATTERN(#3,120) :: IF RND<.5 THEN 360 ELSE 330
380 CALL SOUND(-4000,-3,0,400,0)
385 FOR DEL=1 TO 1500 :: NEXT DEL :: RUN
390 STOP
400 SUB INSTRUCTIONS(PN) :: CALL CLEAR
410 DISPLAY AT(1,8):"TARGET" :: DISPLAY AT(2,8):"======"
420 DISPLAY AT(5,1):"USE ANY KEY TO DROP BOMB."
430 DISPLAY AT(9,1):"CHOOSE OPTION PLEASE"
440 DISPLAY AT(13,1):"EASY OPTION";TAB(26);"(1)"
450 DISPLAY AT(15,1):"HARD OPTION"
460 DISPLAY AT(16,1):"NEGATIVE SCORINGS";TAB(26);"(2)"
470 CALL KEY(0,KY,ST) :: CALL SOUND(-20,900,20) :: IF ST=0 THEN 470
480 IF KY=49 OR KY=50 THEN PN=KY-49 ELSE 470
500 SUBEND

600 REM *******
601 REM LINES 150 TO 210 DEFINE CHARACTERS .. EXPERIMENT HERE!
610 REM A1$................ PLANE
620 REM A2$................ TANKS
630 REM A3$................ ROAD
640 REM A4$,A5$,A6$........ EXPLOSIONS
650 REM A7$................ BOMB
660 REM A8$,A9$............ BUILDINGS
670 REM *******
680 REM SPRITE #2...........PLANE
690 REM SPRITES #4,#5,#6... TANKS
700 REM SPRITE #3.......... BOMB
710 REM *******
720 REM INCREASE DIFFICULTY LEVEL BY INCREASING SPEED OF SPRITE(#2)
725 REM ALSO HEIGHT OF BUILDIWGS CAH BE CHANHGED IN LINE 240
726 REM TANKS CAH BE SPEEDED UP ORF SLOWED DOWN IN LINES 265 AND 266
730 REM ARRAY "A()" KEEPS CHECK OF HEIGHT OF EACH BUILDING
740 REM AS AN ALTERNATIVE TO "RUN" IN 385 YOU CAN CHECK FOR HIGHEST SCORE TO
750 REM DATE ..HIGHEST=MAX(SC,HIGHEST) AND GOTO 246 . HIGHEST SCORE CAN THEN
760 REM BE DISPLAYED
800 REM ALL REMS MAY BE DELETED

801 REM PLAYING AROUND - OLD/ORIGINAL STUFF
802 REM EXPLOSIONS 80E0F5FEFFFFFFF1C
803 REM 293B7FFFFF7F7F3F0F07030303070F7F80E0F5F5FFFFFEFEFE1C1818181C1EFF
804 REM 34599D45B5AC7CBF7EFF7EFFCA425149
805 REM A1$="0080C0FFFFFF3F78"&RPT$("0",22)&"FCFEFE8000000000"
900 END

 

Of course, you can safely ignore my gratuitous REM changes?—just keep the ones for lines 240 and 245. 

 

...lee

  • Like 1
Link to comment
Share on other sites

3 minutes ago, Lee Stewart said:

Here is the same program with each REM referring to a single line of code moved, as a tail comment, to the end of the relevant line. This leaves the line-234 REM intact as the only REM referring to more than one line:

  Reveal hidden contents


100 REM ***TX SOFTWARE***
110 REM R.MATTHENS (1982)
120 REM *****************
130 DIM A(32) :: A(1),A(2),A(3),A(31),A(30),A(31),A(32)=25
140 RANDOMIZE :: CALL MAGNIFY(3) :: CALL COLOR(9,2,6,11,1,5,13,1,1)
145 CALL SCREEN(6) :: CALL INSTRUCTIONS(PN)
150 A1$="0080C0FFFFFF1E78"&RPT$("0",22)&"F8FEFE8000000000" !PLANE
160 A2$="000000030F1F1F077FFFFF7F2A3F000000000000C0FFC080FCFEFEFCA8F80000" !TANK
170 A3$="FFFF" !ROAD
180 A4$=RPT$("0",16)&"293A6FDABF754F3D"&RPT$("0",16)&"0E0D5BEDDF7AEF1C" !TANK EXPLOSIONS 1(ANIM) START
190 A5$="291B7DD7BF7B6F3D0F07030303070F7F8060F5D5BFFFFADEFA1C1818181C1EFF" !TANK EXPLOSIONS 2(ANIM) BIG
200 A6$="34599544B5AE78AF7AD77EB7CA425149" !EXPLOSIONS BUILDING
210 A7$="E040404000000000" !BOMB
220 A8$="7F7F66667F7F6666" !RIGHT SIDE HOUSE
230 A9$="FEFE6666FEFE6666" !LEFT SIDE HOUSE
234 REM ASIGN CHAR TO Ax$
235 CALL CHAR(96,A1$,108,A2$,112,A3$,116,A4$,120,A5$)
236 CALL CHAR(124,A6$,104,A7$,132,A8$,128,A9$)
240 CALL CLEAR :: FOR J=4 TO 28 STEP 2 :: HT=INT(RND*10)+1 !SETTING HEIGHT
245 CALL VCHAR(24-HT,J,132,HT) :: CALL VCHAR(24-HT,J+1,128,HT) !DRAWING HOUSES
250 A(J),A(J+1)=24-HT :: NEXT J :: CALL COLOR(13,2,6) :: CALL HCHAR(24,1,112,32)
260 CALL SPRITE(#2,96,5,10,1,0,35) !#2=PLANE
265 CALL SPRITE(#4,108,16,178,100,0,5,#5,108,11,178,20,0,5) !#4 and #5=TANK 1-2
266 CALL SPRITE(#6,108,12,178,180,0,5) !#6=TANK 3
270 CALL KEY(1,K,S) :: IF S THEN GOSUB 280 ELSE SC=SC-PN !"RED BUTTON" DROP BOMB
271 GOTO 270
280 CALL POSITION(#2,X,Y) :: CALL LOCATE(#2,X+1,Y) !WHERE IS THE PLANE
285 CALL SPRITE(#3,104,16,X,Y,50,0) :: CL=INT(Y/8.01)+1 :: X1=INT(X/8.01)+3 !BOMB
290 IF CL<4 OR CL>30 THEN 330
300 CALL COINC(ALL,C) :: IF C THEN 360 ELSE CALL POSITION(#3,X,Y)
305 IF X>184 THEN 330 ELSE RW=INT(X/8.01)+1 :: IF RW<A(CL) THEN 300
310 CALL SPRITE(#3,124,2,X,Y,-20,0) :: CALL SOUND(-200,-5,0)
315 CALL VCHAR(RW-2,CL,32,3) :: A(CL)=RW+1
320 SC=SC+10 :: DISPLAY AT(1,1):SC
330 CALL DELSPRITE(#3) :: IF X1<16 THEN RETURN !DELETE BOMB, RETURN TO "RED BUTTON"
340 FOR J=4 TO 29 :: IF A(J)<X1 THEN 380
350 NEXT J :: RETURN
360 CALL SPRITE(#3,116,16,176,Y,0,0) :: CALL SOUND(-560,-5,0)
365 SC=SC+(75-RW)*4 :: DISPLAY AT(1,1):SC
370 CALL PATTERN(#3,120) :: IF RND<.5 THEN 360 ELSE 330
380 CALL SOUND(-4000,-3,0,400,0)
385 FOR DEL=1 TO 1500 :: NEXT DEL :: RUN
390 STOP
400 SUB INSTRUCTIONS(PN) :: CALL CLEAR
410 DISPLAY AT(1,8):"TARGET" :: DISPLAY AT(2,8):"======"
420 DISPLAY AT(5,1):"USE ANY KEY TO DROP BOMB."
430 DISPLAY AT(9,1):"CHOOSE OPTION PLEASE"
440 DISPLAY AT(13,1):"EASY OPTION";TAB(26);"(1)"
450 DISPLAY AT(15,1):"HARD OPTION"
460 DISPLAY AT(16,1):"NEGATIVE SCORINGS";TAB(26);"(2)"
470 CALL KEY(0,KY,ST) :: CALL SOUND(-20,900,20) :: IF ST=0 THEN 470
480 IF KY=49 OR KY=50 THEN PN=KY-49 ELSE 470
500 SUBEND

600 REM *******
601 REM LINES 150 TO 210 DEFINE CHARACTERS .. EXPERIMENT HERE!
610 REM A1$................ PLANE
620 REM A2$................ TANKS
630 REM A3$................ ROAD
640 REM A4$,A5$,A6$........ EXPLOSIONS
650 REM A7$................ BOMB
660 REM A8$,A9$............ BUILDINGS
670 REM *******
680 REM SPRITE #2...........PLANE
690 REM SPRITES #4,#5,#6... TANKS
700 REM SPRITE #3.......... BOMB
710 REM *******
720 REM INCREASE DIFFICULTY LEVEL BY INCREASING SPEED OF SPRITE(#2)
725 REM ALSO HEIGHT OF BUILDIWGS CAH BE CHANHGED IN LINE 240
726 REM TANKS CAH BE SPEEDED UP ORF SLOWED DOWN IN LINES 265 AND 266
730 REM ARRAY "A()" KEEPS CHECK OF HEIGHT OF EACH BUILDING
740 REM AS AN ALTERNATIVE TO "RUN" IN 385 YOU CAN CHECK FOR HIGHEST SCORE TO
750 REM DATE ..HIGHEST=MAX(SC,HIGHEST) AND GOTO 246 . HIGHEST SCORE CAN THEN
760 REM BE DISPLAYED
800 REM ALL REMS MAY BE DELETED

801 REM PLAYING AROUND - OLD/ORIGINAL STUFF
802 REM EXPLOSIONS 80E0F5FEFFFFFFF1C
803 REM 293B7FFFFF7F7F3F0F07030303070F7F80E0F5F5FFFFFEFEFE1C1818181C1EFF
804 REM 34599D45B5AC7CBF7EFF7EFFCA425149
805 REM A1$="0080C0FFFFFF3F78"&RPT$("0",22)&"FCFEFE8000000000"
900 END

 

Of course, you can safely ignore my gratuitous REM changes?—just keep the ones for lines 240 and 245. 

 

...lee

The REM is added after trying a good deal of different stuff. So in a last try to understand it as I was reading the code, I added that. Was doing TRACE to see what the TI was doing, and then I added the REM in my doc.

Thx, for that, Lee! Then I save space in lines and I can add comments ;) Seen it, did not know how it worked. But now I know.

But I did not have REM in anything as I was trying to get it to work.

  • Like 2
Link to comment
Share on other sites

  • 1 month later...

Playing around with Raphael - tool!

 

OK 2 things...
1 "DATA ERROR IN 320"... Why??? I have 110 CHAR to use, this pic is only 104. If you don't as line 565 and out. If I solve #2, then maybe I can get the hole pic in.

2 How can I make ONE "FFFFFFFFFFFFFFFF"? Like assigning "FFFFFFFFFFFFFFFF" to one specific CHAR, AND then integrate it into the data lines? Like 143="FFFFFFFFFFFFFFFF"?

 

 

 

Spoiler

100 CALL CLEAR
110 BOX=33

300 FOR ROW=11 to 26
310 FOR COL=1 to 16
320 READ A$
330 CALL CHAR(BOX,A$)
340 CALL HCHAR(ROW,COL,BOX)
350 BOX=BOX+1

400 NEXT COL
410 NEXT ROW

500 DATA "BE2E2707070100B0","040307F3E7C34303","FFFFFFFFFFFEFFFF","E8EFFFFFFEBE3F35","00E0380406030303","0000000002A0E0E0","0000240000402010","2301000080400000"
505 DATA "C6E0809060703000","00011F1F07040000","BFFFFFF8E8400000","8080000000010303","7F7F3FFFFFFFFFFF","C0E0E0F0F0F8FFFF","1F1F0F070321F0F0","FFFFFFFFFFFF7F3F"
510 DATA "C8FCC0801E3F3CF0","03077F160343F005","FFFF7FFFFFFFFFFF","B2B9FCDBFFFFFFFE","C39F3F3FBFFD0F37","E0E0F0F4FEFEFCFD","00000000000000F0","0000800000400070"
515 DATA "380400002C010007","10F8FD7F7F034080","1010B2FFFFFFDF84","07BEFFFEF8C0C000","FF9F1F1F3F3F3F7F","FFFFFFFFFFFFFFFF","F0F0F0F8FCFCFFFF","3F1F1F0F030080C8"
520 DATA "E1E7EFFFFFFEFEF1","F0E0C203C37C2818","7FFFFFFF7F7FBF3F","FFFFFFFFFFFFFFFF","EFCFFDE0F2C0E0FA","FFFFFF5700790000","FCFCFEE6F000FC00","0030200000000000"
525 DATA "0703010303030100","C0C0F8F99D8080F9","00C008C84CD8018F","00000103475EFCFD","7FFFFFFFFFFFFFFF","FFFFFFFFFDFEFEFE","FFFFFFFFFFFF7F7F","CCE7F8FCFEFEFFFF"
530 DATA "F8FFFFFFFFFFFFFF","66EEFFFFFBBF7FFF","1F3F7B870F7FFFFF","FFFFFFFFFFFFFFFF","FEEFD1E1CCF4F2FA","6266EEFEFFFF7F3F","20C3C7CEFCFCFCFC","301C3F3F1F1F1F1F"
535 DATA "0008C0E0F0F8F8F8","FF67FFFF7F736000","FFFFFFFF8F000000","FDF9F9F8F878783C","FFFFFFFFFFFFFF7E","FFFFF3F77B373F5E","3F3D199C981C1818","FFFFFFFFFF7F7F7F"
540 DATA "FFFFFFFFFFFFFFFF","FFFFFFFFFFFFFFFF","FFFFFFFFFFFFFFFF","FFFFFFFFFFFFFFFE","F8FDFDFFFFF88000","3F9F1FCE00000000","84C0C00000000060","1F1C000000033F39"
545 DATA "F80000007CFDFFFF","00031EFFFFFFFFFF","00000C98FFFFFFFF","1C00000000D0F2F3","3C100021703F3D31","0000000000000800","18183C3C7CFF1606","7F7F7F3F3F7FFFBF"
550 DATA "FFFFFFFFFFFFFFFF","FFFFFFFFFFFFFFFF","FFFFFFFFFFFFFFFF","F8F8FFFFFFFFFFFF","002FFFFFFFFFFFFF","01F8F8F8FAFFFEFF","F090584824267203","0989814949412006"
555 DATA "FFFFFFFFFFFFFF7F","FFFFFFFFFFFFFFFF","FFFFFFFFFFFFFFFF","FFFFF9F1E1E1C0C0","8898BEED1DB7977F","0110B0E2E6E78BEC","180988841029D17A","8FC7C34180C0C0C0"
560 DATA "FFFFFFFFFFFFFFFF","FFFEFEFEFEFEFEFE","FF6F7F7F7D7D7F7F","FFFFFFFFFFFFFFFF","FFFFFFFFFFFFFFFF","FFFFFFFFFFFFFFFF","0737C30080E2EBE7","9080C0607038A081"

565 DATA "3F3F3F1F3C6000C6","FFFFFFE03E000000","FFFFFF0007000000","C0802000E0600001","0F01333701000000","4CDFC3C321030302","7D7D898303070707","E0F8D8F2FFFFFFFF"
570 DATA "FFFFFFFEF6D081C1","FEFFEF9B69C38400","170D1F1F9F8FC800","FFFFFE8E8C800000","FFFD71410303030F","FFFFFFFFFFFFFFFF","EFDFDEFCFDFDFCFE","430F5FFFFFFFFF7F"
575 DATA "E3FFFFFDFDFFFF00","80F0F8FCF4BFE300","000003078080E002","0000402080000000","0000000001030C3E","060444ECECE0F1F0","0F070F0F0F1F3F3F","FFFFFFFFFFFFFFFF"

 

 

Link to comment
Share on other sites

1 hour ago, oddemann said:

Playing around with Raphael - tool!

 

OK 2 things...
1 "DATA ERROR IN 320"... Why??? I have 110 CHAR to use, this pic is only 104. If you don't as line 565 and out. If I solve #2, then maybe I can get the hole pic in.

2 How can I make ONE "FFFFFFFFFFFFFFFF"? Like assigning "FFFFFFFFFFFFFFFF" to one specific CHAR, AND then integrate it into the data lines? Like 143="FFFFFFFFFFFFFFFF"?

 

 

 

  Reveal hidden contents


100 CALL CLEAR
110 BOX=33

300 FOR ROW=11 to 26
310 FOR COL=1 to 16
320 READ A$
330 CALL CHAR(BOX,A$)
340 CALL HCHAR(ROW,COL,BOX)
350 BOX=BOX+1

400 NEXT COL
410 NEXT ROW

500 DATA "BE2E2707070100B0","040307F3E7C34303","FFFFFFFFFFFEFFFF","E8EFFFFFFEBE3F35","00E0380406030303","0000000002A0E0E0","0000240000402010","2301000080400000"
505 DATA "C6E0809060703000","00011F1F07040000","BFFFFFF8E8400000","8080000000010303","7F7F3FFFFFFFFFFF","C0E0E0F0F0F8FFFF","1F1F0F070321F0F0","FFFFFFFFFFFF7F3F"
510 DATA "C8FCC0801E3F3CF0","03077F160343F005","FFFF7FFFFFFFFFFF","B2B9FCDBFFFFFFFE","C39F3F3FBFFD0F37","E0E0F0F4FEFEFCFD","00000000000000F0","0000800000400070"
515 DATA "380400002C010007","10F8FD7F7F034080","1010B2FFFFFFDF84","07BEFFFEF8C0C000","FF9F1F1F3F3F3F7F","FFFFFFFFFFFFFFFF","F0F0F0F8FCFCFFFF","3F1F1F0F030080C8"
520 DATA "E1E7EFFFFFFEFEF1","F0E0C203C37C2818","7FFFFFFF7F7FBF3F","FFFFFFFFFFFFFFFF","EFCFFDE0F2C0E0FA","FFFFFF5700790000","FCFCFEE6F000FC00","0030200000000000"
525 DATA "0703010303030100","C0C0F8F99D8080F9","00C008C84CD8018F","00000103475EFCFD","7FFFFFFFFFFFFFFF","FFFFFFFFFDFEFEFE","FFFFFFFFFFFF7F7F","CCE7F8FCFEFEFFFF"
530 DATA "F8FFFFFFFFFFFFFF","66EEFFFFFBBF7FFF","1F3F7B870F7FFFFF","FFFFFFFFFFFFFFFF","FEEFD1E1CCF4F2FA","6266EEFEFFFF7F3F","20C3C7CEFCFCFCFC","301C3F3F1F1F1F1F"
535 DATA "0008C0E0F0F8F8F8","FF67FFFF7F736000","FFFFFFFF8F000000","FDF9F9F8F878783C","FFFFFFFFFFFFFF7E","FFFFF3F77B373F5E","3F3D199C981C1818","FFFFFFFFFF7F7F7F"
540 DATA "FFFFFFFFFFFFFFFF","FFFFFFFFFFFFFFFF","FFFFFFFFFFFFFFFF","FFFFFFFFFFFFFFFE","F8FDFDFFFFF88000","3F9F1FCE00000000","84C0C00000000060","1F1C000000033F39"
545 DATA "F80000007CFDFFFF","00031EFFFFFFFFFF","00000C98FFFFFFFF","1C00000000D0F2F3","3C100021703F3D31","0000000000000800","18183C3C7CFF1606","7F7F7F3F3F7FFFBF"
550 DATA "FFFFFFFFFFFFFFFF","FFFFFFFFFFFFFFFF","FFFFFFFFFFFFFFFF","F8F8FFFFFFFFFFFF","002FFFFFFFFFFFFF","01F8F8F8FAFFFEFF","F090584824267203","0989814949412006"
555 DATA "FFFFFFFFFFFFFF7F","FFFFFFFFFFFFFFFF","FFFFFFFFFFFFFFFF","FFFFF9F1E1E1C0C0","8898BEED1DB7977F","0110B0E2E6E78BEC","180988841029D17A","8FC7C34180C0C0C0"
560 DATA "FFFFFFFFFFFFFFFF","FFFEFEFEFEFEFEFE","FF6F7F7F7D7D7F7F","FFFFFFFFFFFFFFFF","FFFFFFFFFFFFFFFF","FFFFFFFFFFFFFFFF","0737C30080E2EBE7","9080C0607038A081"

565 DATA "3F3F3F1F3C6000C6","FFFFFFE03E000000","FFFFFF0007000000","C0802000E0600001","0F01333701000000","4CDFC3C321030302","7D7D898303070707","E0F8D8F2FFFFFFFF"
570 DATA "FFFFFFFEF6D081C1","FEFFEF9B69C38400","170D1F1F9F8FC800","FFFFFE8E8C800000","FFFD71410303030F","FFFFFFFFFFFFFFFF","EFDFDEFCFDFDFCFE","430F5FFFFFFFFF7F"
575 DATA "E3FFFFFDFDFFFF00","80F0F8FCF4BFE300","000003078080E002","0000402080000000","0000000001030C3E","060444ECECE0F1F0","0F070F0F0F1F3F3F","FFFFFFFFFFFFFFFF"

 

 

Fixed it... Here is the updated and working ver.

 

Spoiler

100 CALL CLEAR
110 BOX=33

300 FOR ROW=11 to 18
310 FOR COL=1 to 16
320 READ A$
325 IF A$="FFFFFFFFFFFFFFFF" THEN 600
330 CALL CHAR(BOX,A$)
340 CALL HCHAR(ROW,COL,BOX)
341 REM CALL HCHAR(24,32,62)
350 BOX=BOX+1

400 NEXT COL
410 NEXT ROW

450 GOTO 450

500 DATA "BE2E2707070100B0","040307F3E7C34303","FFFFFFFFFFFEFFFF","E8EFFFFFFEBE3F35","00E0380406030303","0000000002A0E0E0","0000240000402010","2301000080400000"
505 DATA "C6E0809060703000","00011F1F07040000","BFFFFFF8E8400000","8080000000010303","7F7F3FFFFFFFFFFF","C0E0E0F0F0F8FFFF","1F1F0F070321F0F0","FFFFFFFFFFFF7F3F"
510 DATA "C8FCC0801E3F3CF0","03077F160343F005","FFFF7FFFFFFFFFFF","B2B9FCDBFFFFFFFE","C39F3F3FBFFD0F37","E0E0F0F4FEFEFCFD","00000000000000F0","0000800000400070"
515 DATA "380400002C010007","10F8FD7F7F034080","1010B2FFFFFFDF84","07BEFFFEF8C0C000","FF9F1F1F3F3F3F7F","FFFFFFFFFFFFFFFF","F0F0F0F8FCFCFFFF","3F1F1F0F030080C8"
520 DATA "E1E7EFFFFFFEFEF1","F0E0C203C37C2818","7FFFFFFF7F7FBF3F","FFFFFFFFFFFFFFFF","EFCFFDE0F2C0E0FA","FFFFFF5700790000","FCFCFEE6F000FC00","0030200000000000"
525 DATA "0703010303030100","C0C0F8F99D8080F9","00C008C84CD8018F","00000103475EFCFD","7FFFFFFFFFFFFFFF","FFFFFFFFFDFEFEFE","FFFFFFFFFFFF7F7F","CCE7F8FCFEFEFFFF"
530 DATA "F8FFFFFFFFFFFFFF","66EEFFFFFBBF7FFF","1F3F7B870F7FFFFF","FFFFFFFFFFFFFFFF","FEEFD1E1CCF4F2FA","6266EEFEFFFF7F3F","20C3C7CEFCFCFCFC","301C3F3F1F1F1F1F"
535 DATA "0008C0E0F0F8F8F8","FF67FFFF7F736000","FFFFFFFF8F000000","FDF9F9F8F878783C","FFFFFFFFFFFFFF7E","FFFFF3F77B373F5E","3F3D199C981C1818","FFFFFFFFFF7F7F7F"
540 DATA "FFFFFFFFFFFFFFFF","FFFFFFFFFFFFFFFF","FFFFFFFFFFFFFFFF","FFFFFFFFFFFFFFFE","F8FDFDFFFFF88000","3F9F1FCE00000000","84C0C00000000060","1F1C000000033F39"
545 DATA "F80000007CFDFFFF","00031EFFFFFFFFFF","00000C98FFFFFFFF","1C00000000D0F2F3","3C100021703F3D31","0000000000000800","18183C3C7CFF1606","7F7F7F3F3F7FFFBF"
550 DATA "FFFFFFFFFFFFFFFF","FFFFFFFFFFFFFFFF","FFFFFFFFFFFFFFFF","F8F8FFFFFFFFFFFF","002FFFFFFFFFFFFF","01F8F8F8FAFFFEFF","F090584824267203","0989814949412006"
555 DATA "FFFFFFFFFFFFFF7F","FFFFFFFFFFFFFFFF","FFFFFFFFFFFFFFFF","FFFFF9F1E1E1C0C0","8898BEED1DB7977F","0110B0E2E6E78BEC","180988841029D17A","8FC7C34180C0C0C0"
560 DATA "FFFFFFFFFFFFFFFF","FFFEFEFEFEFEFEFE","FF6F7F7F7D7D7F7F","FFFFFFFFFFFFFFFF","FFFFFFFFFFFFFFFF","FFFFFFFFFFFFFFFF","0737C30080E2EBE7","9080C0607038A081"
565 DATA "3F3F3F1F3C6000C6","FFFFFFE03E000000","FFFFFF0007000000","C0802000E0600001","0F01333701000000","4CDFC3C321030302","7D7D898303070707","E0F8D8F2FFFFFFFF"
570 DATA "FFFFFFFEF6D081C1","FEFFEF9B69C38400","170D1F1F9F8FC800","FFFFFE8E8C800000","FFFD71410303030F","FFFFFFFFFFFFFFFF","EFDFDEFCFDFDFCFE","430F5FFFFFFFFF7F"
575 DATA "E3FFFFFDFDFFFF00","80F0F8FCF4BFE300","000003078080E002","0000402080000000","0000000001030C3E","060444ECECE0F1F0","0F070F0F0F1F3F3F","FFFFFFFFFFFFFFFF"

600 CALL CHAR(143,"FFFFFFFFFFFFFFFF")
610 CALL HCHAR(ROW,COL,143)
620 GOTO 400

 

 

Link to comment
Share on other sites

Running man!

Copied a gif and made it Ti compatible (Using Raphael tool)... All the date is in... 

How can I make the "animation" faster?
How can I reset the Read-Data? I guess the error you get after the first round is the program looking for new and more data. I want it to start over, how?
Also, I guess that not "printing" the empty box is not smart, as it does not clean the "page" as it adds the next pic. (the IF line...) Trying to not use time on "nothing".

Late... will work on it tomorrow... But any suggestions to make it faster, would be great.


 

Spoiler

100 CALL CLEAR

200 FOR ANI=1 TO 9
210 BOX=33
300 FOR ROW=3 to 10
310 FOR COL=3 to 10
320 READ A$
325 IF A$="" THEN 400
330 CALL CHAR(BOX,A$)
340 CALL HCHAR(ROW,COL,BOX)
350 BOX=BOX+1

400 NEXT COL
410 NEXT ROW
420 NEXT ANI

500 DATA "","","","0000000102040000","0000000000002010","","",""
501 DATA "","","0000000000050051","0810001120410051","0010204000000000","","",""
502 DATA "","","8254780402110805","8111811180158A11","0000000520450850","0040000080400000","",""
503 DATA "","","0201020002010001","0F04000408040A01","8000000000000000","","",""
504 DATA "0000000000003855","0000000000000055","0001000100000201","0810081402110010","0040001004442211","","",""
505 DATA "48400B5000503050","0000A01500000000","220501410B000000","20502050C0000000","1811011109110901","","",""
506 DATA "","","","","0805000500050B01","0000000080008054","",""
507 DATA "","","","","0805000000000000","0850000000000000","",""

508 DATA "","","","0000000102040004","0000001008000800","","",""
509 DATA "","","0000000000000001","0810101100418041","0810004000000000","","",""
510 DATA "","","0205010503050301","8801911180502A55","","","",""
511 DATA "","","0001020002040201","2014020008141211","8054225400000000","","",""
512 DATA "0000000000010201","000030500C151054","0001010100413005","1010001088048245","0000004020101010","","",""
513 DATA "0000020100000000","8200000000000000","8050220100000000","C854205408000000","A844785040444040","","",""
514 DATA "","","","","4044404408442857","","",""
515 DATA "","","","","2055000000000000","E050000000000000","",""

516 DATA "","","","0000000102040000","0000001000100010","","",""
517 DATA "","","0000000000010200","0810205180010211","0010204000000000","","",""
518 DATA "","","000408151A150905","2041810100000205","","","",""
519 DATA "","","0404020504050001","82450A5199512804","0000804000400000","","",""
520 DATA "","0000000100040205","0201000180540301","06058341E0503815","0000000080402050","","",""
521 DATA "","0204020702010000","2055800080000000","0301201523152244","9050B05000000000","","",""
522 DATA "","","0000000100010001","4C44085090102050","","","",""
523 DATA "","","0201000000000000","0C55000000000000","","","",""

524 DATA "","","","0000000400000010","0000004000002010","","",""
525 DATA "","","0000000001142051","0010205180012041","","","",""
526 DATA "","","FE54085129151215","8001800102010205","0000000000412A01","0000000000400040","",""
527 DATA "","","0A150E0500040201","000408100C050000","AA01000000008050","8000000000000000","",""
528 DATA "","","0001010100010101","20140E0108050B15","080503512B450214","0000000080000000","",""
529 DATA "","","0001000101050604","B840021400100050","2040000000000000","","",""
530 DATA "","0000000000010301","08102145CC183014","4854000000000000","","","",""
531 DATA "","0101000000000000","0E55000000000000","","","","",""

532 DATA "","","","0000021000100010","0000004000400000","","",""
533 DATA "","0000000100000000","00003B10B0551051","0010A20100518101","004000141A142840","","",""
534 DATA "","","0050005108540855","8001800181010204","88509050A0400000","","",""
535 DATA "","","0101020102050205","0004000406050041","0000000000008040","","",""
536 DATA "","","0404081000102141","2054224100000000","201008048A553215","","",""
537 DATA "000000000A150215","0001025080052000","6044085020000000","","0801080008040004","0000000080008040","",""
538 DATA "2040001008100000","","","","0200000102010000","004020510A540000","",""
539 DATA "","","","","","","",""

540 DATA "","","","0000021000100010","0000004000402000","","",""
541 DATA "","","0000000002142845","0000225102012041","0040800000000000","","",""
542 DATA "","","2C44200500140211","8001800180010204","8000005400540000","","",""
543 DATA "","","0B15020002010101","0004000404048241","","","",""
544 DATA "0000000508050915","0000000080508241","0200020404040851","2010101020440301","8040004020103050","","",""
545 DATA "2440201000000000","2014020100000000","201502500C000000","","C854204400442210","","",""
546 DATA "","","","","021100110F150805","0000000000540850","",""
547 DATA "","","","","0200000000000000","","",""

548 DATA "","","","0000000100040010","0000000000002010","","",""
549 DATA "","","0000000000000001","0010001120410811","0040000000000000","","",""
550 DATA "","","0005050502010001","2041800100119855","0000000000400040","","",""
551 DATA "","0000000000000001","0001020002000101","22150A0008040000","","","",""
552 DATA "","0204081102510010","0041805100040311","8241211180148855","0000000000400040","","",""
553 DATA "","","0004030000000000","8A51B25102040004","2040204000400040","","",""
554 DATA "","","","0004000508050911","8040800000000040","","",""
555 DATA "","","","0005000000000000","0050000000000000","","",""

556 DATA "","","","0000000100040000","0000004000000010","","",""
557 DATA "","","","0010001100052251","0010204000000000","","",""
558 DATA "","","0001010102050101","C0442041C8519A51","","","",""
559 DATA "","","0000000100010001","A005000400040605","8050201000000000","","",""
560 DATA "","","0000000509010215","8245004400442201","0000804000002050","","",""
561 DATA "","","0004101400000000","A215331400440000","3850B05000000000","","",""
562 DATA "","","0000010102000205","8010200000400040","","","",""
563 DATA "","","0005000000000000","0050000000000000","","","",""

564 DATA "","","","0000000100040000","0000001000100010","","",""
565 DATA "","","0000000000000314","0800001000410045","0010200000000000","","",""
566 DATA "","","0015000500010000","8044004400450241","800182118214A000","8040000000000000","",""
567 DATA "","","0000000100010001","8200020406050810","0000000000008050","","",""
568 DATA "","","0001010102000201","0814111000002000","0004024122143E51","0000000080408000","",""
569 DATA "","0000000000000001","02040A1120400000","8045885106441211","8014200000000000","","",""
570 DATA "","000102040C150211","0000004080000000","0905000000000000","0040000000000000","","",""
571 DATA "","0805000000000000","8040000000000000","","","","",""

1000 GOTO 200

 

 

 

Link to comment
Share on other sites

15 hours ago, TheBF said:

One way to speed this up would be to define the characters only once in the first loop.

 

Then write the characters to screen in a separate loop.

 

Actually, you should do it the other way round. You only need to display the characters once. After that, redefining the characters is all that is required to change them on screen. Of course, you need to define the first set of characters before you display them.

 

...lee

  • Like 4
Link to comment
Share on other sites

On 5/21/2021 at 10:06 PM, oddemann said:

How can I make the "animation" faster?

 

1 hour ago, Lee Stewart said:

Actually, you should do it the other way round. You only need to display the characters once. After that, redefining the characters is all that is required to change them on screen. Of course, you need to define the first set of characters before you display them.

 

Here is one way to do what I suggested above. Though it is faster, it still is depressingly slow:

Spoiler

100 CALL CLEAR

200 GOSUB 400     ! redefine character set
209 REM Display initial graphic
210 DISPLAY AT(3,1):"!""#$%&'("
220 DISPLAY AT(4,1):")*+,-./0"
230 DISPLAY AT(5,1):"12345678"
240 DISPLAY AT(6,1):"9:;<=>?@"
250 DISPLAY AT(7,1):"ABCDEFGH"
260 DISPLAY AT(8,1):"IJKLMNOP"
270 DISPLAY AT(9,1):"QRSTUVWX"
280 DISPLAY AT(10,1):"YZ[\]^_`"
289 REM Animation loop
290 FOR ANI=1 TO 9
300 GOSUB 400
310 NEXT ANI
320 RESTORE 508   ! restore reads to second data set (last set is repeat of first)
330 GOTO 290      ! restart animation

399 REM Redefine character set
400 FOR CH=33 TO 96 STEP 4
410 READ A$
420 CALL CHAR(CH,A$)
430 NEXT CH
440 RETURN

500 DATA "0000000000000000000000000000000000000000000000000000000102040000","0000000000002010000000000000000000000000000000000"
501 DATA "0000000000000000000000000000000000000000000500510810001120410051","0010204000000000000000000000000000000000000000000"
502 DATA "0000000000000000000000000000000082547804021108058111811180158A11","0000000520450850004000008040000000000000000000000"
503 DATA "0000000000000000000000000000000002010200020100010F04000408040A01","8000000000000000000000000000000000000000000000000"
504 DATA "0000000000003855000000000000005500010001000002010810081402110010","0040001004442211000000000000000000000000000000000"
505 DATA "48400B50005030500000A01500000000220501410B00000020502050C0000000","1811011109110901000000000000000000000000000000000"
506 DATA "0000000000000000000000000000000000000000000000000000000000000000","0805000500050B01000000008000805400000000000000000"
507 DATA "0000000000000000000000000000000000000000000000000000000000000000","0805000000000000085000000000000000000000000000000"
                                                                                                                           
508 DATA "0000000000000000000000000000000000000000000000000000000102040004","0000001008000800000000000000000000000000000000000"
509 DATA "0000000000000000000000000000000000000000000000010810101100418041","0810004000000000000000000000000000000000000000000"
510 DATA "0000000000000000000000000000000002050105030503018801911180502A55","0000000000000000000000000000000000000000000000000"
511 DATA "0000000000000000000000000000000000010200020402012014020008141211","8054225400000000000000000000000000000000000000000"
512 DATA "0000000000010201000030500C15105400010101004130051010001088048245","0000004020101010000000000000000000000000000000000"
513 DATA "000002010000000082000000000000008050220100000000C854205408000000","A844785040444040000000000000000000000000000000000"
514 DATA "0000000000000000000000000000000000000000000000000000000000000000","4044404408442857000000000000000000000000000000000"
515 DATA "0000000000000000000000000000000000000000000000000000000000000000","2055000000000000E05000000000000000000000000000000"
                                                                                                                           
516 DATA "0000000000000000000000000000000000000000000000000000000102040000","0000001000100010000000000000000000000000000000000"
517 DATA "0000000000000000000000000000000000000000000102000810205180010211","0010204000000000000000000000000000000000000000000"
518 DATA "00000000000000000000000000000000000408151A1509052041810100000205","0000000000000000000000000000000000000000000000000"
519 DATA "00000000000000000000000000000000040402050405000182450A5199512804","0000804000400000000000000000000000000000000000000"
520 DATA "00000000000000000000000100040205020100018054030106058341E0503815","0000000080402050000000000000000000000000000000000"
521 DATA "0000000000000000020402070201000020558000800000000301201523152244","9050B05000000000000000000000000000000000000000000"
522 DATA "0000000000000000000000000000000000000001000100014C44085090102050","0000000000000000000000000000000000000000000000000"
523 DATA "0000000000000000000000000000000002010000000000000C55000000000000","0000000000000000000000000000000000000000000000000"
                                                                                                                           
524 DATA "0000000000000000000000000000000000000000000000000000000400000010","0000004000002010000000000000000000000000000000000"
525 DATA "0000000000000000000000000000000000000000011420510010205180012041","0000000000000000000000000000000000000000000000000"
526 DATA "00000000000000000000000000000000FE540851291512158001800102010205","0000000000412A01000000000040004000000000000000000"
527 DATA "000000000000000000000000000000000A150E0500040201000408100C050000","AA01000000008050800000000000000000000000000000000"
528 DATA "00000000000000000000000000000000000101010001010120140E0108050B15","080503512B450214000000008000000000000000000000000"
529 DATA "000000000000000000000000000000000001000101050604B840021400100050","2040000000000000000000000000000000000000000000000"
530 DATA "0000000000000000000000000001030108102145CC1830144854000000000000","0000000000000000000000000000000000000000000000000"
531 DATA "000000000000000001010000000000000E550000000000000000000000000000","0000000000000000000000000000000000000000000000000"
                                                                                                                           
532 DATA "0000000000000000000000000000000000000000000000000000021000100010","0000004000400000000000000000000000000000000000000"
533 DATA "0000000000000000000000010000000000003B10B05510510010A20100518101","004000141A142840000000000000000000000000000000000"
534 DATA "0000000000000000000000000000000000500051085408558001800181010204","88509050A0400000000000000000000000000000000000000"
535 DATA "0000000000000000000000000000000001010201020502050004000406050041","0000000000008040000000000000000000000000000000000"
536 DATA "0000000000000000000000000000000004040810001021412054224100000000","201008048A553215000000000000000000000000000000000"
537 DATA "000000000A150215000102508005200060440850200000000000000000000000","0801080008040004000000008000804000000000000000000"
538 DATA "2040001008100000000000000000000000000000000000000000000000000000","0200000102010000004020510A54000000000000000000000"
539 DATA "0000000000000000000000000000000000000000000000000000000000000000","0000000000000000000000000000000000000000000000000"
                                                                                                                           
540 DATA "0000000000000000000000000000000000000000000000000000021000100010","0000004000402000000000000000000000000000000000000"
541 DATA "0000000000000000000000000000000000000000021428450000225102012041","0040800000000000000000000000000000000000000000000"
542 DATA "000000000000000000000000000000002C442005001402118001800180010204","8000005400540000000000000000000000000000000000000"
543 DATA "000000000000000000000000000000000B150200020101010004000404048241","0000000000000000000000000000000000000000000000000"
544 DATA "0000000508050915000000008050824102000204040408512010101020440301","8040004020103050000000000000000000000000000000000"
545 DATA "24402010000000002014020100000000201502500C0000000000000000000000","C854204400442210000000000000000000000000000000000"
546 DATA "0000000000000000000000000000000000000000000000000000000000000000","021100110F150805000000000054085000000000000000000"
547 DATA "0000000000000000000000000000000000000000000000000000000000000000","0200000000000000000000000000000000000000000000000"
                                                                                                                           
548 DATA "0000000000000000000000000000000000000000000000000000000100040010","0000000000002010000000000000000000000000000000000"
549 DATA "0000000000000000000000000000000000000000000000010010001120410811","0040000000000000000000000000000000000000000000000"
550 DATA "0000000000000000000000000000000000050505020100012041800100119855","0000000000400040000000000000000000000000000000000"
551 DATA "00000000000000000000000000000001000102000200010122150A0008040000","0000000000000000000000000000000000000000000000000"
552 DATA "0000000000000000020408110251001000418051000403118241211180148855","0000000000400040000000000000000000000000000000000"
553 DATA "0000000000000000000000000000000000040300000000008A51B25102040004","2040204000400040000000000000000000000000000000000"
554 DATA "0000000000000000000000000000000000000000000000000004000508050911","8040800000000040000000000000000000000000000000000"
555 DATA "0000000000000000000000000000000000000000000000000005000000000000","0050000000000000000000000000000000000000000000000"
                                                                                                                           
556 DATA "0000000000000000000000000000000000000000000000000000000100040000","0000004000000010000000000000000000000000000000000"
557 DATA "0000000000000000000000000000000000000000000000000010001100052251","0010204000000000000000000000000000000000000000000"
558 DATA "000000000000000000000000000000000001010102050101C0442041C8519A51","0000000000000000000000000000000000000000000000000"
559 DATA "000000000000000000000000000000000000000100010001A005000400040605","8050201000000000000000000000000000000000000000000"
560 DATA "0000000000000000000000000000000000000005090102158245004400442201","0000804000002050000000000000000000000000000000000"
561 DATA "000000000000000000000000000000000004101400000000A215331400440000","3850B05000000000000000000000000000000000000000000"
562 DATA "0000000000000000000000000000000000000101020002058010200000400040","0000000000000000000000000000000000000000000000000"
563 DATA "0000000000000000000000000000000000050000000000000050000000000000","0000000000000000000000000000000000000000000000000"
                                                                                                                           
564 DATA "0000000000000000000000000000000000000000000000000000000100040000","0000001000100010000000000000000000000000000000000"
565 DATA "0000000000000000000000000000000000000000000003140800001000410045","0010200000000000000000000000000000000000000000000"
566 DATA "0000000000000000000000000000000000150005000100008044004400450241","800182118214A000804000000000000000000000000000000"
567 DATA "0000000000000000000000000000000000000001000100018200020406050810","0000000000008050000000000000000000000000000000000"
568 DATA "0000000000000000000000000000000000010101020002010814111000002000","0004024122143E51000000008040800000000000000000000"
569 DATA "0000000000000000000000000000000102040A11204000008045885106441211","8014200000000000000000000000000000000000000000000"
570 DATA "0000000000000000000102040C15021100000040800000000905000000000000","0040000000000000000000000000000000000000000000000"
571 DATA "0000000000000000080500000000000080400000000000000000000000000000","0000000000000000000000000000000000000000000000000"
                                                                                                                           
572 DATA "0000000000000000000000000000000000000000000000000000000102040000","0000000000002010000000000000000000000000000000000"
573 DATA "0000000000000000000000000000000000000000000500510810001120410051","0010204000000000000000000000000000000000000000000"
574 DATA "0000000000000000000000000000000082547804021108058111811180158A11","0000000520450850004000008040000000000000000000000"
575 DATA "0000000000000000000000000000000002010200020100010F04000408040A01","8000000000000000000000000000000000000000000000000"
576 DATA "0000000000003855000000000000005500010001000002010810081402110010","0040001004442211000000000000000000000000000000000"
577 DATA "48400B50005030500000A01500000000220501410B00000020502050C0000000","1811011109110901000000000000000000000000000000000"
578 DATA "0000000000000000000000000000000000000000000000000000000000000000","0805000500050B01000000008000805400000000000000000"
579 DATA "0000000000000000000000000000000000000000000000000000000000000000","0805000000000000085000000000000000000000000000000"

 

 

You will note that I used DISPLAY AT instead of HCHAR to display the initial graphic.

 

...lee

  • Like 1
Link to comment
Share on other sites

13 minutes ago, Lee Stewart said:

 

 

Here is one way to do what I suggested above. Though it is faster, it still is depressingly slow:

  Reveal hidden contents


100 CALL CLEAR

200 GOSUB 400     ! redefine character set
209 REM Display initial graphic
210 DISPLAY AT(3,1):"!""#$%&'("
220 DISPLAY AT(4,1):")*+,-./0"
230 DISPLAY AT(5,1):"12345678"
240 DISPLAY AT(6,1):"9:;<=>?@"
250 DISPLAY AT(7,1):"ABCDEFGH"
260 DISPLAY AT(8,1):"IJKLMNOP"
270 DISPLAY AT(9,1):"QRSTUVWX"
280 DISPLAY AT(10,1):"YZ[\]^_`"
289 REM Animation loop
290 FOR ANI=1 TO 9
300 GOSUB 400
310 NEXT ANI
320 RESTORE 508   ! restore reads to second data set (last set is repeat of first)
330 GOTO 290      ! restart animation

399 REM Redefine character set
400 FOR CH=33 TO 96 STEP 4
410 READ A$
420 CALL CHAR(CH,A$)
430 NEXT CH
440 RETURN

500 DATA "0000000000000000000000000000000000000000000000000000000102040000","0000000000002010000000000000000000000000000000000"
501 DATA "0000000000000000000000000000000000000000000500510810001120410051","0010204000000000000000000000000000000000000000000"
502 DATA "0000000000000000000000000000000082547804021108058111811180158A11","0000000520450850004000008040000000000000000000000"
503 DATA "0000000000000000000000000000000002010200020100010F04000408040A01","8000000000000000000000000000000000000000000000000"
504 DATA "0000000000003855000000000000005500010001000002010810081402110010","0040001004442211000000000000000000000000000000000"
505 DATA "48400B50005030500000A01500000000220501410B00000020502050C0000000","1811011109110901000000000000000000000000000000000"
506 DATA "0000000000000000000000000000000000000000000000000000000000000000","0805000500050B01000000008000805400000000000000000"
507 DATA "0000000000000000000000000000000000000000000000000000000000000000","0805000000000000085000000000000000000000000000000"
                                                                                                                           
508 DATA "0000000000000000000000000000000000000000000000000000000102040004","0000001008000800000000000000000000000000000000000"
509 DATA "0000000000000000000000000000000000000000000000010810101100418041","0810004000000000000000000000000000000000000000000"
510 DATA "0000000000000000000000000000000002050105030503018801911180502A55","0000000000000000000000000000000000000000000000000"
511 DATA "0000000000000000000000000000000000010200020402012014020008141211","8054225400000000000000000000000000000000000000000"
512 DATA "0000000000010201000030500C15105400010101004130051010001088048245","0000004020101010000000000000000000000000000000000"
513 DATA "000002010000000082000000000000008050220100000000C854205408000000","A844785040444040000000000000000000000000000000000"
514 DATA "0000000000000000000000000000000000000000000000000000000000000000","4044404408442857000000000000000000000000000000000"
515 DATA "0000000000000000000000000000000000000000000000000000000000000000","2055000000000000E05000000000000000000000000000000"
                                                                                                                           
516 DATA "0000000000000000000000000000000000000000000000000000000102040000","0000001000100010000000000000000000000000000000000"
517 DATA "0000000000000000000000000000000000000000000102000810205180010211","0010204000000000000000000000000000000000000000000"
518 DATA "00000000000000000000000000000000000408151A1509052041810100000205","0000000000000000000000000000000000000000000000000"
519 DATA "00000000000000000000000000000000040402050405000182450A5199512804","0000804000400000000000000000000000000000000000000"
520 DATA "00000000000000000000000100040205020100018054030106058341E0503815","0000000080402050000000000000000000000000000000000"
521 DATA "0000000000000000020402070201000020558000800000000301201523152244","9050B05000000000000000000000000000000000000000000"
522 DATA "0000000000000000000000000000000000000001000100014C44085090102050","0000000000000000000000000000000000000000000000000"
523 DATA "0000000000000000000000000000000002010000000000000C55000000000000","0000000000000000000000000000000000000000000000000"
                                                                                                                           
524 DATA "0000000000000000000000000000000000000000000000000000000400000010","0000004000002010000000000000000000000000000000000"
525 DATA "0000000000000000000000000000000000000000011420510010205180012041","0000000000000000000000000000000000000000000000000"
526 DATA "00000000000000000000000000000000FE540851291512158001800102010205","0000000000412A01000000000040004000000000000000000"
527 DATA "000000000000000000000000000000000A150E0500040201000408100C050000","AA01000000008050800000000000000000000000000000000"
528 DATA "00000000000000000000000000000000000101010001010120140E0108050B15","080503512B450214000000008000000000000000000000000"
529 DATA "000000000000000000000000000000000001000101050604B840021400100050","2040000000000000000000000000000000000000000000000"
530 DATA "0000000000000000000000000001030108102145CC1830144854000000000000","0000000000000000000000000000000000000000000000000"
531 DATA "000000000000000001010000000000000E550000000000000000000000000000","0000000000000000000000000000000000000000000000000"
                                                                                                                           
532 DATA "0000000000000000000000000000000000000000000000000000021000100010","0000004000400000000000000000000000000000000000000"
533 DATA "0000000000000000000000010000000000003B10B05510510010A20100518101","004000141A142840000000000000000000000000000000000"
534 DATA "0000000000000000000000000000000000500051085408558001800181010204","88509050A0400000000000000000000000000000000000000"
535 DATA "0000000000000000000000000000000001010201020502050004000406050041","0000000000008040000000000000000000000000000000000"
536 DATA "0000000000000000000000000000000004040810001021412054224100000000","201008048A553215000000000000000000000000000000000"
537 DATA "000000000A150215000102508005200060440850200000000000000000000000","0801080008040004000000008000804000000000000000000"
538 DATA "2040001008100000000000000000000000000000000000000000000000000000","0200000102010000004020510A54000000000000000000000"
539 DATA "0000000000000000000000000000000000000000000000000000000000000000","0000000000000000000000000000000000000000000000000"
                                                                                                                           
540 DATA "0000000000000000000000000000000000000000000000000000021000100010","0000004000402000000000000000000000000000000000000"
541 DATA "0000000000000000000000000000000000000000021428450000225102012041","0040800000000000000000000000000000000000000000000"
542 DATA "000000000000000000000000000000002C442005001402118001800180010204","8000005400540000000000000000000000000000000000000"
543 DATA "000000000000000000000000000000000B150200020101010004000404048241","0000000000000000000000000000000000000000000000000"
544 DATA "0000000508050915000000008050824102000204040408512010101020440301","8040004020103050000000000000000000000000000000000"
545 DATA "24402010000000002014020100000000201502500C0000000000000000000000","C854204400442210000000000000000000000000000000000"
546 DATA "0000000000000000000000000000000000000000000000000000000000000000","021100110F150805000000000054085000000000000000000"
547 DATA "0000000000000000000000000000000000000000000000000000000000000000","0200000000000000000000000000000000000000000000000"
                                                                                                                           
548 DATA "0000000000000000000000000000000000000000000000000000000100040010","0000000000002010000000000000000000000000000000000"
549 DATA "0000000000000000000000000000000000000000000000010010001120410811","0040000000000000000000000000000000000000000000000"
550 DATA "0000000000000000000000000000000000050505020100012041800100119855","0000000000400040000000000000000000000000000000000"
551 DATA "00000000000000000000000000000001000102000200010122150A0008040000","0000000000000000000000000000000000000000000000000"
552 DATA "0000000000000000020408110251001000418051000403118241211180148855","0000000000400040000000000000000000000000000000000"
553 DATA "0000000000000000000000000000000000040300000000008A51B25102040004","2040204000400040000000000000000000000000000000000"
554 DATA "0000000000000000000000000000000000000000000000000004000508050911","8040800000000040000000000000000000000000000000000"
555 DATA "0000000000000000000000000000000000000000000000000005000000000000","0050000000000000000000000000000000000000000000000"
                                                                                                                           
556 DATA "0000000000000000000000000000000000000000000000000000000100040000","0000004000000010000000000000000000000000000000000"
557 DATA "0000000000000000000000000000000000000000000000000010001100052251","0010204000000000000000000000000000000000000000000"
558 DATA "000000000000000000000000000000000001010102050101C0442041C8519A51","0000000000000000000000000000000000000000000000000"
559 DATA "000000000000000000000000000000000000000100010001A005000400040605","8050201000000000000000000000000000000000000000000"
560 DATA "0000000000000000000000000000000000000005090102158245004400442201","0000804000002050000000000000000000000000000000000"
561 DATA "000000000000000000000000000000000004101400000000A215331400440000","3850B05000000000000000000000000000000000000000000"
562 DATA "0000000000000000000000000000000000000101020002058010200000400040","0000000000000000000000000000000000000000000000000"
563 DATA "0000000000000000000000000000000000050000000000000050000000000000","0000000000000000000000000000000000000000000000000"
                                                                                                                           
564 DATA "0000000000000000000000000000000000000000000000000000000100040000","0000001000100010000000000000000000000000000000000"
565 DATA "0000000000000000000000000000000000000000000003140800001000410045","0010200000000000000000000000000000000000000000000"
566 DATA "0000000000000000000000000000000000150005000100008044004400450241","800182118214A000804000000000000000000000000000000"
567 DATA "0000000000000000000000000000000000000001000100018200020406050810","0000000000008050000000000000000000000000000000000"
568 DATA "0000000000000000000000000000000000010101020002010814111000002000","0004024122143E51000000008040800000000000000000000"
569 DATA "0000000000000000000000000000000102040A11204000008045885106441211","8014200000000000000000000000000000000000000000000"
570 DATA "0000000000000000000102040C15021100000040800000000905000000000000","0040000000000000000000000000000000000000000000000"
571 DATA "0000000000000000080500000000000080400000000000000000000000000000","0000000000000000000000000000000000000000000000000"
                                                                                                                           
572 DATA "0000000000000000000000000000000000000000000000000000000102040000","0000000000002010000000000000000000000000000000000"
573 DATA "0000000000000000000000000000000000000000000500510810001120410051","0010204000000000000000000000000000000000000000000"
574 DATA "0000000000000000000000000000000082547804021108058111811180158A11","0000000520450850004000008040000000000000000000000"
575 DATA "0000000000000000000000000000000002010200020100010F04000408040A01","8000000000000000000000000000000000000000000000000"
576 DATA "0000000000003855000000000000005500010001000002010810081402110010","0040001004442211000000000000000000000000000000000"
577 DATA "48400B50005030500000A01500000000220501410B00000020502050C0000000","1811011109110901000000000000000000000000000000000"
578 DATA "0000000000000000000000000000000000000000000000000000000000000000","0805000500050B01000000008000805400000000000000000"
579 DATA "0000000000000000000000000000000000000000000000000000000000000000","0805000000000000085000000000000000000000000000000"

 

 

You will note that I used DISPLAY AT instead of HCHAR to display the initial graphic.

 

...lee

? WOW it looks GREAT!!!! Yes it is slow, but it looks GREAT!!!!

Thx, I learned about Display at vs. HCHAR!

Question... Is this "eating" a lot of memory, fast? If one was to make an adventure game with different animations to make life into a text adventure.
Like a tree moving slowly, in a clearing. 
Waves on the sea.
The dragon looking around.
And other images that would add to the atmosphere of the game.
Would this fast "eat" all memory fast?

Edited by oddemann
Link to comment
Share on other sites

17 minutes ago, oddemann said:

? WOW it looks GREAT!!!! Yes it is slow, but it looks GREAT!!!!

Thx, I learned about Display at vs. HCHAR!

Question... Is this "eating" a lot of memory, fast? If one was to make an adventure game with different animations to make life into a text adventure.
Like a tree moving slowly, in a clearing. 
Waves on the sea.
The dragon looking around.
And other images that would add to the atmosphere of the game.
Would this fast "eat" all memory fast?

It's funny to see that Lee and I were both thinking about this.  I could not take the time yesterday to re-write it but I wanted to.

 

So you can think this through for memory usage by looking at Lee's code.  We can see the program lines are small and the data lines are most of the code.

Each frame of the animation here is using 64 characters on the screen, but they are they same characters reused so that's not a problem.

 

The pattern data to re-shape the characters is using the space in the program.

Counting the bytes in the data lines I see 8960 bytes.

So that's a lot of memory for our little machines.  You are full with 2 or 3 animations 

 

Some solutions come to mind in order of difficulty:

  1. You reduce the size of the pictures.  You could do the animation with one character images but it would not be as interesting. :) 
  2. You record all the data for each animation as records in a disk file and read them into memory one at a time to show them. Of course you need a program to make the disk file as well.
  3. There are a lot of zeros in the data so some kind of compression method could be used to like "run-length-encoding".
    This would count the zeros and just record that number in the data. Then to remake the picture it outputs the correct number of zeros as a string and correctly glues the other data to the string of zeros.
     Kind of tricky but doable.

And of course the best solution would be to make an animation language that lets you play the data faster with a simple set of customized commands.

How could we do that...

let me see... 

 

 how about  Forth! :)   (That's a big learning curve)

 

 

  • Like 4
Link to comment
Share on other sites

On 5/21/2021 at 10:06 PM, oddemann said:

How can I make the "animation" faster?

 

1 hour ago, TheBF said:

The pattern data to re-shape the characters is using the space in the program.

Counting the bytes in the data lines I see 8960 bytes.

So that's a lot of memory for our little machines.  You are full with 2 or 3 animations 

 

Using the strings for character definitions in XB consumes 2 bytes for every actual character byte, so we could cut that in half by loading a block of character definitions. I do not know of an easy XB way to do this except to use an Assembly Language Code (ALC) subroutine. We would not need the repeated character set, so the block of character graphics would consume 4.5 KiB of RAM—still quite a bit. I do not expect you, @oddemann, to learn ALC, but, just for grins, I will write one you can load and call from XB.

 

...lee

  • Like 4
Link to comment
Share on other sites

56 minutes ago, Lee Stewart said:

 

 

Using the strings for character definitions in XB consumes 2 bytes for every actual character byte, so we could cut that in half by loading a block of character definitions. I do not know of an easy XB way to do this except to use an Assembly Language Code (ALC) subroutine. We would not need the repeated character set, so the block of character graphics would consume 4.5 KiB of RAM—still quite a bit. I do not expect you, @oddemann, to learn ALC, but, just for grins, I will write one you can load and call from XB.

 

...lee

Try RXB by a change to your program:

Spoiler

209 REM  HPUT initial graphic
210 CALL HPUT(3,3,"!""#$%&'(")
220 CALL HPUT(4,3,")*+,-./0")
230 CALL HPUT(5,3,"12345678")
240 CALL HPUT(6,3,"9:;<=>?@")
250 CALL HPUT(7,3,"ABCDEFGH")
260 CALL HPUT(8,3,"IJKLMNOP")
270 CALL HPUT(9,3,"QRSTUVWX")
280 CALL HPUT(10,3,"YZ[\]^_`")

 

It appears to be faster then XB does.

  • Like 2
Link to comment
Share on other sites

I just had to see how this would work at speed. :)  

Very nice animation work by @Oddeman 

 

This is actually too fast.  It needs to have a delay built into DRAW.

 

I reworked CALLCHAR to compile long hex strings into CPU RAM so I could compile the existing code easier.

 

Spoiler

\ RUNNINGMAN

INCLUDE DSK1.GRAFIX
INCLUDE DSK1.CHARSET

DECIMAL 
: DRAW  ( data[] -- ) 33 ]PDT 512 VWRITE ;

: >DIG  ( char -- n) DIGIT? 0= ABORT" Bad digit" ;

: HEX#, ( addr len  --) \ can be used for longstrings (128 bytes)
        BASE @ >R  \ save these variables
        HEX               \ we are converting hex numbers in the string
        BOUNDS
        DO
           I    C@ >DIG  4 LSHIFT
           I 1+ C@ >DIG  OR C,
        2 +LOOP
        R> BASE !  \ restore the variables
;

\ Display initial graphic
DECIMAL
: .FRAME
    1  3 AT-XY ." !" [CHAR] " EMIT ." #$%&'("
    1  4 AT-XY ." )*+,-./0"
    1  5 AT-XY ." 12345678"
    1  6 AT-XY ." 9:;<=>?@"
    1  7 AT-XY ." ABCDEFGH"
    1  8 AT-XY ." IJKLMNOP"
    1  9 AT-XY ." QRSTUVWX"
    1 10 AT-XY ." YZ[\]^_`"
;

CREATE FRAME1
S" 0000000000000000000000000000000000000000000000000000000102040000" HEX#,
S" 0000000000002010000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000000000000500510810001120410051" HEX#,
S" 0010204000000000000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000082547804021108058111811180158A11" HEX#,
S" 0000000520450850004000008040000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000002010200020100010F04000408040A01" HEX#,
S" 8000000000000000000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000003855000000000000005500010001000002010810081402110010" HEX#,
S" 0040001004442211000000000000000000000000000000000000000000000000" HEX#,
S" 48400B50005030500000A01500000000220501410B00000020502050C0000000" HEX#,
S" 1811011109110901000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000000000000000000000000000000000" HEX#,
S" 0805000500050B01000000008000805400000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000000000000000000000000000000000" HEX#,
S" 0805000000000000085000000000000000000000000000000000000000000000" HEX#,


CREATE FRAME2
S" 0000000000000000000000000000000000000000000000000000000102040004" HEX#,
S" 0000001008000800000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000000000000000010810101100418041" HEX#,
S" 0810004000000000000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000002050105030503018801911180502A55" HEX#,
S" 0000000000000000000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000010200020402012014020008141211" HEX#,
S" 8054225400000000000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000010201000030500C15105400010101004130051010001088048245" HEX#,
S" 0000004020101010000000000000000000000000000000000000000000000000" HEX#,
S" 000002010000000082000000000000008050220100000000C854205408000000" HEX#,
S" A844785040444040000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000000000000000000000000000000000" HEX#,
S" 4044404408442857000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000000000000000000000000000000000" HEX#,
S" 2055000000000000E05000000000000000000000000000000000000000000000" HEX#,


CREATE FRAME3
S" 0000000000000000000000000000000000000000000000000000000102040000" HEX#,
S" 0000001000100010000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000000000000102000810205180010211" HEX#,
S" 0010204000000000000000000000000000000000000000000000000000000000" HEX#,
S" 00000000000000000000000000000000000408151A1509052041810100000205" HEX#,
S" 0000000000000000000000000000000000000000000000000000000000000000" HEX#,
S" 00000000000000000000000000000000040402050405000182450A5199512804" HEX#,
S" 0000804000400000000000000000000000000000000000000000000000000000" HEX#,
S" 00000000000000000000000100040205020100018054030106058341E0503815" HEX#,
S" 0000000080402050000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000020402070201000020558000800000000301201523152244" HEX#,
S" 9050B05000000000000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000000001000100014C44085090102050" HEX#,
S" 0000000000000000000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000002010000000000000C55000000000000" HEX#,
S" 0000000000000000000000000000000000000000000000000000000000000000" HEX#,


CREATE FRAME4
S" 0000000000000000000000000000000000000000000000000000000400000010" HEX#,
S" 0000004000002010000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000000000011420510010205180012041" HEX#,
S" 0000000000000000000000000000000000000000000000000000000000000000" HEX#,
S" 00000000000000000000000000000000FE540851291512158001800102010205" HEX#,
S" 0000000000412A01000000000040004000000000000000000000000000000000" HEX#,
S" 000000000000000000000000000000000A150E0500040201000408100C050000" HEX#,
S" AA01000000008050800000000000000000000000000000000000000000000000" HEX#,
S" 00000000000000000000000000000000000101010001010120140E0108050B15" HEX#,
S" 080503512B450214000000008000000000000000000000000000000000000000" HEX#,
S" 000000000000000000000000000000000001000101050604B840021400100050" HEX#,
S" 2040000000000000000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000001030108102145CC1830144854000000000000" HEX#,
S" 0000000000000000000000000000000000000000000000000000000000000000" HEX#,
S" 000000000000000001010000000000000E550000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000000000000000000000000000000000" HEX#,


CREATE FRAME5
S" 0000000000000000000000000000000000000000000000000000021000100010" HEX#,
S" 0000004000400000000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000010000000000003B10B05510510010A20100518101" HEX#,
S" 004000141A142840000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000500051085408558001800181010204" HEX#,
S" 88509050A0400000000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000001010201020502050004000406050041" HEX#,
S" 0000000000008040000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000004040810001021412054224100000000" HEX#,
S" 201008048A553215000000000000000000000000000000000000000000000000" HEX#,
S" 000000000A150215000102508005200060440850200000000000000000000000" HEX#,
S" 0801080008040004000000008000804000000000000000000000000000000000" HEX#,
S" 2040001008100000000000000000000000000000000000000000000000000000" HEX#,
S" 0200000102010000004020510A54000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000000000000000000000000000000000" HEX#,


CREATE FRAME6
S" 0000000000000000000000000000000000000000000000000000021000100010" HEX#,
S" 0000004000402000000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000000000021428450000225102012041" HEX#,
S" 0040800000000000000000000000000000000000000000000000000000000000" HEX#,
S" 000000000000000000000000000000002C442005001402118001800180010204" HEX#,
S" 8000005400540000000000000000000000000000000000000000000000000000" HEX#,
S" 000000000000000000000000000000000B150200020101010004000404048241" HEX#,
S" 0000000000000000000000000000000000000000000000000000000000000000" HEX#,
S" 0000000508050915000000008050824102000204040408512010101020440301" HEX#,
S" 8040004020103050000000000000000000000000000000000000000000000000" HEX#,
S" 24402010000000002014020100000000201502500C0000000000000000000000" HEX#,
S" C854204400442210000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000000000000000000000000000000000" HEX#,
S" 021100110F150805000000000054085000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000000000000000000000000000000000" HEX#,
S" 0200000000000000000000000000000000000000000000000000000000000000" HEX#,


CREATE FRAME7
S" 0000000000000000000000000000000000000000000000000000000100040010" HEX#,
S" 0000000000002010000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000000000000000010010001120410811"  HEX#,
S" 0040000000000000000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000050505020100012041800100119855" HEX#,
S" 0000000000400040000000000000000000000000000000000000000000000000" HEX#,
S" 00000000000000000000000000000001000102000200010122150A0008040000" HEX#,
S" 0000000000000000000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000020408110251001000418051000403118241211180148855" HEX#,
S" 0000000000400040000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000040300000000008A51B25102040004" HEX#,
S" 2040204000400040000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000000000000000000004000508050911" HEX#,
S" 8040800000000040000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000000000000000000005000000000000" HEX#,
S" 0050000000000000000000000000000000000000000000000000000000000000" HEX#,


CREATE FRAME8
S" 0000000000000000000000000000000000000000000000000000000100040000" HEX#,
S" 0000004000000010000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000000000000000000010001100052251" HEX#,
S" 0010204000000000000000000000000000000000000000000000000000000000" HEX#,
S" 000000000000000000000000000000000001010102050101C0442041C8519A51" HEX#,
S" 0000000000000000000000000000000000000000000000000000000000000000" HEX#,
S" 000000000000000000000000000000000000000100010001A005000400040605" HEX#,
S" 8050201000000000000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000000005090102158245004400442201" HEX#,
S" 0000804000002050000000000000000000000000000000000000000000000000" HEX#,
S" 000000000000000000000000000000000004101400000000A215331400440000" HEX#,
S" 3850B05000000000000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000000101020002058010200000400040" HEX#,
S" 0000000000000000000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000050000000000000050000000000000" HEX#,
S" 0000000000000000000000000000000000000000000000000000000000000000" HEX#,


CREATE FRAME9
S" 0000000000000000000000000000000000000000000000000000000100040000" HEX#,
S" 0000001000100010000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000000000000003140800001000410045" HEX#,
S" 0010200000000000000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000150005000100008044004400450241" HEX#,
S" 800182118214A000804000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000000001000100018200020406050810" HEX#,
S" 0000000000008050000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000010101020002010814111000002000" HEX#,
S" 0004024122143E51000000008040800000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000102040A11204000008045885106441211" HEX#,
S" 8014200000000000000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000102040C15021100000040800000000905000000000000" HEX#,
S" 0040000000000000000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000080500000000000080400000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000000000000000000000000000000000" HEX#,


CREATE FRAME10
S" 0000000000000000000000000000000000000000000000000000000102040000" HEX#,
S" 0000000000002010000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000000000000500510810001120410051" HEX#,
S" 0010204000000000000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000082547804021108058111811180158A11" HEX#,
S" 0000000520450850004000008040000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000002010200020100010F04000408040A01" HEX#,
S" 8000000000000000000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000003855000000000000005500010001000002010810081402110010" HEX#,
S" 0040001004442211000000000000000000000000000000000000000000000000" HEX#,
S" 48400B50005030500000A01500000000220501410B00000020502050C0000000" HEX#,
S" 1811011109110901000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000000000000000000000000000000000" HEX#,
S" 0805000500050B01000000008000805400000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000000000000000000000000000000000" HEX#,
S" 0805000000000000085000000000000000000000000000000000000000000000" HEX#,


: RUNMAN
  PAGE .FRAME
  BEGIN
     FRAME1 DRAW
     FRAME2 DRAW
     FRAME3 DRAW
     FRAME4 DRAW
     FRAME5 DRAW
     FRAME6 DRAW
     FRAME7 DRAW
     FRAME8 DRAW
     FRAME9 DRAW
     FRAME10 DRAW
     ?TERMINAL
  UNTIL
  CHARSET ;

 

 

  • Like 3
Link to comment
Share on other sites

54 minutes ago, TheBF said:

I just had to see how this would work at speed. :)  

Very nice animation work by @Oddeman 

 

This is actually too fast.  It needs to have a delay built into DRAW.

 

I reworked CALLCHAR to compile long hex strings into CPU RAM so I could compile the existing code easier.

 

  Reveal hidden contents


\ RUNNINGMAN

INCLUDE DSK1.GRAFIX
INCLUDE DSK1.CHARSET

DECIMAL 
: DRAW  ( data[] -- ) 33 ]PDT 512 VWRITE ;

: >DIG  ( char -- n) DIGIT? 0= ABORT" Bad digit" ;

: HEX#, ( addr len  --) \ can be used for longstrings (128 bytes)
        BASE @ >R  \ save these variables
        HEX               \ we are converting hex numbers in the string
        BOUNDS
        DO
           I    C@ >DIG  4 LSHIFT
           I 1+ C@ >DIG  OR C,
        2 +LOOP
        R> BASE !  \ restore the variables
;

\ Display initial graphic
DECIMAL
: .FRAME
    1  3 AT-XY ." !" [CHAR] " EMIT ." #$%&'("
    1  4 AT-XY ." )*+,-./0"
    1  5 AT-XY ." 12345678"
    1  6 AT-XY ." 9:;<=>?@"
    1  7 AT-XY ." ABCDEFGH"
    1  8 AT-XY ." IJKLMNOP"
    1  9 AT-XY ." QRSTUVWX"
    1 10 AT-XY ." YZ[\]^_`"
;

CREATE FRAME1
S" 0000000000000000000000000000000000000000000000000000000102040000" HEX#,
S" 0000000000002010000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000000000000500510810001120410051" HEX#,
S" 0010204000000000000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000082547804021108058111811180158A11" HEX#,
S" 0000000520450850004000008040000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000002010200020100010F04000408040A01" HEX#,
S" 8000000000000000000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000003855000000000000005500010001000002010810081402110010" HEX#,
S" 0040001004442211000000000000000000000000000000000000000000000000" HEX#,
S" 48400B50005030500000A01500000000220501410B00000020502050C0000000" HEX#,
S" 1811011109110901000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000000000000000000000000000000000" HEX#,
S" 0805000500050B01000000008000805400000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000000000000000000000000000000000" HEX#,
S" 0805000000000000085000000000000000000000000000000000000000000000" HEX#,


CREATE FRAME2
S" 0000000000000000000000000000000000000000000000000000000102040004" HEX#,
S" 0000001008000800000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000000000000000010810101100418041" HEX#,
S" 0810004000000000000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000002050105030503018801911180502A55" HEX#,
S" 0000000000000000000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000010200020402012014020008141211" HEX#,
S" 8054225400000000000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000010201000030500C15105400010101004130051010001088048245" HEX#,
S" 0000004020101010000000000000000000000000000000000000000000000000" HEX#,
S" 000002010000000082000000000000008050220100000000C854205408000000" HEX#,
S" A844785040444040000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000000000000000000000000000000000" HEX#,
S" 4044404408442857000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000000000000000000000000000000000" HEX#,
S" 2055000000000000E05000000000000000000000000000000000000000000000" HEX#,


CREATE FRAME3
S" 0000000000000000000000000000000000000000000000000000000102040000" HEX#,
S" 0000001000100010000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000000000000102000810205180010211" HEX#,
S" 0010204000000000000000000000000000000000000000000000000000000000" HEX#,
S" 00000000000000000000000000000000000408151A1509052041810100000205" HEX#,
S" 0000000000000000000000000000000000000000000000000000000000000000" HEX#,
S" 00000000000000000000000000000000040402050405000182450A5199512804" HEX#,
S" 0000804000400000000000000000000000000000000000000000000000000000" HEX#,
S" 00000000000000000000000100040205020100018054030106058341E0503815" HEX#,
S" 0000000080402050000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000020402070201000020558000800000000301201523152244" HEX#,
S" 9050B05000000000000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000000001000100014C44085090102050" HEX#,
S" 0000000000000000000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000002010000000000000C55000000000000" HEX#,
S" 0000000000000000000000000000000000000000000000000000000000000000" HEX#,


CREATE FRAME4
S" 0000000000000000000000000000000000000000000000000000000400000010" HEX#,
S" 0000004000002010000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000000000011420510010205180012041" HEX#,
S" 0000000000000000000000000000000000000000000000000000000000000000" HEX#,
S" 00000000000000000000000000000000FE540851291512158001800102010205" HEX#,
S" 0000000000412A01000000000040004000000000000000000000000000000000" HEX#,
S" 000000000000000000000000000000000A150E0500040201000408100C050000" HEX#,
S" AA01000000008050800000000000000000000000000000000000000000000000" HEX#,
S" 00000000000000000000000000000000000101010001010120140E0108050B15" HEX#,
S" 080503512B450214000000008000000000000000000000000000000000000000" HEX#,
S" 000000000000000000000000000000000001000101050604B840021400100050" HEX#,
S" 2040000000000000000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000001030108102145CC1830144854000000000000" HEX#,
S" 0000000000000000000000000000000000000000000000000000000000000000" HEX#,
S" 000000000000000001010000000000000E550000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000000000000000000000000000000000" HEX#,


CREATE FRAME5
S" 0000000000000000000000000000000000000000000000000000021000100010" HEX#,
S" 0000004000400000000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000010000000000003B10B05510510010A20100518101" HEX#,
S" 004000141A142840000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000500051085408558001800181010204" HEX#,
S" 88509050A0400000000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000001010201020502050004000406050041" HEX#,
S" 0000000000008040000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000004040810001021412054224100000000" HEX#,
S" 201008048A553215000000000000000000000000000000000000000000000000" HEX#,
S" 000000000A150215000102508005200060440850200000000000000000000000" HEX#,
S" 0801080008040004000000008000804000000000000000000000000000000000" HEX#,
S" 2040001008100000000000000000000000000000000000000000000000000000" HEX#,
S" 0200000102010000004020510A54000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000000000000000000000000000000000" HEX#,


CREATE FRAME6
S" 0000000000000000000000000000000000000000000000000000021000100010" HEX#,
S" 0000004000402000000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000000000021428450000225102012041" HEX#,
S" 0040800000000000000000000000000000000000000000000000000000000000" HEX#,
S" 000000000000000000000000000000002C442005001402118001800180010204" HEX#,
S" 8000005400540000000000000000000000000000000000000000000000000000" HEX#,
S" 000000000000000000000000000000000B150200020101010004000404048241" HEX#,
S" 0000000000000000000000000000000000000000000000000000000000000000" HEX#,
S" 0000000508050915000000008050824102000204040408512010101020440301" HEX#,
S" 8040004020103050000000000000000000000000000000000000000000000000" HEX#,
S" 24402010000000002014020100000000201502500C0000000000000000000000" HEX#,
S" C854204400442210000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000000000000000000000000000000000" HEX#,
S" 021100110F150805000000000054085000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000000000000000000000000000000000" HEX#,
S" 0200000000000000000000000000000000000000000000000000000000000000" HEX#,


CREATE FRAME7
S" 0000000000000000000000000000000000000000000000000000000100040010" HEX#,
S" 0000000000002010000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000000000000000010010001120410811"  HEX#,
S" 0040000000000000000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000050505020100012041800100119855" HEX#,
S" 0000000000400040000000000000000000000000000000000000000000000000" HEX#,
S" 00000000000000000000000000000001000102000200010122150A0008040000" HEX#,
S" 0000000000000000000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000020408110251001000418051000403118241211180148855" HEX#,
S" 0000000000400040000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000040300000000008A51B25102040004" HEX#,
S" 2040204000400040000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000000000000000000004000508050911" HEX#,
S" 8040800000000040000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000000000000000000005000000000000" HEX#,
S" 0050000000000000000000000000000000000000000000000000000000000000" HEX#,


CREATE FRAME8
S" 0000000000000000000000000000000000000000000000000000000100040000" HEX#,
S" 0000004000000010000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000000000000000000010001100052251" HEX#,
S" 0010204000000000000000000000000000000000000000000000000000000000" HEX#,
S" 000000000000000000000000000000000001010102050101C0442041C8519A51" HEX#,
S" 0000000000000000000000000000000000000000000000000000000000000000" HEX#,
S" 000000000000000000000000000000000000000100010001A005000400040605" HEX#,
S" 8050201000000000000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000000005090102158245004400442201" HEX#,
S" 0000804000002050000000000000000000000000000000000000000000000000" HEX#,
S" 000000000000000000000000000000000004101400000000A215331400440000" HEX#,
S" 3850B05000000000000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000000101020002058010200000400040" HEX#,
S" 0000000000000000000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000050000000000000050000000000000" HEX#,
S" 0000000000000000000000000000000000000000000000000000000000000000" HEX#,


CREATE FRAME9
S" 0000000000000000000000000000000000000000000000000000000100040000" HEX#,
S" 0000001000100010000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000000000000003140800001000410045" HEX#,
S" 0010200000000000000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000150005000100008044004400450241" HEX#,
S" 800182118214A000804000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000000001000100018200020406050810" HEX#,
S" 0000000000008050000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000010101020002010814111000002000" HEX#,
S" 0004024122143E51000000008040800000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000102040A11204000008045885106441211" HEX#,
S" 8014200000000000000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000102040C15021100000040800000000905000000000000" HEX#,
S" 0040000000000000000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000080500000000000080400000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000000000000000000000000000000000" HEX#,


CREATE FRAME10
S" 0000000000000000000000000000000000000000000000000000000102040000" HEX#,
S" 0000000000002010000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000000000000500510810001120410051" HEX#,
S" 0010204000000000000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000082547804021108058111811180158A11" HEX#,
S" 0000000520450850004000008040000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000002010200020100010F04000408040A01" HEX#,
S" 8000000000000000000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000003855000000000000005500010001000002010810081402110010" HEX#,
S" 0040001004442211000000000000000000000000000000000000000000000000" HEX#,
S" 48400B50005030500000A01500000000220501410B00000020502050C0000000" HEX#,
S" 1811011109110901000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000000000000000000000000000000000" HEX#,
S" 0805000500050B01000000008000805400000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000000000000000000000000000000000" HEX#,
S" 0805000000000000085000000000000000000000000000000000000000000000" HEX#,


: RUNMAN
  PAGE .FRAME
  BEGIN
     FRAME1 DRAW
     FRAME2 DRAW
     FRAME3 DRAW
     FRAME4 DRAW
     FRAME5 DRAW
     FRAME6 DRAW
     FRAME7 DRAW
     FRAME8 DRAW
     FRAME9 DRAW
     FRAME10 DRAW
     ?TERMINAL
  UNTIL
  CHARSET ;

 

 

WHAT the H... S..., that is so FAST! WOW!!!!

You're really advertising for Forth here :p hehehehe That was amazing! 

Edited by oddemann
Typos...
  • Like 1
  • Haha 1
Link to comment
Share on other sites

Kinda cool this...

So @Asmusr makes "Raphael" and does an adjustment so that I can use his tool, to EASILY get out HEX data. That inspire meg to try some animations as I now QUICKLY can convert graphics to HEX. Then a "tiny" question about speed and "The Running man" is sprinting his ass off!

 


Hahahaha, I love this forum! So cool that people share their knowledge, willing to help and have fun. Thx to @Asmusr @Lee Stewart @TheBF @RXB

I got two cool "WOW" moments today!

  • Like 6
Link to comment
Share on other sites

1 hour ago, TheBF said:

I just had to see how this would work at speed. :)  

Very nice animation work by @Oddeman 

 

This is actually too fast.  It needs to have a delay built into DRAW.

 

I reworked CALLCHAR to compile long hex strings into CPU RAM so I could compile the existing code easier.

 

  Reveal hidden contents


\ RUNNINGMAN

INCLUDE DSK1.GRAFIX
INCLUDE DSK1.CHARSET

DECIMAL 
: DRAW  ( data[] -- ) 33 ]PDT 512 VWRITE ;

: >DIG  ( char -- n) DIGIT? 0= ABORT" Bad digit" ;

: HEX#, ( addr len  --) \ can be used for longstrings (128 bytes)
        BASE @ >R  \ save these variables
        HEX               \ we are converting hex numbers in the string
        BOUNDS
        DO
           I    C@ >DIG  4 LSHIFT
           I 1+ C@ >DIG  OR C,
        2 +LOOP
        R> BASE !  \ restore the variables
;

\ Display initial graphic
DECIMAL
: .FRAME
    1  3 AT-XY ." !" [CHAR] " EMIT ." #$%&'("
    1  4 AT-XY ." )*+,-./0"
    1  5 AT-XY ." 12345678"
    1  6 AT-XY ." 9:;<=>?@"
    1  7 AT-XY ." ABCDEFGH"
    1  8 AT-XY ." IJKLMNOP"
    1  9 AT-XY ." QRSTUVWX"
    1 10 AT-XY ." YZ[\]^_`"
;

CREATE FRAME1
S" 0000000000000000000000000000000000000000000000000000000102040000" HEX#,
S" 0000000000002010000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000000000000500510810001120410051" HEX#,
S" 0010204000000000000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000082547804021108058111811180158A11" HEX#,
S" 0000000520450850004000008040000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000002010200020100010F04000408040A01" HEX#,
S" 8000000000000000000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000003855000000000000005500010001000002010810081402110010" HEX#,
S" 0040001004442211000000000000000000000000000000000000000000000000" HEX#,
S" 48400B50005030500000A01500000000220501410B00000020502050C0000000" HEX#,
S" 1811011109110901000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000000000000000000000000000000000" HEX#,
S" 0805000500050B01000000008000805400000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000000000000000000000000000000000" HEX#,
S" 0805000000000000085000000000000000000000000000000000000000000000" HEX#,


CREATE FRAME2
S" 0000000000000000000000000000000000000000000000000000000102040004" HEX#,
S" 0000001008000800000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000000000000000010810101100418041" HEX#,
S" 0810004000000000000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000002050105030503018801911180502A55" HEX#,
S" 0000000000000000000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000010200020402012014020008141211" HEX#,
S" 8054225400000000000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000010201000030500C15105400010101004130051010001088048245" HEX#,
S" 0000004020101010000000000000000000000000000000000000000000000000" HEX#,
S" 000002010000000082000000000000008050220100000000C854205408000000" HEX#,
S" A844785040444040000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000000000000000000000000000000000" HEX#,
S" 4044404408442857000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000000000000000000000000000000000" HEX#,
S" 2055000000000000E05000000000000000000000000000000000000000000000" HEX#,


CREATE FRAME3
S" 0000000000000000000000000000000000000000000000000000000102040000" HEX#,
S" 0000001000100010000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000000000000102000810205180010211" HEX#,
S" 0010204000000000000000000000000000000000000000000000000000000000" HEX#,
S" 00000000000000000000000000000000000408151A1509052041810100000205" HEX#,
S" 0000000000000000000000000000000000000000000000000000000000000000" HEX#,
S" 00000000000000000000000000000000040402050405000182450A5199512804" HEX#,
S" 0000804000400000000000000000000000000000000000000000000000000000" HEX#,
S" 00000000000000000000000100040205020100018054030106058341E0503815" HEX#,
S" 0000000080402050000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000020402070201000020558000800000000301201523152244" HEX#,
S" 9050B05000000000000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000000001000100014C44085090102050" HEX#,
S" 0000000000000000000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000002010000000000000C55000000000000" HEX#,
S" 0000000000000000000000000000000000000000000000000000000000000000" HEX#,


CREATE FRAME4
S" 0000000000000000000000000000000000000000000000000000000400000010" HEX#,
S" 0000004000002010000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000000000011420510010205180012041" HEX#,
S" 0000000000000000000000000000000000000000000000000000000000000000" HEX#,
S" 00000000000000000000000000000000FE540851291512158001800102010205" HEX#,
S" 0000000000412A01000000000040004000000000000000000000000000000000" HEX#,
S" 000000000000000000000000000000000A150E0500040201000408100C050000" HEX#,
S" AA01000000008050800000000000000000000000000000000000000000000000" HEX#,
S" 00000000000000000000000000000000000101010001010120140E0108050B15" HEX#,
S" 080503512B450214000000008000000000000000000000000000000000000000" HEX#,
S" 000000000000000000000000000000000001000101050604B840021400100050" HEX#,
S" 2040000000000000000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000001030108102145CC1830144854000000000000" HEX#,
S" 0000000000000000000000000000000000000000000000000000000000000000" HEX#,
S" 000000000000000001010000000000000E550000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000000000000000000000000000000000" HEX#,


CREATE FRAME5
S" 0000000000000000000000000000000000000000000000000000021000100010" HEX#,
S" 0000004000400000000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000010000000000003B10B05510510010A20100518101" HEX#,
S" 004000141A142840000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000500051085408558001800181010204" HEX#,
S" 88509050A0400000000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000001010201020502050004000406050041" HEX#,
S" 0000000000008040000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000004040810001021412054224100000000" HEX#,
S" 201008048A553215000000000000000000000000000000000000000000000000" HEX#,
S" 000000000A150215000102508005200060440850200000000000000000000000" HEX#,
S" 0801080008040004000000008000804000000000000000000000000000000000" HEX#,
S" 2040001008100000000000000000000000000000000000000000000000000000" HEX#,
S" 0200000102010000004020510A54000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000000000000000000000000000000000" HEX#,


CREATE FRAME6
S" 0000000000000000000000000000000000000000000000000000021000100010" HEX#,
S" 0000004000402000000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000000000021428450000225102012041" HEX#,
S" 0040800000000000000000000000000000000000000000000000000000000000" HEX#,
S" 000000000000000000000000000000002C442005001402118001800180010204" HEX#,
S" 8000005400540000000000000000000000000000000000000000000000000000" HEX#,
S" 000000000000000000000000000000000B150200020101010004000404048241" HEX#,
S" 0000000000000000000000000000000000000000000000000000000000000000" HEX#,
S" 0000000508050915000000008050824102000204040408512010101020440301" HEX#,
S" 8040004020103050000000000000000000000000000000000000000000000000" HEX#,
S" 24402010000000002014020100000000201502500C0000000000000000000000" HEX#,
S" C854204400442210000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000000000000000000000000000000000" HEX#,
S" 021100110F150805000000000054085000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000000000000000000000000000000000" HEX#,
S" 0200000000000000000000000000000000000000000000000000000000000000" HEX#,


CREATE FRAME7
S" 0000000000000000000000000000000000000000000000000000000100040010" HEX#,
S" 0000000000002010000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000000000000000010010001120410811"  HEX#,
S" 0040000000000000000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000050505020100012041800100119855" HEX#,
S" 0000000000400040000000000000000000000000000000000000000000000000" HEX#,
S" 00000000000000000000000000000001000102000200010122150A0008040000" HEX#,
S" 0000000000000000000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000020408110251001000418051000403118241211180148855" HEX#,
S" 0000000000400040000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000040300000000008A51B25102040004" HEX#,
S" 2040204000400040000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000000000000000000004000508050911" HEX#,
S" 8040800000000040000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000000000000000000005000000000000" HEX#,
S" 0050000000000000000000000000000000000000000000000000000000000000" HEX#,


CREATE FRAME8
S" 0000000000000000000000000000000000000000000000000000000100040000" HEX#,
S" 0000004000000010000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000000000000000000010001100052251" HEX#,
S" 0010204000000000000000000000000000000000000000000000000000000000" HEX#,
S" 000000000000000000000000000000000001010102050101C0442041C8519A51" HEX#,
S" 0000000000000000000000000000000000000000000000000000000000000000" HEX#,
S" 000000000000000000000000000000000000000100010001A005000400040605" HEX#,
S" 8050201000000000000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000000005090102158245004400442201" HEX#,
S" 0000804000002050000000000000000000000000000000000000000000000000" HEX#,
S" 000000000000000000000000000000000004101400000000A215331400440000" HEX#,
S" 3850B05000000000000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000000101020002058010200000400040" HEX#,
S" 0000000000000000000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000050000000000000050000000000000" HEX#,
S" 0000000000000000000000000000000000000000000000000000000000000000" HEX#,


CREATE FRAME9
S" 0000000000000000000000000000000000000000000000000000000100040000" HEX#,
S" 0000001000100010000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000000000000003140800001000410045" HEX#,
S" 0010200000000000000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000150005000100008044004400450241" HEX#,
S" 800182118214A000804000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000000001000100018200020406050810" HEX#,
S" 0000000000008050000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000010101020002010814111000002000" HEX#,
S" 0004024122143E51000000008040800000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000102040A11204000008045885106441211" HEX#,
S" 8014200000000000000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000102040C15021100000040800000000905000000000000" HEX#,
S" 0040000000000000000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000080500000000000080400000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000000000000000000000000000000000" HEX#,


CREATE FRAME10
S" 0000000000000000000000000000000000000000000000000000000102040000" HEX#,
S" 0000000000002010000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000000000000500510810001120410051" HEX#,
S" 0010204000000000000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000082547804021108058111811180158A11" HEX#,
S" 0000000520450850004000008040000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000002010200020100010F04000408040A01" HEX#,
S" 8000000000000000000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000003855000000000000005500010001000002010810081402110010" HEX#,
S" 0040001004442211000000000000000000000000000000000000000000000000" HEX#,
S" 48400B50005030500000A01500000000220501410B00000020502050C0000000" HEX#,
S" 1811011109110901000000000000000000000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000000000000000000000000000000000" HEX#,
S" 0805000500050B01000000008000805400000000000000000000000000000000" HEX#,
S" 0000000000000000000000000000000000000000000000000000000000000000" HEX#,
S" 0805000000000000085000000000000000000000000000000000000000000000" HEX#,


: RUNMAN
  PAGE .FRAME
  BEGIN
     FRAME1 DRAW
     FRAME2 DRAW
     FRAME3 DRAW
     FRAME4 DRAW
     FRAME5 DRAW
     FRAME6 DRAW
     FRAME7 DRAW
     FRAME8 DRAW
     FRAME9 DRAW
     FRAME10 DRAW
     ?TERMINAL
  UNTIL
  CHARSET ;

 

 

Hmmm.. he's got 3 legs when running. No wonder he keeps passing me on the freeway.

Edited by GDMike
  • Like 2
  • Haha 2
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...