Jump to content
IGNORED

found a potentially usable basic spreadsheet program for the 600xl...but not written in Atari basic


newTIboyRob

Recommended Posts

...

Just In case the goose isn't entirely cooked though yet, in the mean time, here are some tidbits that I snagged from what I had posted earlier in my thread, that may or may be of help: 

 

Page 2...CALL -868 in line 240 is Applsoft's' way of clearing the cursor line from cursor to end of line

 

           POKE 32, 2...  sets left margin of text window, here at #2...  
           POKE 33,38... sets width of text window.  
           CALL -958...    clears the bottom of the text screen               
           POKE 32,0: POKE 33,40   (setting left margin and text window width, respectively, at those locations... 

 

Page 4... line 2310 POKE -16368,0      In Applesoft, IF PEEK(-16384)>127 then a key has been pressed (POKE -16368,0 resets this)  So, can we just leave this as is, or must it be changed?

 

 

 

Link to comment
Share on other sites

4 minutes ago, newTIboyRob said:

In Applesoft, IF PEEK(-16384)>127 then a key has been pressed (POKE -16368,0 resets this)

On the Atari it's 764 ($2FC), usually POKE with 255 to clear and PEEK to read

It's OS name is CH (Page 76, Mapping the Atari)

 

This will not return the ASCII character of the key pressed, but the internal hardware value, but

if all the code is looking for is a keypress, then this is the place to go, you would have to provide

a decode value to read the actual key pressed if needed.

 

Something like this from an Art program I wrote in BASIC around 1985 :)

I commented the codes to keys

300 CL=PEEK(764)

310 IF CL=58 THEN DRAW=A1:REM D=DRAW
320 IF CL=0 THEN DRAW=A2:X1=X:Y1=Y:REM L= LINE
330 IF CL=46 THEN  ?#6;CHR$(125):REM W=WIPE
340 IF CL=21 THEN DRAW=A3:X1=X:Y1=Y:REM B=BOX

Link to comment
Share on other sites

Right, bf2k+.....  we would need to set up a single huge string, and an applicable substring reference, and then define a calculation converting a row and column reference into the correct substring reference for the bit of the huge string. In English, a long "dfgjdfgkljdfkl;sjdfkl;sdfgklsdfgjs;gf" and then take from that to break it up and maneuver.

 

 

Link to comment
Share on other sites

...another helpful guide from you, TGB1718... but do you think the remainder of the program, even if using only a sheet or 2 to enter data, values, etc.. will still fit within the 16 K confines if all these translations can actually be achieved?  (Considering you got to 14 K already and the program wasn't yet usuable.)

Edited by newTIboyRob
Link to comment
Share on other sites

Not using DOS, combining statements, optimizing might just fit, which is prolly why your trying to us cassette anyway.

litedos or similar might keep disk possible but you need every byte you can get if you will have any information in the sheet

You are talking one page on the screen basically where this now stands. String manipulation and parsing are going to eat most of what's left using AB.

That's where some ML will come in handy.

Are you going to try converting both programs?

Edited by _The Doctor__
Link to comment
Share on other sites

1 hour ago, newTIboyRob said:

...another helpful guide from you, TGB1718... but do you think the remainder of the program, even if using only a sheet or 2 to enter data, values, etc.. will still fit within the 16 K confines if all these translations can actually be achieved?  (Considering you got to 14 K already and the program wasn't yet usuable.)

Well, I think we are past of trying to stuff 5 lbs. into a 3 lb. bag (48-64k vs. 16k). Can we covert it into something usable,readable and faster on a 48k-64k Atari? We've establish the string manipulation issues, so do we use MSB or write Atari BASIC routines?

https://www.atariarchives.org/creativeatari/Converting_Applesoft_Basic_to_Atari_Basic.php

or

https://www.atariarchives.org/c3ba/page031.php

Edited by Fuji-Man
  • Like 1
Link to comment
Share on other sites

Fuji Man, you are free of course to do as you wish. I myself still wonder, based on the _The Doctor_'s last comment, so I might still stick around here for a bit, as expansion and speed were (obviously) not my goals with this expedition in the first place; it was just to see if this spreadsheet program would have 1 or 2 usable pages still.  (Had I wanted expansion ... I agree, 64 K and SIO route, absolutely... then we're talking Speedcalc and the like.)

Edited by newTIboyRob
Link to comment
Share on other sites

I can't believe.... someone else, that I don't even recall was even commenting on this thread, has just now provided a different and complete spreadsheet program in pdf format for an earlier related thread of mine to this one, that I had all but forgotten about, in trying to solve the riddle here. But I caught it just now, so I at the very least should type it in on my 600xl and see what we get.  It's only a 3.5 pager and in nice, clear and dark print to boot, and it is supposed to be usable with the 600 xl and tape. After this whole saga, can this finally be it???  After I type it all in, which should be sometime tomorrow, I shall report the findings here. Hopefully it works!!!   I thought it right to mention that here, even if it didn't solve the puzzle we were discussing on this post, as it still goes back to my initial goal of finding a spreadsheet usable within the 600 xl's limited 16K memory.

Edited by newTIboyRob
  • Like 1
Link to comment
Share on other sites

3 minutes ago, newTIboyRob said:

I can't believe.... someone else, that I don't even recall was even commenting on this thread, has just now provided a different and complete spreadsheet program in pdf format for an earlier related thread of mine to this one, that I had all but forgotten about, in trying to solve the riddle here. But I caught it just now, so I at the very least should type it in on my 600xl and see what we get.  It's only a 3.5 pager and in nice, clear and dark print to boot, and it is supposed to be usable with the 600 xl and tape. After this whole saga, can this finally be it???  After I type it all in, which should be sometime tomorrow, I shall report the findings here. Hopefully it works!!!   I thought it right to mention that here, even if it didn't solve the puzzle we were discussing on this post, as it still goes back to my initial goal of finding a spreadsheet usable within the 600 xl's limited 16K memory.

Good luck!  If none of these provide useful, perhaps you can do the ultimate - and create one that does work on a 16kB machine.  My 1st computer was a 400 I got in 1982, along with a 410 tape deck!  It did at least have the upgraded B-Key keyboard.

Link to comment
Share on other sites

Thank you. I actually have been working, concurrently, on a Visicalc clone, just in case, and especially because I have had so many doubts with the one here, as many people have had. So far it is coming along nicely. And all the discussion we did here was certainly useful, to say the least, because it teaches you to think outside the box, which can only help. I have picked up bits and pieces along the way that I can apply to different future programs, for example.  My/our quest can still go on here, but I am really curious to see how either one of these others pans out.

Edited by newTIboyRob
  • Like 1
Link to comment
Share on other sites

You could LIST the program to tape and then ENTER it back later.

 

To save an Atari BASIC program from computer RAM to cassette:
1. Insert a cassette into the recorder.
2. Use REWIND or ADVANCE/F.FWD on the recorder, if necessary, to bring the
   tape to the position where the program is to be recorded.
3. Enter one of the following three commands:
   a. CSAVE 
      (short inter-record gap - fastest read/write speed - tokenized files)
   b. SAVE "C:" 
      (long inter-record gap - middle read/write speed - tokenized files)
   c. LIST "C:" 
      (long inter-record gap - slowest read/write speeds - straight ATASCII -
       tape actually stops in between block reads/writes)
4. The system buzzer sounds twice (to signal you to press both PLAY and
   RECORD on the recorder).
5. Press both PLAY and RECORD on the recorder.
6. Press the RETURN key on the computer keyboard.
   Tape motion starts, the program is copied from RAM to the cassette, and
   then tape motion stops.
7. You may press STOP on the recorder once recording has finished.

 

 

Link to comment
Share on other sites

20 hours ago, SoundGammon said:

Could Speedcalc be put on cartridge/rom?

 

If memory serves, it is 8K. 

 

Would work great with a 16K ram 600XL!

 

But it might have to be modified for cassette usage.

Several things would have to be done:

 

It would have to be reviewed to ensure it checks available RAM and doesn't make any assumptions about being on a 48K/64K machine.

It would have to be reviewed to ensure it doesn't do any dynamic rewriting (some programs are self modifying, which fails when you try to write new values to ROM).

It would have to be reviewed to ensure it can accept C : as a save / load data location.

It would have to be compiled into the cart space (whether 8K or 16K or some banked arrangement).

 

Even if that's all possible (and DataQue did do that, modifying B-Calc into an '816 compatible cart) the 16K of RAM would still not give a great deal of free space. The OS fills everything up to the top of page 5 (1.5K gone).  If you don't load a DOS, that's where free memory can start.  The screen display needs another four pages (another 1K).  You've now got, best case scenario, 13.5K of RAM available.

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...