Ultimax questions

classic Classic list List threaded Threaded
43 messages Options
123
Reply | Threaded
Open this post in threaded view
|

Ultimax questions

Michał Pleban
Hello!

I have obtained an Ultimax from Japan recently. Upon unpacking, I
noticed that its keyboard features "Shift Lock" and "Restore" keys.

I was wondering how they are supposed to work? The Shift Lock key is
just a normal membrane key and does not have any "locking" mechanism, so
some custom electronics would be required to make it work. But I don't
see any on the schematics. Similarly, I don't see any NMI line coming
from the keyboard so how can the "Restore" key work? Maybe they are both
just fakes?

There is a MAX BASIC cartridge with the machine. Is there any ROM dump
of it? Is it the same BASIC as in C64 / VIC-20, or was it modified
further (apart, of course, from the memory management stuff)?

Regards,
Michau.

       Message was sent through the cbm-hackers mailing list
Reply | Threaded
Open this post in threaded view
|

Re: Ultimax questions

Steve Gray
http://www.mayhem64.co.uk/commodoremax.htm

Steve


On Oct 13, 2013, at 8:15 AM, Michał Pleban <[hidden email]> wrote:

> Hello!
>
> I have obtained an Ultimax from Japan recently. Upon unpacking, I
> noticed that its keyboard features "Shift Lock" and "Restore" keys.
>
> I was wondering how they are supposed to work? The Shift Lock key is
> just a normal membrane key and does not have any "locking" mechanism, so
> some custom electronics would be required to make it work. But I don't
> see any on the schematics. Similarly, I don't see any NMI line coming
> from the keyboard so how can the "Restore" key work? Maybe they are both
> just fakes?
>
> There is a MAX BASIC cartridge with the machine. Is there any ROM dump
> of it? Is it the same BASIC as in C64 / VIC-20, or was it modified
> further (apart, of course, from the memory management stuff)?
>
> Regards,
> Michau.
>
>       Message was sent through the cbm-hackers mailing list

       Message was sent through the cbm-hackers mailing list
Reply | Threaded
Open this post in threaded view
|

Re: Ultimax questions

Michał Pleban
Hello!

Steve Gray wrote:

> http://www.mayhem64.co.uk/commodoremax.htm

Thanks, I downloaded the images from here.

Do you know how (or whether at all) these keys work? I can't test the
machine right now because I don't have a NTSC television set :-(

Regards,
Michau.


       Message was sent through the cbm-hackers mailing list
Reply | Threaded
Open this post in threaded view
|

Re: Ultimax questions

Steve Gray
I know this is probably overkill for a single wire ;-)  ....


If you have a monitor that can accept NTSC composite video you're all set!


Steve



From: Michał Pleban <[hidden email]>
To: [hidden email]
Sent: Monday, October 14, 2013 6:30:55 AM
Subject: Re: Ultimax questions

Hello!

Steve Gray wrote:

> http://www.mayhem64.co.uk/commodoremax.htm

Thanks, I downloaded the images from here.

Do you know how (or whether at all) these keys work? I can't test the
machine right now because I don't have a NTSC television set :-(


Regards,
Michau.


      Message was sent through the cbm-hackers mailing list


Reply | Threaded
Open this post in threaded view
|

Re: Ultimax questions

Michał Pleban
Hello!

Steve Gray wrote:

> I know this is probably overkill for a single wire ;-)  ....
> http://www.6502.org/users/sjgray/projects/maxvid/index.html
> If you have a monitor that can accept NTSC composite video you're all set!

Wow. That is awesome. I will try that over the weekend!

Regards,
Michau.

       Message was sent through the cbm-hackers mailing list
Reply | Threaded
Open this post in threaded view
|

Re: Ultimax questions

Michał Pleban
In reply to this post by Steve Gray
Hello!

Steve Gray wrote:

> I know this is probably overkill for a single wire ;-)  ....
> http://www.6502.org/users/sjgray/projects/maxvid/index.html
> If you have a monitor that can accept NTSC composite video you're all set!

I did this mod right now, and - surprise of surprises - it works :-) My
cheap LCD TV indeed accepts NTSC composite! However it looks really
ugly, PAL from the C64 is much better.

But anyway, I am now able to answer my own questions ;-)

* The Restore key appears to be working. That is, pressing Run/Stop +
Restore clears the screen and shows the READY. prompt just like on the C64.

* The Shift Lock key does not work as advertised :-) It is just another
(third) Shift key. No locking. This of course was expected.

* The MAX BASIC looks so far just like the C64 one, but apparently it
has only one (uppercase) character set. Pressing C= and Shift does not
bring lowercase characters, nor does executing PRINT CHR$(14). I guess
the character data sits in the KERNAL and space was tight there.

It will be interesting to disassemble the KERNAL and see how much it's
different, given that the character ROM occupies some of its space :-)

And of course typing on the keyboard is just plain awful. And I thought
the C116 was bad ;-)

Regards,
Michau.


       Message was sent through the cbm-hackers mailing list
Reply | Threaded
Open this post in threaded view
|

Re: Ultimax questions

Steve Gray
That's great! Glad it worked for you.

I had another interesting idea for the Max... Use the Cassette port as an IEC port, just like Ulrich's Kernal for the B-series. I assume if you took out the tape routines from MaxBASIC and substituted the IEC routines it might work. Also, I'd like to see an "UltraCart" that contains all the known Ultimax games in one ;-)

Steve




From: Michał Pleban <[hidden email]>
To: [hidden email]
Sent: Friday, October 18, 2013 12:50:15 PM
Subject: Re: Ultimax questions

Hello!

Steve Gray wrote:

> I know this is probably overkill for a single wire ;-)  ....
> http://www.6502.org/users/sjgray/projects/maxvid/index.html
> If you have a monitor that can accept NTSC composite video you're all set!

I did this mod right now, and - surprise of surprises - it works :-) My
cheap LCD TV indeed accepts NTSC composite! However it looks really
ugly, PAL from the C64 is much better.

But anyway, I am now able to answer my own questions ;-)

* The Restore key appears to be working. That is, pressing Run/Stop +
Restore clears the screen and shows the READY. prompt just like on the C64.

* The Shift Lock key does not work as advertised :-) It is just another
(third) Shift key. No locking. This of course was expected.

* The MAX BASIC looks so far just like the C64 one, but apparently it
has only one (uppercase) character set. Pressing C= and Shift does not
bring lowercase characters, nor does executing PRINT CHR$(14). I guess
the character data sits in the KERNAL and space was tight there.

It will be interesting to disassemble the KERNAL and see how much it's
different, given that the character ROM occupies some of its space :-)

And of course typing on the keyboard is just plain awful. And I thought
the C116 was bad ;-)


Regards,
Michau.


      Message was sent through the cbm-hackers mailing list


Reply | Threaded
Open this post in threaded view
|

Re: Ultimax questions

Michał Pleban
Hello!

Steve Gray wrote:

> I had another interesting idea for the Max... Use the Cassette port as
> an IEC port, just like Ulrich's Kernal for the B-series. I assume if you
> took out the tape routines from MaxBASIC and substituted the IEC
> routines it might work. Also, I'd like to see an "UltraCart" that
> contains all the known Ultimax games in one ;-)

I just thought of an "UltraCart" as well :-) I bought a bunch of 27C801
chips form China, will work on the cart when they arrive ;-)

Do you have an Eagle library with a C64 cart layout? Someone posted it
on the list sometime ago but I can't seem to find it :-(

Regards,
Michau.


       Message was sent through the cbm-hackers mailing list
Reply | Threaded
Open this post in threaded view
|

Re: Ultimax questions

Rob Clarke
In reply to this post by Steve Gray
> Also, I'd like to see an "UltraCart" that contains all the known Ultimax games in one ;-)

The Multimax cart is still on my 'to be completed' list. :-)

I have a working prototype on a breadboard circuit that uses a 6-way resetable latch to control the upper 5 address lines of a 1mb eprom, which is 31 ultimax images plus the menu system. The setting of the latch is gated using one of the i/o lines on the 64 cartridge port which, on the max is the /exram line. I completed the menu system which seems to work to I just need to fabricate some pcb's which, as I've never done it before, is kind of where I ground to a halt in the spring.

Now winter is setting in, i'd like to pick it up again. Anyone interested in co-operating to get it finished?

cheers, Rob


On 18/10/2013 19:14, Steve Gray wrote:
That's great! Glad it worked for you.

I had another interesting idea for the Max... Use the Cassette port as an IEC port, just like Ulrich's Kernal for the B-series. I assume if you took out the tape routines from MaxBASIC and substituted the IEC routines it might work. Also, I'd like to see an "UltraCart" that contains all the known Ultimax games in one ;-)

Steve




From: Michał Pleban [hidden email]
To: [hidden email]
Sent: Friday, October 18, 2013 12:50:15 PM
Subject: Re: Ultimax questions

Hello!

Steve Gray wrote:

> I know this is probably overkill for a single wire ;-)  ....
> http://www.6502.org/users/sjgray/projects/maxvid/index.html
> If you have a monitor that can accept NTSC composite video you're all set!

I did this mod right now, and - surprise of surprises - it works :-) My
cheap LCD TV indeed accepts NTSC composite! However it looks really
ugly, PAL from the C64 is much better.

But anyway, I am now able to answer my own questions ;-)

* The Restore key appears to be working. That is, pressing Run/Stop +
Restore clears the screen and shows the READY. prompt just like on the C64.

* The Shift Lock key does not work as advertised :-) It is just another
(third) Shift key. No locking. This of course was expected.

* The MAX BASIC looks so far just like the C64 one, but apparently it
has only one (uppercase) character set. Pressing C= and Shift does not
bring lowercase characters, nor does executing PRINT CHR$(14). I guess
the character data sits in the KERNAL and space was tight there.

It will be interesting to disassemble the KERNAL and see how much it's
different, given that the character ROM occupies some of its space :-)

And of course typing on the keyboard is just plain awful. And I thought
the C116 was bad ;-)


Regards,
Michau.


      Message was sent through the cbm-hackers mailing list



Reply | Threaded
Open this post in threaded view
|

Re: Ultimax questions

Jim Brain
In reply to this post by Michał Pleban
On 10/18/2013 2:10 PM, Michał Pleban wrote:

> Hello!
>
> Steve Gray wrote:
>
>> I had another interesting idea for the Max... Use the Cassette port as
>> an IEC port, just like Ulrich's Kernal for the B-series. I assume if you
>> took out the tape routines from MaxBASIC and substituted the IEC
>> routines it might work. Also, I'd like to see an "UltraCart" that
>> contains all the known Ultimax games in one ;-)
> I just thought of an "UltraCart" as well :-) I bought a bunch of 27C801
> chips form China, will work on the cart when they arrive ;-)
>
> Do you have an Eagle library with a C64 cart layout? Someone posted it
> on the list sometime ago but I can't seem to find it :-(
>
> Regards,
> Michau.
>
>
>         Message was sent through the cbm-hackers mailing list
I have one, I'll put it somewhere as soon as I get back to the home office.

Jim


--
Jim Brain
[hidden email]
www.jbrain.com


       Message was sent through the cbm-hackers mailing list
Reply | Threaded
Open this post in threaded view
|

Re: Ultimax questions

Michał Pleban
In reply to this post by Rob Clarke
Hello!

Rob Clarke wrote:

> I have a working prototype on a breadboard circuit that uses a 6-way
> resetable latch to control the upper 5 address lines of a 1mb eprom,
> which is 31 ultimax images plus the menu system. The setting of the
> latch is gated using one of the i/o lines on the 64 cartridge port
> which, on the max is the /exram line. I completed the menu system which
> seems to work to I just need to fabricate some pcb's which, as I've
> never done it before, is kind of where I ground to a halt in the spring.

You also need a 6116 RAM chip for the MAX BASIC to work. This is where
things get complicated, as it also sits on the /EXRAM line and will
require at least one additional chip to managed.

> Now winter is setting in, i'd like to pick it up again. Anyone
> interested in co-operating to get it finished?

Sure :-)

Regards,
Michau

       Message was sent through the cbm-hackers mailing list
Reply | Threaded
Open this post in threaded view
|

Re: Ultimax questions

Rob Clarke
> You also need a 6116 RAM chip for the MAX BASIC to work. This is where
> things get complicated, as it also sits on the /EXRAM line and will
> require at least one additional chip to managed.
Yeah, I had kind of excluded the MAX basic from the list for exactly
that reason. As you know, the cartridge port on the Max is subtely
different and you don't have the same select lines exposed so it seemed
easiest to use the /exram line to gate the latch. Maybe you have an idea
for how we can use alternative lines that exposed that will leave the
/exram free for it's intended purpose?

The list of images I was going with was:

;    1    Avenger V02
;    2    Avenger V03 - C64
;   3    Billiards V02
;    4    Bowling
;    5    Clowns V02
;    6    Gorf
;    7    Jupiter Lander V02
;    8    Kickman V03
;    9    Le Mans
;    10    Mole Attack
;    11    Money Wars
;    12    Music Composer
;    13    Music Machine
;    14    Omega Race V02
;    15    Omega Race V03
;    16    Radar Rat Race V02B
;    17    Road Race V02
;    18    Seawolf
;    19    Speed Bingo / Math
;    20    Super Alien
;    21    Visible Solar System
;    22    Wizard of Wor V02
;    23    Mini Basic

The only 3 other Max compatible cartridges I was aware of that are not
on the list are Max Basic, Pinball & Slalom where the last 2 have ROM's
in the /ROML bank.

Cheers,

Rob

>> Now winter is setting in, i'd like to pick it up again. Anyone
>> interested in co-operating to get it finished?
> Sure :-)
>
> Regards,
> Michau
>
>         Message was sent through the cbm-hackers mailing list


       Message was sent through the cbm-hackers mailing list
Reply | Threaded
Open this post in threaded view
|

Re: Ultimax questions

Steve Gray
Will Max support something bigger than 6116? I ordered a few cheap 32k sram chips in sdip that don't take much room... Even if we cant use the whole capacity.

Steve


On Oct 19, 2013, at 4:01 PM, Rob Clarke <[hidden email]> wrote:

>> You also need a 6116 RAM chip for the MAX BASIC to work. This is where
>> things get complicated, as it also sits on the /EXRAM line and will
>> require at least one additional chip to managed.
> Yeah, I had kind of excluded the MAX basic from the list for exactly that reason. As you know, the cartridge port on the Max is subtely different and you don't have the same select lines exposed so it seemed easiest to use the /exram line to gate the latch. Maybe you have an idea for how we can use alternative lines that exposed that will leave the /exram free for it's intended purpose?
>
> The list of images I was going with was:
>
> ;    1    Avenger V02
> ;    2    Avenger V03 - C64
> ;   3    Billiards V02
> ;    4    Bowling
> ;    5    Clowns V02
> ;    6    Gorf
> ;    7    Jupiter Lander V02
> ;    8    Kickman V03
> ;    9    Le Mans
> ;    10    Mole Attack
> ;    11    Money Wars
> ;    12    Music Composer
> ;    13    Music Machine
> ;    14    Omega Race V02
> ;    15    Omega Race V03
> ;    16    Radar Rat Race V02B
> ;    17    Road Race V02
> ;    18    Seawolf
> ;    19    Speed Bingo / Math
> ;    20    Super Alien
> ;    21    Visible Solar System
> ;    22    Wizard of Wor V02
> ;    23    Mini Basic
>
> The only 3 other Max compatible cartridges I was aware of that are not on the list are Max Basic, Pinball & Slalom where the last 2 have ROM's in the /ROML bank.
>
> Cheers,
>
> Rob
>
>>> Now winter is setting in, i'd like to pick it up again. Anyone
>>> interested in co-operating to get it finished?
>> Sure :-)
>>
>> Regards,
>> Michau
>>
>>        Message was sent through the cbm-hackers mailing list
>
>
>      Message was sent through the cbm-hackers mailing list

       Message was sent through the cbm-hackers mailing list
Reply | Threaded
Open this post in threaded view
|

Re: Ultimax questions

Marko Mäkelä
On Sat, Oct 19, 2013 at 06:51:35PM -0400, Steve Gray wrote:
>Will Max support something bigger than 6116? I ordered a few cheap 32k
>sram chips in sdip that don't take much room... Even if we cant use the
>whole capacity.

I do not see why not, you should be able to use part of it at least. The
Max uses static RAMs. I guess you could decipher the maximum RAM map
from the PLA equations somehow:

http://www.zimmers.net/anonftp/pub/cbm/firmware/computers/c64/pla-906114-1.c
http://www.zimmers.net/anonftp/pub/cbm/firmware/computers/c64/pla.c

Given that the PLA inputs include address lines A12 to A15, I would
expect the memory to be divided into blocks of 4096 addresses.

Some 15 years ago, I experimented with the Ultimax mode on the C128. You
can programmatically set the GAME and EXROM lines on the C128 MMU at the
same time when switching to C64 mode. From that I remember that the
character generator ROM would disappear from the VIC-II memory map and
be replaced with floating data lines. I was trying to see what happens
if both the processor and the video chip is accessing unconnected
address space for several clock cycles, but did not spend enough effort
to see how many cycles are possible.

You can always do some bank switching on your own, like I did on the Vic
Flash Plugin. Are the I/O1 or I/O2 signals available on the Max
cartridge port? Even the Atari VCS 2600 cartridges can use some bank
switching, even if the cartridge port does not distinguish reads and
writes. I wonder how they are doing that, I guess watching for magic
access patterns, such as read-modify-write instructions, accessing the
same address three times in a row (1 read and 2 writes).

Best regards,

        Marko

       Message was sent through the cbm-hackers mailing list
Reply | Threaded
Open this post in threaded view
|

Re: Ultimax questions

Michał Pleban
In reply to this post by Steve Gray
Hello!

Steve Gray wrote:

> Will Max support something bigger than 6116? I ordered a few cheap 32k sram chips in sdip that don't take much room... Even if we cant use the whole capacity.

Short answer: No. The /EXRAM line is active only at $0800-$0FFF.

Long answer: You have all the address lines at the expansion connector
so you could handle address decoding yourself. This would, however,
require at least one additional chip and you will most probably run out
of space in the cartridge unless you go for SMD.

Regards,
Michau.


       Message was sent through the cbm-hackers mailing list
Reply | Threaded
Open this post in threaded view
|

Re: Ultimax questions

Michał Pleban
In reply to this post by Marko Mäkelä
Hello!

Marko Mäkelä wrote:

> I do not see why not, you should be able to use part of it at least. The
> Max uses static RAMs. I guess you could decipher the maximum RAM map
> from the PLA equations somehow:

The dedicated /EXRAM line at the expansion port handles only 2 kB
unfortunately. Of course you could make your own memory mapping chip(s)
to handle more, as I explained to Steve.

> Are the I/O1 or I/O2 signals available on the Max cartridge port?

Actually they are not. /IO1 is replaced by /EXRAM and /IO2 is replace3d
by SP pin form the CIA.

Regards
Michau.


       Message was sent through the cbm-hackers mailing list
Reply | Threaded
Open this post in threaded view
|

Re: Ultimax questions

Michał Pleban
In reply to this post by Rob Clarke
Hello!

Rob Clarke wrote:

> Yeah, I had kind of excluded the MAX basic from the list for exactly
> that reason. As you know, the cartridge port on the Max is subtely
> different and you don't have the same select lines exposed so it seemed
> easiest to use the /exram line to gate the latch. Maybe you have an idea
> for how we can use alternative lines that exposed that will leave the
> /exram free for it's intended purpose?

Yes, actually I have :-)

But first, you need to start supporting 16kB cartridges which you don't
at the moment, and the MAX BASIC cartridge is 16kB. Actually this is
quite easy. The only problem is that you need to AND the /ROML and /ROMH
lines and feed this as the /CS line to your EPROM. You can use two
diodes and a resistor to do that - so no additional chip needed. Then,
either /ROML or /ROMH needs to go to A13 line of the EPROM and you're
good to go.

Then, you have two lines from the CIA chip at the expansion port - SP
and CNT. This is CIA's shift register. So instead of a latch sitting at
/EXRAM, you can tie a resettable shift register to these lines and latch
a correct banking value through the shift register from CIA. I haven't
searched the TTL catalog to see if such chip exists, but probably it
does; if not, as a last resort you can cascade two 4-bit counters.

You have also the P0 line from the CPU if yoou need something more, but
I think the above concept should be sufficient for all your needs.

If you build a prototype of this and verify that it works, I'll be happy
to design a PCB ;-)

Regards,
Michau.




       Message was sent through the cbm-hackers mailing list
Reply | Threaded
Open this post in threaded view
|

Re: Ultimax questions

Gerrit Heitsch
On 10/20/2013 02:45 PM, Michał Pleban wrote:
>
> Then, you have two lines from the CIA chip at the expansion port - SP
> and CNT. This is CIA's shift register. So instead of a latch sitting at
> /EXRAM, you can tie a resettable shift register to these lines and latch
> a correct banking value through the shift register from CIA. I haven't
> searched the TTL catalog to see if such chip exists, but probably it
> does; if not, as a last resort you can cascade two 4-bit counters.

Take a look at the 74LS194. 4Bit shift-Register with serial in _and_
parallel load and resettable. Should cover what you need if you use 2 of
them.

  Gerrit



       Message was sent through the cbm-hackers mailing list
Reply | Threaded
Open this post in threaded view
|

Re: Ultimax questions

Spiro Trikaliotis
In reply to this post by Michał Pleban
Hello,

* On Sat, Oct 19, 2013 at 10:38:20AM +0200 Michał Pleban wrote:
 
> You also need a 6116 RAM chip for the MAX BASIC to work. This is where
> things get complicated, as it also sits on the /EXRAM line and will
> require at least one additional chip to managed.

It will not be complicated if you connect the cartridge to the C64 only,
though, as the C64 (unlike the MAX) ignores the extra RAM in the
cartridge. ;)

Regards,
Spiro.

--
Spiro R. Trikaliotis
http://www.trikaliotis.net/

       Message was sent through the cbm-hackers mailing list
Reply | Threaded
Open this post in threaded view
|

Re: Ultimax questions

Rob Clarke
In reply to this post by Michał Pleban
On 20/10/2013 14:27, Michał Pleban wrote:
> Hello!
>
> Steve Gray wrote:
>
>> Will Max support something bigger than 6116? I ordered a few cheap 32k sram chips in sdip that don't take much room... Even if we cant use the whole capacity.
> Short answer: No. The /EXRAM line is active only at $0800-$0FFF.
Have you tested that? I couldn't find any evidence that the decoding
logic in the 6703 had ever been fully documented. It's possible that
/EXRAM may be active up to $3FFF.

But even if it does, what then? I suspect even the MAX Basic ROM does
not intelligently probe for usable memory and the extra 2k of RAM is
hardcoded. So yes, we could probably fix the ROM to use the extra RAM
but I have no intention of typing in 32k BASIC programs on a MAX
keyboard anytime soon. :-)

Rob

       Message was sent through the cbm-hackers mailing list
123