[vcf-midatlantic] What's wrong with my program experiment?

William Dudley wfdudley at gmail.com
Wed Apr 5 20:18:47 EDT 2017


Evan wrote:

"All four corners are reporting the correct values: 0,0; 0,39; 39,0; and
39,39. When the stick centers I get 21,12. :(  But if I adjust the trim
wheels then the corners aren't right.

Is this a joystick problem or a software bug?"

The joystick output does not necessarily match the screen size, nor is it
necessarily linear.

You usually have to scale the joystick, and possibly ask the user to put
the joystick in the upper left and lower right
corners and press a button to "calibrate" the joystick vs the screen.

Touch screens have often had such a calibrate routine -- the Palm Pilot
comes to mind.

Bill Dudley



This email is free of malware because I run Linux.

On Wed, Apr 5, 2017 at 2:21 PM, Evan Koblentz via vcf-midatlantic <
vcf-midatlantic at lists.vintagecomputerfederation.org> wrote:

> A month-ish ago I posted about my Applesoft learning experiment in which I
> figured out how to make a point (in lo-res and hi-res alike) move around
> the screen with the joystick.
>
> At the time I couldn't figure out how to keep other images stationary (vs.
> redrawing themselves every time the joystick-checking code looped). Last
> night I solved that by (duh!) drawing a stationary point first and then
> looping back only as far as the joystick code. At first it left a trail,
> but then I added a line to immediately re-draw the same coordinates in
> black.
>
> 10 GR:COLOR=2
> 20 PLOT 10,10
> 30 X=PDL(0):Y=PDL(1)
> 40 X=X/6.4:Y=Y/6.4
> 50 X=X+0.5:Y=Y+0.5
> 60 X=INT(X):Y=INT(Y)
> 70 IF X>39 THEN X=39:IF Y>39 THEN Y=39 (because at one point I got an
> illegal quantity error when I moved the stick to the right)
> 80 PLOT X,Y:PRINT INT(X),INT(Y)
> 90 FOR W=1 TO 50: NEXT W
> 100 COLOR=0:PLOT X,Y:COLOR=2
> 110 GOTO 30
>
> This works: the point at 10,10 remains solid while only the
> stick-controlled point moves. (I don't want to hear any snobby insults
> about "spaghetti code". This is not the actual application I'm working on.
> It's just a code snippet for the learning experiment.)
>
> (The results are the same if I eliminate lines 50 and 60. Those lines only
> exist to round up the numbers on .5, because INT only rounds down, and to
> eliminate remainders when it prints the coordinates.)
>
> However there may be a problem with the joystick or maybe a bug that I'm
> not seeing.
>
> All four corners are reporting the correct values: 0,0; 0,39; 39,0; and
> 39,39. When the stick centers I get 21,12. :(  But if I adjust the trim
> wheels then the corners aren't right.
>
> Is this a joystick problem or a software bug?
>



More information about the vcf-midatlantic mailing list