' This program exported from BASIC Anywhere Machine (Version [5.2.3].[2023.08.29.21.34]) on 2023.09.26 at 23:38 (Coordinated Universal Time) ' From Jason Doucette (https://www.youtube.com/watch?v=aAtu3xc_Jro) ' Cat animation programmed in GW-BASIC, running from PC-BASIC emulator of Tandy GW-BASIC. The source of the animation data comes from an old 1984 book called "Create Your Own - Games Computers Play" by Keith S. Reid-Green, on pages 57 - 58. It is also on the book's cover!. It is running in 320x200 4 or 16 color mode. ' "Solo88" transcribed the source code from Jason Doucette's video, and that code was ported to BAM by Charlie Veniot ' *** Changes made for the BAM port *** ' 🟠Line 10 and 890 edited : BAM's PALETTE is not compatible with GW-BASIC (BAM requires a "bgr" colour) ' 🟠The array sizes increased because BAM's GET grabs and stores rgb colours which take more space ' 🟠The G array was not declared and BAM requires arrays to be declared ' 🟠Identifiers must be unique in BAM; "context" is not enough to distinguish arrays from variables, so the C variable (conflicting with array C) was renamed to Cp ' 🟠Screen size adjusted for panoramic view ' 🟠BAM being too fast, a "_delay" is applied ' 🟠Made the cat yellow (better contrast for aging eyeballs) DIM G(7) ' 🟠G array declaraction added 10 SCREEN _newimage(320, 20, 1) :CLS:DIM as INTEGER A(100),B(100),C(100),D(100),E(100),F(100):FOR I=1 TO 6:READ G(I):NEXT I ' 🟠Array sizes increased; alternative screen dimensions applied 20 PALETTE 3,_bgr(0,0,1) : FOR I=1 TO 6:FOR J=1 TO 13:READ A$ : FOR K=10 TO 41:IF MID$(A$,K-9,1)="1"THEN PSET(K,J),3 ELSE PSET(K,J),0 ' 🟠2nd Palette parameter 30 NEXT K:NEXT J:ON I GOSUB 40,50,60,70,80,90: NEXT I: GOTO 890 40 GET(1,1)-(41,13),A: RETURN 50 GET(1,1)-(41,13),B: RETURN 60 GET(1,1)-(41,13),C: RETURN 70 GET(1,1)-(41,13),D: RETURN 80 GET(1,1)-(41,13),E: RETURN 90 GET(1,1)-(41,13),F: RETURN 100 DATA 8,5,9,6,5,7 110 DATA 00000000000000000000000000000000 120 DATA 00000000000000000000000000000000 130 DATA 00000000000000000000001111111010 140 DATA 00000000000111111111110000000110 150 DATA 00000000111000000000000000000001 160 DATA 00000001000000000000000100111001 170 DATA 00000110000000000000000100100110 180 DATA 01111100000000111111111110110000 190 DATA 10001000011111000000000001111100 200 DATA 00001111100000000000000000001010 210 DATA 00011000000000000000000000000101 220 DATA 00101000000000000000000000000000 230 DATA 00001100000000000000000000000000 240 DATA 00000000000000000000000000000000 250 DATA 00000000000000000000000000000000 260 DATA 00000000000000000000000000000000 270 DATA 00000000001111111000011111000100 280 DATA 00000000110000000111100000111100 290 DATA 00000001000000000000000000000010 300 DATA 00000110000000000000000101110001 310 DATA 11111010000001111111111111001110 320 DATA 00000110001110000000001101110000 330 DATA 00011101110000000000000100011100 340 DATA 00001000000000000000000100000011 350 DATA 00110000000000000000000110000000 360 DATA 00000000000000000000000011000000 370 DATA 00000000000000000000000000000000 380 DATA 00000000000001111100000000000000 390 DATA 00000000000110000011000000001000 400 DATA 00000000011000000000111110111100 410 DATA 00000000110000000000000001000010 420 DATA 00000001001000001000000000010001 430 DATA 00000010001000010110000000101110 440 DATA 01111100010000100001111101000000 450 DATA 00000000010111000000010101000000 460 DATA 00000000001000000001100011100000 470 DATA 00000000000100000001000000110000 480 DATA 00000000001000000001000000001000 490 DATA 00000000000000000000100000000100 500 DATA 00000000000000000000000000000000 510 DATA 00000000000000111100000000000000 520 DATA 00000000000010000011000000000000 530 DATA 00000011111100000000110000001000 540 DATA 00000100000100000000001000011000 550 DATA 00011000000100100000000111100100 560 DATA 11100000000010010001000000000010 570 DATA 00000000000001011010000000111100 580 DATA 00000000000000110110111111000000 590 DATA 00000000000000110101100000000000 600 DATA 00000000000000011101100000000000 610 DATA 00000000000000001000100000000000 620 DATA 00000000000000000000110000000000 630 DATA 00000000000000000000000000000000 640 DATA 00000000000000000000000000000000 650 DATA 00111111000011111000000000000000 660 DATA 01000000111100000110000000100000 670 DATA 01000000000100000001100011100000 680 DATA 00000000001000000000011100010000 690 DATA 00000000001000000000000000001000 700 DATA 00000000001000000010000011110000 710 DATA 00000000000101111111101100000000 720 DATA 00000000000110000001010000000000 730 DATA 00000000000101000010100000000000 740 DATA 00000000001101000100000000000000 750 DATA 00000000000110110000000000000000 760 DATA 01110000000000000000000000000000 770 DATA 00001111000000000000000000000000 780 DATA 00000000111000111100000000000100 790 DATA 00000000000111000011000000011110 800 DATA 00000000001000000000111011100001 810 DATA 00000000010000000000000100000001 820 DATA 00000000010000000000000000011110 830 DATA 00000000010000111000000000100000 840 DATA 00000000100001000111111111010000 850 DATA 00000001001110000000000001110000 860 DATA 00000001010000000000000000000000 870 DATA 00000000101000000000000000000000 880 DATA 00000000011110000000000000000000 ' 🟠All references to the "C" variable changed to "Cp" 890 CLS: PALETTE 3,_BGR(0,255,255) : LINE(0,13)-(319,13),2:Cp=0:I=0 ' 🟠2nd Palette parameter 900 Cp=Cp+G(I):IF Cp>278 THEN 890 910 I=I+1:IF I=7 THEN I=1 920 ON I GOSUB 930,940,950,960,970,980: _delay 0.125 : FOR J=1 TO 65*40:NEXT J:GOTO 900 ' 🟠_delay added 930 PUT(Cp,0),A,PSET: RETURN 940 PUT(Cp,0),B,PSET: RETURN 950 PUT(Cp,0),C,PSET: RETURN 960 PUT(Cp,0),D,PSET: RETURN 970 PUT(Cp,0),E,PSET: RETURN 980 PUT(Cp,0),F,PSET: RETURN