GDMike Posted March 16, 2021 Share Posted March 16, 2021 (edited) Did you receive an error? It looks legit, it relates to the printer, so I suppose you need to test the command. I don't have a printer to test it with... ? Edited March 16, 2021 by GDMike Quote Link to comment Share on other sites More sharing options...
+Lee Stewart Posted March 16, 2021 Share Posted March 16, 2021 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 Quote Link to comment Share on other sites More sharing options...
oddemann Posted March 16, 2021 Author Share Posted March 16, 2021 3 minutes ago, GDMike said: Did you receive an error? It looks legit, it relates to the printer, so I suppose you need to test the command. I don't have a printer to test it with... ? Nope, it works! But do test the screen ver. Quote Link to comment Share on other sites More sharing options...
oddemann Posted March 16, 2021 Author Share Posted March 16, 2021 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! 1 Quote Link to comment Share on other sites More sharing options...
oddemann Posted April 14, 2021 Author Share Posted April 14, 2021 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 Quote Link to comment Share on other sites More sharing options...
+Lee Stewart Posted April 14, 2021 Share Posted April 14, 2021 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 2 Quote Link to comment Share on other sites More sharing options...
+Lee Stewart Posted April 14, 2021 Share Posted April 14, 2021 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 2 Quote Link to comment Share on other sites More sharing options...
+Lee Stewart Posted April 15, 2021 Share Posted April 15, 2021 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 1 Quote Link to comment Share on other sites More sharing options...
oddemann Posted April 15, 2021 Author Share Posted April 15, 2021 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. 2 Quote Link to comment Share on other sites More sharing options...
oddemann Posted May 21, 2021 Author Share Posted May 21, 2021 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" Quote Link to comment Share on other sites More sharing options...
oddemann Posted May 22, 2021 Author Share Posted May 22, 2021 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 Quote Link to comment Share on other sites More sharing options...
oddemann Posted May 22, 2021 Author Share Posted May 22, 2021 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 Quote Link to comment Share on other sites More sharing options...
+Lee Stewart Posted May 22, 2021 Share Posted May 22, 2021 9 hours ago, oddemann said: 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? 1000 RESTORE 500 1010 GOTO 200 ...lee 2 Quote Link to comment Share on other sites More sharing options...
+TheBF Posted May 22, 2021 Share Posted May 22, 2021 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. 2 Quote Link to comment Share on other sites More sharing options...
+Lee Stewart Posted May 23, 2021 Share Posted May 23, 2021 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 4 Quote Link to comment Share on other sites More sharing options...
+Lee Stewart Posted May 23, 2021 Share Posted May 23, 2021 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 1 Quote Link to comment Share on other sites More sharing options...
oddemann Posted May 23, 2021 Author Share Posted May 23, 2021 (edited) 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 May 23, 2021 by oddemann Quote Link to comment Share on other sites More sharing options...
+TheBF Posted May 23, 2021 Share Posted May 23, 2021 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: You reduce the size of the pictures. You could do the animation with one character images but it would not be as interesting. 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. 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) 4 Quote Link to comment Share on other sites More sharing options...
+Lee Stewart Posted May 23, 2021 Share Posted May 23, 2021 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 4 Quote Link to comment Share on other sites More sharing options...
RXB Posted May 23, 2021 Share Posted May 23, 2021 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. 2 Quote Link to comment Share on other sites More sharing options...
+TheBF Posted May 23, 2021 Share Posted May 23, 2021 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 ; runningman.mp4 3 Quote Link to comment Share on other sites More sharing options...
oddemann Posted May 23, 2021 Author Share Posted May 23, 2021 (edited) 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 ; runningman.mp4 WHAT the H... S..., that is so FAST! WOW!!!! You're really advertising for Forth here :p hehehehe That was amazing! Edited May 23, 2021 by oddemann Typos... 1 1 Quote Link to comment Share on other sites More sharing options...
oddemann Posted May 23, 2021 Author Share Posted May 23, 2021 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! 6 Quote Link to comment Share on other sites More sharing options...
GDMike Posted May 23, 2021 Share Posted May 23, 2021 (edited) 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 ; runningman.mp4 Hmmm.. he's got 3 legs when running. No wonder he keeps passing me on the freeway. Edited May 23, 2021 by GDMike 2 2 Quote Link to comment Share on other sites More sharing options...
Asmusr Posted May 23, 2021 Share Posted May 23, 2021 5 minutes ago, GDMike said: Hmmm.. he's got 3 legs. No wonder he's so fast. Maybe wait for vsync? ? 1 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.