6502.org Forum  Projects  Code  Documents  Tools  Forum
It is currently Thu Sep 19, 2024 11:18 pm

All times are UTC




Post new topic Reply to topic  [ 3 posts ] 
Author Message
 Post subject: SyMon III code reworked
PostPosted: Mon Aug 19, 2013 12:51 am 
Offline
User avatar

Joined: Tue Mar 05, 2013 4:31 am
Posts: 1382
All, Since I got back into the 6502 I've designed the small 2-board system and did some initial restructuring of Brian Phelps' SyMon III code to get it running (basic HW test). I first tried out SyMon on a Vic-20 using my old custom I/O board which has a 6551 chip and a 25-pin D-shell port. I modified Symon for the ACIA port base, assembled it, burned it into an EEPROM and replaced the Kernel ROM in the Vic... it worked and I started playing around with it. It sorta reminds of the old Commodore Machine Language monitor code (have the Vic cartridge version and the C64 version on diskette). Bottom line, lot of things I like about it and some I don't. But once you get used to it, it's quite a nice setup to have running and can be extended.

So, to get into doing some coding, I opted to start changing Symon around... basic goals:
1- Get back into doing some assembly coding.... look at some commented code, get back into the basic flow... and some of my old code as well.
2- Alter Symon to take advantage of 65C02 additional instructions and addressing modes.
3- Shrink it down to a smaller size and look to optimize when possible.
4- Make it fully relocatable and use a fixed JMP table for all of the documented calls.
5- Make all empty space contiguous (sans the JMP table and hardware vectors).

My 2-board system uses the following memory map:
RAM from $0000-$7FFF
EEPROM from $8000-$FDFF (has RO/RW jumper)
I/O page from $FE00-$FEFF (8 I/O selects, $FE00 has 65C22 and $FE20 has 6551)
EEPROM from $FF00-$FFFF (JMP table and HW vectors)

I've been successful so far in updating Symon. Lots of 65C02 specific coding, much optimization of space and some cleaner routines and it's fully relocatable and contiguous... nothing is hard addressed. I've assembled, linked and loaded at various ROM locations and (keeping the top page the same of course) it works clean in all cases. At the default based address of $E000, contiguous code ends at $FB2B, leaving 725 Bytes of contiguous free space to the I/O page at $FE00. The JMP table starts at $FF00 and uses 90 bytes so far, plus the 6 bytes for the HW vectors, leaving 160 Bytes available. Total free space is 885 Bytes.

Next plan is to replace the Interrupt structure with my own (from many years ago) and have soft vectors which can be linked/replaced, put some of the interrupt handler code in page $FF and add 65C22 interrupt and timer support. I really wish I had more free time to play... I'm actually having some fun.

_________________
Regards, KM
https://github.com/floobydust


Top
 Profile  
Reply with quote  
PostPosted: Tue Sep 10, 2013 8:55 pm 
Offline

Joined: Sun Aug 28, 2005 9:01 pm
Posts: 17
Location: Pennsylvania
Floobydust,
I'm the author of SyMon. I am thrilled that you tried my code, more still that you are reworking it! I'd be very interested to have a look at your mods. Just curious and mebbe give your version a try.
Best Regards,
Brian M. Phelps

_________________
Numbers were bad enough. Now I have to add
LETTERS?!


Top
 Profile  
Reply with quote  
PostPosted: Wed Sep 11, 2013 10:40 pm 
Offline
User avatar

Joined: Tue Mar 05, 2013 4:31 am
Posts: 1382
Hi Brian,

Thanks for the post... and again, thanks for making your code available. I've made a few additional changes... and saved some additional ROM space as well. I changed the prompt routine and made the prompt strings all sequential in number and added an index table for access. Total code space now is 6.75K which leaves 3 contiguous pages of free space from $FB00 - $FDFF (I/O page is $FE00 and $FF00 is JMP table and HW vectors). More than happy to make the modified source available to anyone who wants to try it.

I'll be making additional changes once I get some additional time... which won't be for at least another month or two due to schedule. Also sent you a PM.

_________________
Regards, KM
https://github.com/floobydust


Top
 Profile  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 3 posts ] 

All times are UTC


Who is online

Users browsing this forum: No registered users and 18 guests


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: