6502.org Forum  Projects  Code  Documents  Tools  Forum
It is currently Thu Nov 21, 2024 2:57 pm

All times are UTC




Post new topic Reply to topic  [ 52 posts ]  Go to page Previous  1, 2, 3, 4
Author Message
PostPosted: Fri Feb 02, 2024 4:18 pm 
Offline

Joined: Sun May 13, 2018 5:49 pm
Posts: 255
Hi Hans, thanks for chiming in on the subject and a big thanks for your preservation efforts. I did not realize it initially, but I think we are following in your footsteps. I had seen your Papertape (PTP) version of FOCAL, but didn't realize that further down your FOCAL page you have the source(s) you recreated as well: http://retro.hansotten.nl/6502-sbc/focal-65-v3d/#sources

I'm enjoying the journey, however, so I will probably continue for a while more. My goal is to get it assembling in the Kowalski simluator and patch the I/O for that simulator. If my interest in it holds for long enough, my longer term goal would be to create some documentation on how to add custom user commands, as Wayne left extra space in many of his tables for users to extend the language.

Thanks for the notes about the various versions. I believe I'm comparing to the PTP file that has the extra junk in zero page as well as some extra bytes on the end as well - when comparing it to Wayne's 13-OCT-1977 listing, there is definitely some extra junk on the end beyond the end of FOCAL that is likely left over from entering/running a FOCAL program.

My goals are:
Get a version that assembles with the Kowalski simulator's assembler and runs properly in your (Hans') KIM-1 simulator (available at http://retro.hansotten.nl/6502-sbc/kim-1-manuals-and-software/kim-1-simulator/ if others are interested) as a starting point. Then I'd like to patch the I/O to use the Kowalski simulator I/O. If my interest holds long enough, I'd like to play with adding custom commands and document the process in case others would like to play. In any event, I will add a link/note in my github README pointing to your site if folks want a historical version of the software for TIM or KIM-1 (along with the history to go with it - thanks for documenting all of that!). If I do make it to adding custom commands, that should work starting with your reproduced code as well.

Hans, I think you may have already created the version of the software that I will end up with, but I'm close enough through the process and I find the process itself to so enjoyable that I'd like to continue. I may switch to your "cleaner" binaries to compare to, once I look and understand what the minor differences are between the various versions, so I'm not adding junk bytes that don't need to be there. Thanks again for all your work in saving and make available this language - I likely would have never heard of it otherwise.


Top
 Profile  
Reply with quote  
PostPosted: Fri Feb 02, 2024 6:09 pm 
Offline
User avatar

Joined: Fri Oct 31, 2003 10:00 pm
Posts: 200
Mike, Sam,

Thank you for the nice words! It has been fun recreating source for this program.

Porting to another 6502 system requires:
character input (no echo)
character output
setting of BRK/IRQ vector (BRK used a lot in the interpreter)
See the KIM=-1 or TIM I/O package in the Denver 6502 Group sources, there it is placed in zeropage.
In the Aresco version it is in the code COINI IN OUT. Easy to adapt.

Kowalski assembler, character I/O is easy.
I think you can use BRK if you use the Simulator option not to end a program that way.
Just did a test entering 0100 via LDA's in ffffe ffff and executing BRK via single steppping, sets PC to 0100, so that works. So I see no problem to run Focal in the Kowalski program.

Assembling my code in the Kowalski assembler, you may need to change I use in my assembler (TASM
- location counter $ to *
- low byte < instead of &$FF
- high byte > instead of >>8


Top
 Profile  
Reply with quote  
PostPosted: Sat Feb 03, 2024 12:25 pm 
Offline
User avatar

Joined: Fri Oct 31, 2003 10:00 pm
Posts: 200
SamCoVT wrote:
. I had seen your Papertape (PTP) version of FOCAL, but didn't realize that further down your FOCAL page you have the source(s) you recreated as well: http://retro.hansotten.nl/6502-sbc/focal-65-v3d/#sources


That papertape file is not mine and not from my pages. I suppose it is a patched version derived from my binary dump of the tape. It is not documented what has been done there and how.
I advise you to look at the binary dump and source file binary information as target, those are the only authentic real masters surviving from 1977.


Top
 Profile  
Reply with quote  
PostPosted: Sat Feb 03, 2024 3:41 pm 
Offline

Joined: Thu Mar 12, 2020 10:04 pm
Posts: 704
Location: North Tejas
For comparison, this is the manual for 8080 Cassette FOCAL:

http://www.sol20.org/manuals/focal.pdf

And this is the DECUS manual for a more recent version of FOCAL with disk files:

https://www.grc.com/pdp-8/docs/FOCAL_Re ... Manual.pdf

Sometime down the road, I may start with Hans' code and create a version for FLEX with disk file support.


Top
 Profile  
Reply with quote  
PostPosted: Sun Feb 04, 2024 10:56 am 
Offline
User avatar

Joined: Fri Oct 31, 2003 10:00 pm
Posts: 200
That would be nice Bill.

Load/save programs and data is what is missing. No file I/O in this version makes it a bit unfriendly. There are two ways to load/save a Focal program: dump the whole memory image including the program space (that is what was done in the old days) or do a text file download/upload (which is what a current intelligent terminal program allows).

Loading/saving data is not possible.

We have to thank Paul Birkel for the scans of listing and user guide. He had this since 2016 he told me. When I told him about my reconstruction work on it, he was motivated to start his KIM-1 after many years!

Hans


Top
 Profile  
Reply with quote  
PostPosted: Sun Feb 04, 2024 1:41 pm 
Offline

Joined: Thu Mar 12, 2020 10:04 pm
Posts: 704
Location: North Tejas
I believe I found another problem:

On line #4335, you are missing ">>8"

This is a good reason for .byte to issue an error or at least a warning for an out of allowable range value.


Top
 Profile  
Reply with quote  
PostPosted: Sun Feb 04, 2024 1:53 pm 
Offline
User avatar

Joined: Fri Oct 31, 2003 10:00 pm
Posts: 200
BillG wrote:
I believe I found another problem:

On line #4335, you are missing ">>8"

This is a good reason for .byte to issue an error or at least a warning for an out of allowable range value.


Already fixed last friday in the archives. This is the one error I found in the KIM-1/TIM Program Exchange sources when I did the Aresco one, comparing with binary.


Top
 Profile  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 52 posts ]  Go to page Previous  1, 2, 3, 4

All times are UTC


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron