128 Function ROM

Started by megabit, February 13, 2009, 06:24 AM

Previous topic - Next topic

0 Members and 3 Guests are viewing this topic.

Andrew Wiskow

Quote from: megabit on March 12, 2009, 02:11 AMMy stock 128 does not do that, well, semi-stock 128. I change one byte in the Kernal of all my 128's.

Okay, Dan...  You've piqued my curiosity...   What byte do you change in the Kernal of your 128s?
Cottonwood BBS & Cottonwood II
http://cottonwood.servebbs.com

SmallCleverDinosaur

Quote from: megabit on March 12, 2009, 02:11 AM
Robert, if you will send me your EPROMs, I will re-program them for you, as well as DLH, airship and SmallCleverDinosaur and I willl send them back to you.
To make things easier for both of us, just burn a new EPROM and send me that one, and I will transfer the cost of the EPROM to you. I can always use an extra EPROM :)

Quote from: Andrew Wiskow on March 12, 2009, 03:37 AM
Quote from: megabit on March 12, 2009, 02:11 AMMy stock 128 does not do that, well, semi-stock 128. I change one byte in the Kernal of all my 128's.

Okay, Dan...  You've piqued my curiosity...   What byte do you change in the Kernal of your 128s?
Yes please, tell us Dan, I got really curious about that one too! :)
Ignorance is a precious thing. Once lost, it can never be regained.

megabit


QuoteOkay, Dan...  You've piqued my curiosity...   What byte do you change in the Kernal of your 128s?

It will have to wait, my wife just called me to lunch.

Dan..

Alex

Quote from: megabit on March 12, 2009, 05:30 AM

QuoteOkay, Dan...  You've piqued my curiosity...   What byte do you change in the Kernal of your 128s?

It will have to wait, my wife just called me to lunch.

Dan..
Come on - finish your lunch quickly! I'm also dyeing to learn which byte is it... BTW: do you still take orders for the adapter? I'm very interesting in getting one for my C128D.
Cheers
Alex

megabit


QuoteOkay, Dan...  You've piqued my curiosity...   What byte do you change in the Kernal of your 128s?


When I purchased my first 128 back in the 80"s, brought it home, hooked it up and turned it on. Well, isn't this cool, it auto boots the program!

I got tired of it real quick because I turn the 128 on and off quite a bit and push the reset button even more. It made my teeth grit every time the stepper motor would ratchet out to track 1 sector 0 and back again. I could picture myself replacing the stepper motor on the disk drive every 4 or 5 months.

With the help of two books I picked up (128 Internals and Basic 7.0 Internals), I was able to follow the code to the PHOENIX routine that would check the Internal ROM and Cartridge areas and then moves on to the Auto Boot routine.

The PHOENIX routine is called only once in Basic and no where in the Kernal. It turned out to be easy to fix, almost like the software engineers had it in mind to remove the auto boot or leave it in.

After the routine checks the Internal ROM and Cartridge area, it clears the interrupt (CLI) and then checks for an auto boot. What I do is change the CLI to an RTS. It never reaches the auto boot area, instead it will return to Basic where the routine was called. The very next command is JMP $401C, guess what, the next command at $401C is CLI, then it prints the READY prompt.

If you need to auto boot a disk, put a disk in the drive and type BOOT and CR and your drive will ratchet out to track 1 sector 0 to look for an auto boot.

It does not interfere with any program or the operating system that I know of. It's quiet, saves your disk drive and the computer comes up twice as fast.

When I get a 128, that is the first thing I do to it.


QuoteIt sounds like Option 1 would be the way to go.  Where on the adapter would you solder that reset wire?

When I finish the 'How to do it Yourself' manual, I will show it as an option on the schematic that will come with the manual. Actually, it's just a wire connected to the board with a direction diode and quickie clip on the other end that goes to the system reset line.

QuoteBTW: do you still take orders for the adapter? I'm very interesting in getting one for my C128D.

I'm putting together 20 units now and will have them finished this weekend. It looks like I will have to make more than 20. There's alot of interest in the adapter.

Dan...

Andrew Wiskow

Quote from: megabit on March 12, 2009, 08:36 AMI'm putting together 20 units now and will have them finished this weekend. It looks like I will have to make more than 20. There's alot of interest in the adapter.

I'm definately interested, too...  I'm just waiting for all of the bugs to get worked out first.  ;)
Cottonwood BBS & Cottonwood II
http://cottonwood.servebbs.com

al

I hope my name is on the waiting list. :)

megabit


Lets see,---Al, Al, Al,  ya, here it is!  You're on the list. The parts came in, so it should be ready this weekend.

Dan...

megabit


I have put together 20 ea. Megabit Internal ROM Adapters and 10 ea. are ready to ship if anyone that was not on the list that would like to have one.

Price is:  $20.00 USD + shipping & handling.

Shipping & handling:

USA   $2.50 all 50 states
Canada   $3.00 USD
Europe   about $5.00 USD, Sweden was $5.00, other countries will have to check
Aussie   don't know yet until I get an order

The above rates are for 1 unit (adapter & CD); more than 1 will cost more to ship.

Payment:

PayPal   USA & International
Money order USA only

Dan...


Blacklord

Dan,

Work out for Oz please & I'll Paypal you the cash.

cheers,

Lance

SmallCleverDinosaur

Quote from: megabit on March 12, 2009, 02:11 AM
Quote6. A surprise... the ZED 128 text editor is included. Another surprise... ZED 128 initializes correctly from the 128 ROM adapter, but when a user tries to type more than one character into the program, the whole program freezes up.

Surprise, you're right, it doesn't work. The program works fine from disk, but when loaded from Internal ROM it crashes.
Here is what I found: When you enter the Internal ROM menu, the pre-configuration registers A & B ($D501 & $D502) are re-programmed in order to access the 32k of data in the Internal ROM. No Kernal or I/O except when you have to switch a page in Internal ROM.
When ZED is selected from the menu, the loader routine will transfer the program from ROM to RAM in the proper location, then jump to start of the program. That part works well, but use another key after start up, it will crash. The program expects the pre-configuration registers to be at their default values.
So, restoring the register values before program startup fixes the problem.

Robert, if you will send me your EPROMs, I will re-program them for you, as well as DLH, airship and SmallCleverDinosaur and I willl send them back to you.
I received my new EPROM yesterday, thanks Dan! :)
Ignorance is a precious thing. Once lost, it can never be regained.

dabone

Off topic but the autoboot disable you were talking about...
QuoteAfter the routine checks the Internal ROM and Cartridge area, it clears the interrupt (CLI) and then checks for an auto boot. What I do is change the CLI to an RTS. It never reaches the auto boot area, instead it will return to Basic where the routine was called. The very next command is JMP $401C, guess what, the next command at $401C is CLI, then it prints the READY prompt.

Exactly what byte is it to change to do this?

Thanks,
Later,
dabone

megabit


QuoteExactly what byte is it to change to do this?

Turn your 128 on and go to the built in monitor.

Enter   DFF883   and hit return. This is what you will see:

. FF883   20  CD  02   JSR  $02CD
. FF886   CE  C0  0A   DEC  $0AC0
. FF883   10  E2         BPL  $F86D
. FF88B   58              CLI
. FF88C   A2  08         LDX  #$08
. FF88E   A9  30         LDA  #$30
. FF890   85  BF         STA  $BF
. FF892   86  BA         STX  $BA
. FF894   8A              TXA
. FF895   20  3D  F2   JSR  $F23D

The one byte that you want to change is at F88B.
Change CLI to RTS in the binary file that you are going to program in the EPROM.

Dan...

dabone

And the dummy with the hex editor that knows nothing about ml code?
CLI=58

RTS=???

Thanks,
dabone

SmallCleverDinosaur

To find out the hex code of RTS (or of any ML op-code), enter the monitor and type

A1300 RTS

Then the monitor will show

A 01300  60       RTS

The "A" is for assemble and that's what just happened. You assembled the op-code RTS into ML. And the monitor responds by showing the hex code for RTS which is 60.
Ignorance is a precious thing. Once lost, it can never be regained.

dabone


al

The Megabit 128 adaptor came in today. What a nice production it is. Very well done. Nice install docs, CDROM. Well made and pretty at that.

Big thanks.

megabit

QuoteThe Megabit 128 adaptor came in today. What a nice production it is. Very well done. Nice install docs, CDROM. Well made and pretty at that.

Big thanks.

Thank you for the nice words.
I'm glad you like it.
Enjoy.  :)

Dan...

RobertB

Quote from: al on March 21, 2009, 09:54 AMWhat a nice production it is. Very well done. Nice install docs, CDROM. Well made and pretty at that.
I agree.  On Saturday I show it off at the TOGA meeting in San Jose.

                     Truly,
                     Robert Bernardo
                     Fresno Commodore User Group
                     http://videocam.net.au/fcug
                     The Other Group of Amigoids
                     http://www.calweb.com/~rabel1/
                     Southern California Commodore/Amiga Network
                     http://www.sccaners.org/

megabit


There is one thing you have to keep in mind when you install the Adapter.

Your 128 computer is 20+ years old and the tin plated leads on the IC's have
corrosion on them. So when you connect the clip to pin 12 of U3, move the
clip up and down the lead a couple times to make a good connection.

The same goes for the 28-pin socket.

Dan...


RobertB

Quote from: megabit on March 21, 2009, 04:18 PM
Your 128 computer is 20+ years old and the tin plated leads on the IC's have
corrosion on them. So when you connect the clip to pin 12 of U3, move the
clip up and down the lead a couple times to make a good connection.
Good advice.  However, in my case, Ray Carlsen removed every chip in my main C128DCR and put in sockets for the ones that had been previously soldered in.  Then he re-inserted all the chips.   In other words, I now have a fully-socketed C128DCR.  So, maybe my C128DCR just has a few years of "corrosion" now.  :)

                     Truly,
                     Robert Bernardo
                     Fresno Commodore User Group
                     http://videocam.net.au/fcug
                     Notacon 6 / Blockparty 3 on April 16-19
                     http://www.notacon.org , http://www.demoparty.us

megabit

QuoteHowever, in my case, Ray Carlsen removed every chip in my main C128DCR and put in sockets for the ones that had been previously soldered in.  Then he re-inserted all the chips.   In other words, I now have a fully-socketed C128DCR.

Is there a good reason for that?
Ray must have alot of time on his hands.  :)

Dan...

RobertB

Quote from: megabit on March 22, 2009, 07:44 PMIs there a good reason for that? Ray must have alot of time on his hands.  :)
I'm trying to remember the exact circumstances.  IIRC, the computer was not coming up with the correct free memory, 80-columns was not working, loading from disk was not working correctly but C64 programs on cart would work.  He had it for a long time, trying to debug it.  When the easy answers were not found, then he went with chip by chip replacement (hence, all the sockets).  He finally traced it to the cartridge expansion port!  Two "teeth" in the port were crossed/short-circuiting.  He replaced the port, and all the problems were solved.

                    His and my e-mails about this are
                    archived somewhere,
                    Robert Bernardo
                    Fresno Commodore User Group
                    http://videocam.net.au/fcug
                    Notacon 6 / Blockparty 3 on April 16-19
                    http://www.notacon.org , http://www.demoparty.us

RobertB

Quote from: me on March 21, 2009, 03:37 PMOn Saturday I show it off at the TOGA meeting in San Jose.
While showing it off at the meeting, I realized that with the word/text processors, spreadsheet, database, and file utilities put into a fully-optioned Megabit ROM Adapter, it would make a C128 a complete business machine right "out of the box".  All it needs is a game or two (80-column or 40-column) for when a person is not doing business.  :)  For instance, those Genie C128 game files at

                   http://cbmfiles.com/genie/C128GamesListing.html

                                 Truly,
                                 Robert Bernardo
                                 Fresno Commodore User Group
                                 http://videocam.net.au/fcug
                                 Notacon 6 / Blockparty 3 on April 16-19
                                 http://www.notacon.org , http://www.demoparty.us

megabit


QuoteAll it needs is a game or two (80-column or 40-column) for when a person is not doing business.

How about something for your secretary to do between work, like Solitaire.
Something for you, like Leader Board Golf.

There is 4 meg of ROM space to put in any game/s you want.

I have made a Cartridge for the C64 that will use the same EPROMs.
I've been thinking of putting World Class Leader board in it and all of the
different Courses.

Dan...