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.
No comments:
Post a Comment