[comp.sys.amiga] Memory and Thai questions

ajk@goanna.oz (Alan Kent) (07/23/87)

I have a few questions. Sorry about the length.

o In the back of byte (BIX), it said up to 1.5megs of ram
  can be autoconfigured if the memory is at $C00000. I have
  got a home-brew board, but when I moved it to this address,
  it didnt autoconfig. I could not even access it using a debugger.
  Is $C00000 just a feature of the 500? Specific machine version?
  I thought the Insider 'autoconfigured' by sitting at this
  address. Does the fact that the board is inside the machine
  (on the other side of some data buffers perhaps) matter?

o Are there any Thai versions of the keyboard for the amiga?
  Are the keyboard caps on the 1000's keyboard removable?
  Anyone know what the standard Thai character set is (equiv of ASCII)?

  A friend who went back to Thailand recently was asked to
  get a machine and database package which all worked in Thai.
  However, my friend found that all the DB software available
  only allowed English. There are not really a lot of Thai
  computers. (Aparently IBM have a Thai keyboard option, and
  some others have stickers that are stuck on key tops).
  I personally have played around a little with
  Thai on the amiga (for fun) so was curious if the amiga
  could be used (of course there is no software around).
  Aparantly a Thai keyboard has the same layout as our
  keyboards, but they use upper and lower case for different
  letters (Thai has about 44 constants plus extra vowels).
  Displaying Thai is a bit tricky too as it has lots of little
  things above and below the characters - my current thai font
  is 22 pixels high!

o Is there any way of stopping AmigaDOS from ignoring case
  in file names? I realize this is also tied in with the hash
  function for directories, but for Thai, ASCII upper and
  lower case codes are completely different characters.

The Thai character set poses other problems such as tone marks
and vowels can appear above or below previous characters (can be
done using proportional fonts). I dont know what the console
handler would think of this (or intuition string gadgets).
Menu bars are also a problem due to the height of the font.

I had a few more questions, but I might try a few more things
on the Amiga first.

Any suggestions you could provide would be greatly appreciated.
This was all mainly out of curiosity. Just how flexible is the Amiga?


ps:
One approach I have personally found quite useful with menus
is to extend the menu structure to include an additional
id number (like the gadgets have). My main loop waiting for
intui-messages then calls the main command parser with
either the gadget id# and gadget pointer or the menu id#
and a NULL pointer. This means I can move menu items around
at will rather than using the position of the entry in the menus,
or even turn them into boolean gadgets, with a minimum
of changes to the code (the command processor doesn't notice).


Alan Kent     (RMIT, Melbourne, AUSTRALIA)
UUCP: {seismo,hplabs,mcvax,ukc,nttlab}!munnari!goanna.oz!ajk
ARPA: munnari!goanna.oz!ajk@SEISMO.ARPA
ACSnet: ajk@goanna.oz

daveh@cbmvax.UUCP (Dave Haynie) (07/24/87)

in article <1029@goanna.oz>, ajk@goanna.oz (Alan Kent) says:
> 
> 
> I have a few questions. Sorry about the length.
> 
> o In the back of byte (BIX), it said up to 1.5megs of ram
>   can be autoconfigured if the memory is at $C00000. I have
>   got a home-brew board, but when I moved it to this address,
>   it didnt autoconfig. I could not even access it using a debugger.
>   Is $C00000 just a feature of the 500? Specific machine version?
>   I thought the Insider 'autoconfigured' by sitting at this
>   address. Does the fact that the board is inside the machine
>   (on the other side of some data buffers perhaps) matter?

The hardware question I can answer.  The RAM located at $C00000 is an
AmigaOS 1.2 feature.  This RAM really isn't autoconfigured in the true
sense of the word.  An autoconfigured board can't be assumed to exist
at any address, must be relocatable, and in the current system will always
be located in the $200000-$9FFFFF range or the $E80000-$EFFFFF range.
It also must have /SLAVE and other complete backplane signals available in
most incarnations.  Memory that is located at $C00000 will be recognized by
system software; basically, every 64K or so of address starting at 
$C00000 is examined for the presence of memory, instead of the custom
chip images that usually occupy this area.  The OS will allocate up to 
around 1.75 meg of this memory as FAST memory.  This allocation will
occur very early in the boot-up process, so unlike normal autoconfig
memory, the OS will locate some of the early system base structures in this
extra memory.  

As I mentioned above, though, $C00000 memory is usually occupied by the
custom chips.  These chips are address by the OS at the end of this range,
but the granularity of the A1000 PAL-based address decoders is limited to
2 meg boundaries, so an A1000 has copies of the custom chip registers located
throughout this 2 meg space.  In order to get a memory board to show up in
this area, you've got to disable the decoding of the custom chips for the
range of your memory board.  This can be done either by modifying the PAL
circuitry, or by using the /OVR bus signal.  Modifying the PAL circuitry
is certainly not supported by Commodore-Amiga, but it can be done.  The 
/OVR signal has the capability to "override" the decoding done by the
Amiga's address decoding PALs.  However, it must be asserted very fast, and
the worst case for this assertion is in the overlay of the custom chips.
If you can assert /OVR from an address decode in 25ns or less, you'll 
probably be OK; the faster the better.  Also, if you do use /OVR, note
that /OVR also tri-states the motherboard generated /DTACK signal, so you'll
have to create a /DTACK of your own when using /OVR.  The A500 achieves 
memory mapped into $C00000 by means of the GARY chip, which has a memory
decoding granularity much finer than the PALs in the A1000.
-- 
Dave Haynie     Commodore-Amiga    Usenet: {ihnp4|caip|rutgers}!cbmvax!daveh
"The A2000 Guy"                    PLINK : D-DAVE H             BIX   : hazy
     "Catch a wave and you're sittin' on top of the world" -Beach Boys