Saturday, January 11, 2025

Ball Bounce - Saturday BASIC coding Exercise

Here is my Saturday programming exercise. 

X is the ball's X position
DX is the ball's X direction
Y is the ball's Y position
DY is the ball's Y direction

Positioning the ball on Atari computer
170 POSITION X,Y
175 PRINT CHR$(20)

Character 20 being the ball.

Positioning the ball on C64
170 POKE 1024 + X + 40*Y,81

81 being the ball.

Positioning the ball on TI-99
170 CALL HCHAR(Y,X,81)

Positioning the cross on the Apple II
161 PLOT X, Y
162 PLOT X-1,Y+1
163 PLOT X,Y+1
164 PLOT X+1,Y+1
165 PLOT X,Y+2

The TI uses Y,X coordinates where C64 and Apple use X,Y coordinates.

Atari and C64 both have predefined ball characters.  TI-99 and Apple does not.
I'm using character 81 as the ball on C64  - 20 on Atari
I'm rewriting character 81 and drawing it as a ball on the TI.
There is no simple middle ground with the Apple when doing graphic.
I simply slapped 5 blocks together with the plot command in low res
graphics.

Using TI-99 Extended BASIC, I could have shortened up the TI-99
code a lot, but wanted the code to work with both versions of 
BASIC.

For that matter, I could have shortened up all the BASIC code by
CATing code on the same lines, but I'm not a fan of that.  Too 
much and the code stops being easily readable.

I have been programming the far majority of my life.  
I still feel the same about these 4 platforms of the 80s.
TI-99 Extended #1, Atari 2nd, C64 3rd, and Apple II still sucks.



On to the Code!!

The Atari Code First

100 REM CLEAR SCREEN
110 PRINT CHR$(125)
120 GRAPHICS 0 : POKE 752,1
140 X = 1 
145 Y = 1
150 DX = 1 
155 DY = 1
160 REM DISPLAY BALL
170 POSITION X,Y
175 PRINT CHR$(20)
180 REM LINE 190 SLOW CODE DOWN
190 FOR T = 1 TO 50 
195 NEXT T
200 POSITION X,Y
205 PRINT " "
210 X = X + DX
220 IF X <= 0 THEN DX=-DX
225 IF X >= 34 THEN DX=-DX 
230 Y = Y + DY
240 IF Y <= 0 THEN DY=-DY
245 IF Y >= 22 THEN DY=-DY 
250 GOTO 160

The C64 BALL BOUNCE code!

100 REM CLEAR SCREEN
110 PRINT "{CLR/HOME}"
120 REM BG L-GREEN AND YELLOW BORDER
130 POKE 53280,7 
135 POKE 53281,13
140 X = 1 
145 Y = 1
150 DX = 1 
155 DY = 1
160 REM DISPLAY BALL
170 POKE 1024 + X + 40*Y,81
180 REM LINE 190 SLOW CODE DOWN
190 FOR T = 1 TO 30 
195 NEXT
200 POKE 1024 + X + 40*Y,32
210 X = X + DX
220 IF X <= 0 OR X >= 39 THEN DX = -DX 
230 Y = Y + DY
240 IF Y <= 0 OR Y >= 24 THEN DY = -DY 
250 GOTO 160

The TI-99 BALL BOUNCE code!

100 CALL CLEAR
110 CALL SCREEN(4)
120 CALL CHAR(81,"3C7EFFFFFFFF7E3C")
140 X = 1 
145 Y = 1
150 DX = 1 
155 DY = 1
160 REM DISPLAY BALL
170 CALL HCHAR(Y,X,81)
180 REM LINE 190 SLOW CODE 
190 FOR T = 1 TO 30 
195 NEXT T
200 CALL HCHAR(Y,X,32)
210 X = X + DX
220 IF X < 2 THEN 300
225 IF X > 31 THEN 300 
230 Y = Y + DY
240 IF Y < 2 THEN 320
245 IF Y > 23 THEN 320 
250 GOTO 160
300 DX =-DX
310 GOTO 160
320 DY =-DY
330 GOTO 160

Apple II PLUS BOUNCE code! 
It is fairly difficult in GR or HGR to make a ball.

100 REM CLEAR SCREEN
120 GR
140 X = 17 
145 Y = 5
150 DX = 1 
155 DY = 1
160 COLOR = 6
161 PLOT X, Y
162 PLOT X-1,Y+1
163 PLOT X,Y+1
164 PLOT X+1,Y+1
165 PLOT X,Y+2
180 REM LINE 190 SLOW CODE DOWN
190 FOR T = 1 TO 30 
195 NEXT T
200 COLOR = 0
201 PLOT X, Y
202 PLOT X-1,Y+1
203 PLOT X,Y+1
204 PLOT X+1,Y+1
205 PLOT X,Y+2
210 X = X + DX
220 IF X <= 2 OR X >= 37 THEN DX = -DX 
230 Y = Y + DY
240 IF Y <= 2 OR Y >= 37 THEN DY = -DY 
250 GOTO 160
Really, Atari does the best job. TI-99 is the easiest to program. Apple II is the "worsteth" of the four.

Wednesday, January 8, 2025

RG Mini

C64
Retro Games LTD The C64 Micro Computer Mini

Product Key Features
Platform              Commodore 64
Year Manufactured     2017 thru 2025
Storage Capacity      512 MB
Case Color            Beige
Display Connectivity  HDMI

Connectivity          USB, HDMI
Screen Resolution     720p (HD)

ARM CPU A20 SoC and Linux operating system running the VICE emulator.

Pixel graphics in 4:3 format with CRT filter.
Savable game states for the 64 C64 games
Software updates over USB stick.
64 classical C64 games, which are onside of the ROM chip.

Dimensions: 250 * 50 * 200mm
Weight: 372g


Plugs rear
  HD output with 720p over HDMI
  Micro USB port for power

Plugs right side
  Two USB ports for USB keyboard or USB joystick.
  Power switch

Other informations
  Keys can be used with a popup keyboard on the screen.
  Alternative can used a USB keyboard
  If you want to use both USB joysticks, a USB keyboard and a USB stick, you need a active USB hub.
  The emulator being used is x64 from VICE 2.4



I just purchased RG mini to code for the Vic20 and C64.  
I can't wait to PEEK and POKE some.

Ball Bounce - Saturday BASIC coding Exercise

Here is my Saturday programming exercise. X is the ball's X position DX is the ball's X direction Y is the ball's Y position ...