Hello,
I'm somehow curious with the HP71B SINPLOT example
5 DEGREES @ PRINT CHR$(27);"E";
10 FOR X=1 TO 32 @ Y=SIN(X*16)*4+4
20 PRINT CHR$(27);"%";CHR$(X);CHR$(Y);"*";
30 NEXT X
published here some weeks ago. The difference to the published version is, that I restricted to the X loop to 32 that the curve will only printed once on a 82163 video interface.
During my tests with Emu71/Win and a Virtual IL HP-82163A video simulator (ILVideo) I recognized sometimes garbage in the sineplot output. I analyzed the IL frame traffic and found "DAB 0D DAB 0A" data packages in the framing. So the garbage is created when the CR LF data frames are inside the cursor position ESC sequence like
DAB 1B DAB 25 DAB 12 DAB 0D DAB 0A DAB 00 DAB 2A
Because the CR LF are in the IL framing data I was sure that my HP-82163A video simulator was working correctly. So the next suspect was the Emu71/Win emulator with it's HPIL processor simulation. But had no idea how to check this, so I decided to use a real HP71B (ROM rev. 1BBBB) instead of Emu71/Win.
So my loop now looked like
HP71B -> PILBOX | real HP-IL world
ILPilbox -> ILScope -> ILVideo -> back to ILPilbox | virtual HP-IL world
I got the same randomly garbage in the sineplot output and found also "DAB 0D DAB 0A" data packages in the ILScope output window. So IMHO the BASIC program itself is buggy. I tried to disable the "DAB 0D DAB 0A" data with the "WIDTH INF" command, but no success.
Any other idea?
Christoph
Hallo Christoph! :)
Do you have the chance to capture the IL frames to a file, change the CRLF in question and send the modified data to ILVideo? Yes, I know, this is dirty but quick, only for one try. Do you need real HW for tests?
Ciao.....Mike
It seems that the HPIL loop decided to send the EOL default sequence (CR, LF) by itself, based certainly on a character count (HPIB can have the same behavior, I experienced it on emulating AMIGO disk protocol on HPIB ... receiving CR LF right in the middle of stream of data/command for a disk drive can be quite disturbing too)
Perhaps try to use CHR$(27);"H";CHR$(27);"%"; ... it can reset the emitted characters count in the HPIL loop ?
You can also redefine the EOL sequence of the HPIL loop temporary with ZERO length char string (you should be able to define a string up to 3 chars as EOL sequence, see manual,)
All is from memory so I can be completly wrong ...
Olivier
Edited: 12 July 2012, 12:07 p.m.
I tried the program on Emu71/DOS and got the same garbage.
After changing the line 5 to
5 ENDLINE "" @ DEGREES @ PRINT CHR$(27);"E";
the spook was over.
To get normal end line behavior just enter ENDLINE on the command line or add a line 40 with
40 ENDLINE
That's all. So finally I have to test the roll screen ESC'S and ESC'T commands on ILVideo.
Christoph
The easiest way is to do PWIDTH INF.
Actually, I never liked the automatic CR/LF insertion related to WIDTH/PWIDTH.
I always set WIDTH INF and PWIDTH INF.