Jump to content
IGNORED

Altirra BASIC 3.20 vs BASIC rev C LPRINT.


leech

Recommended Posts

I tried poking around a bit and didn't manage to find something like this, but I was testing out the Atari 1025 I got recently, and found that if I printed with Altirra BASIC, it actually printed two columns, vs Atari BASIC rev C only printed one column.

 

For example;

TEST PRINT                           TEST PRINT
TEST PRINT                           TEST PRINT

vs Atari BASIC

TEST PRINT
TEST PRINT
TEST PRINT
TEST PRINT

This is just with a simple

10 LPRINT "TEST PRINT"

20 GOTO 10

RUN

Link to comment
Share on other sites

Atari Basic, I'm fairly sure uses an OPEN and CLOSE on #7 and outputs the buffer if it's terminated with a Return (ie no comma or semicolon).

Otherwise it seems to buffer it and not output until it exceeds 128 characters.

I've read descriptions of the statement before, probably in the Atari Basic Source Book which you should be able to download as PDF.

 

Altirra Basic - it's as if it's outputting with a comma at the end, which should cause a Tab jump, and carriage return if it's determined to have gone past EOL.

 

If you're not satified with how LPRINT behaves there's an alternative - just OPEN a file and PRINT #n to it then CLOSE the file.

or construct strings then output them.

 

 

Edited by Rybags
Link to comment
Share on other sites

To a point, but there are differences.  PRINT doesn't touch the IOCB #0 Open status where LPRINT I'm fairly sure will OPEN and CLOSE IOCB #7 whenever output is sent.

And PRINT is immediate output regardless if followed by ; , or carriage return (this is assuming it's just default output to E: - other devices can potentially buffer output)

Edited by Rybags
Link to comment
Share on other sites

48 minutes ago, Preppie said:

I'd say this is a bug in Altirra, LPRINT is supposed to mimic PRINT,.

That's what I would have thought as well.

As a side note, this 1025 printer also has some sort of mod on it, there is a 3 position toggle switch on the back of it.  No clue what it does.

Link to comment
Share on other sites

3 hours ago, Preppie said:

I'd say this is a bug in Altirra, LPRINT is supposed to mimic PRINT,.

Not really. As stated, LPRINT under a standard Atari Basic and Atari Os ignores the semicolon at its end, so it is "more a bug of the standard setup", really.

 

The issue is that, as stated, Atari Basic does an implicit OPEN #7, then prints, then a CLOSE #7. The latter also flushes the print buffer under the Atari Os as otherwise the printed characters are lost, and flushing the printer buffer implicitly also appends an EOL, as this EOL indicates where the variably-sized printer buffer ends.

Link to comment
Share on other sites

Not being a pedant here but just noting Altirra basic is V1.56, its part of the release in Altirra Emulator V3.20 but the basic revision is 1.56..

 

Just incase anyone thought they were missing out on a new Altirra basic :)

Link to comment
Share on other sites

5 hours ago, leech said:

That's what I would have thought as well.

As a side note, this 1025 printer also has some sort of mod on it, there is a 3 position toggle switch on the back of it.  No clue what it does.

might be the revised 1025 rom stacked on the original or some line feed no linefeed, or other some such mod.... might be worth documenting and looking into...

Link to comment
Share on other sites

3 hours ago, _The Doctor__ said:

might be the revised 1025 rom stacked on the original or some line feed no linefeed, or other some such mod.... might be worth documenting and looking into...

Ha, now the question is... how on earth to test this? 

Link to comment
Share on other sites

flip the switch into each position, power on the printer each time and try printing graphic and atascii characters each time...

flip the switch into each position, power on the printer each time and try printing using different printer drivers....

 

same thing again with printed text... observe line feeds and spacing...

 

you can also look at the mod and post pictures so folks can tell you what it is if they know...

reading the FSM while looking at is yourself might give some thoughts and clues for your own...

(field service manual)

Edited by _The Doctor__
Link to comment
Share on other sites

Hmm, well tried printing with basic and using just lprint and some ATASCII characters, but it just printed the plain text and skipped them.

Seemed the line feeds were all the same.

 

I did glance at the field service manual earlier, but of course had that work thing to do :P  I'm going to work on taking the cover off so I can post some pics!

Link to comment
Share on other sites

I'm getting the same SIO command sent to the printer from Altirra BASIC and Atari BASIC, but it looks like there may be a missing EOL bug in the AltirraOS printer handler if you are using that as well. The 1025 makes this a more unusual case because it is a 64/80 column printer, so even though the original printer protocol is line based, the 1025 is splicing the lines.

 

Link to comment
Share on other sites

8 hours ago, _The Doctor__ said:

flip the switch into each position, power on the printer each time and try printing graphic and atascii characters each time...

flip the switch into each position, power on the printer each time and try printing using different printer drivers....

 

same thing again with printed text... observe line feeds and spacing...

 

you can also look at the mod and post pictures so folks can tell you what it is if they know...

reading the FSM while looking at is yourself might give some thoughts and clues for your own...

(field service manual)

Ha, well got my hopes all up and what do I find when I take it apart?  The toggle is a switch between CN8 and from what I can tell the sensor for detecting the end of the paper.  Which makes sense, since CN8 is the paper end connector.  https://www.manualslib.com/manual/1231905/Atari-1025.html?page=17#manual

So it seems that switch just turns on / off the sensor.

Link to comment
Share on other sites

19 minutes ago, phaeron said:

I'm getting the same SIO command sent to the printer from Altirra BASIC and Atari BASIC, but it looks like there may be a missing EOL bug in the AltirraOS printer handler if you are using that as well. The 1025 makes this a more unusual case because it is a 64/80 column printer, so even though the original printer protocol is line based, the 1025 is splicing the lines.

 

Basically the way I did it was just to set the U1MB to Altirra BASIC and try the LPRINT command.

Finding a bug is always kind of a weird feeling for me.  On the one hand it's like "cool, I found something someone else did not!" on the other hand it's "Crap, I found something someone else did not, probably my fault." :P  But hey, if it improves compatibility all around! 

 

This was just me testing stuff with the new 'toy'. 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...