
|
Kanji/JE/JIS (1) Genic Clubguide, 00-00-00
MSX2+ EN MSX TURBO R:
K A N J I B A S I C , M S X - J E E N J I S
=====================================================
In de Japanse MSX2+ en MSX turbo R computers zit een macht
aan ROM, van een groot gedeelte daarvan weet de gemiddelde
Nederlandse MSX gebruiker niet wat hij er mee aan moet. Ik
ga er in dit artikel van uit dat alle ROMs aanwezig zijn,
zoals bijvoorbeeld in de MSX turbo R. Dat zijn:
JIS1 128 kB Karakters 16x16 (1)
JIS2 128 kB Karakters 16x16 (2)
MSX-JE 512 kB Japanse vertaal-ROM
KANJI BASIC 16 kB Aansturen van JIS en
nieuwe schermmodi
Totaal dus maar liefst 784 kB aan ingebakken ROM! KANJI
BASIC en JIS1 behoren tot de MSX2+ standaard, maar de
overige ROMs zijn in de duurdere MSX2+ computers ook al
aanwezig. Bij de turbo R is dit allemaal standaard.
Wat kunnen we hier nu mee? Meer dan de meesten onder jullie
zullen denken! Laten we eerst de KANJI Basic maar eens onder
de loep nemen.
KANJI BASIC
KANJI BASIC heeft een aantal leuke mogelijkheden, zoals 4
nieuwe tekstschermen en karakters op grafische schermen
zonder OPEN en PRINT# instrukties. In de nieuwe
tekstschermen zijn de letters uit meer puntjes opgebouwd dan
in de conventionele schermen, wat veel mooiere letters
geeft. Ook de interlacing mode van de V9958 kan worden
gebruikt, de verticale resolutie wordt dan maar liefst 424
pixels! Behalve dat de karakters groter zijn, zijn er ook
nog eens v‚‚l meer karakters. Had een MSX2 'slechts' 256
karakters, met JIS en KANJI BASIC zijn er meer dan 5000
karakters voorhanden!
Ik zal nu de commando's van de KANJI BASIC ‚‚n voor ‚‚n
behandelen. Het zijn allemaal CALL commando's, je mag het
woord CALL natuurlijk ook vervangen door _ (underscore).
CALL KANJI <x>
Met dit commando kan men de verschillende KANJI modes
inschakelen. De mode waarin men terecht komt is afhankelijk
van het SCREEN waarin men zich bevond toen het _KANJI
commando gegeven werd. De verschillende waarden van <x>
hebben de volgende betekenis:
<x> lettergrootte aantal regels interlace
0 16x16/8x16 12 nee
1 12x16/6x16 12 nee
2 16x16/8x16 24 ja
3 12x16/6x16 24 ja
De WIDTH is afhankelijk van het scherm waarin het commando
werd gegeven. Bij SCREEN 0: WIDTH 80 worden de
schermbreedtes respectievelijk 64, 80, 64 en 80, bij SCREEN
0: WIDTH 40 of SCREEN 1 worden de schermbreedtes
respectievelijk 32, 40, 32 en 40. In de grafische schermen
geven SCREEN 5, 8, 10, 11 en 12 breedte 32 of 40 en SCREEN 6
en 7 breedte 64 of 80. In de grafische schermen werken
alleen de KANJI modes 0 en 1 goed, omdat de interlace het
dan niet doet.
Vooral als je moeite hebt met het lezen van de letters
tijdens bijvoorbeeld het programmeren in BASIC zijn de KANJI
modes erg handig, de letters zijn zeer duidelijk. De
'normale' letters (die je met het toetsenbord kunt invoeren)
hebben het kleine formaat (8 of 6 bij 16). De tekens uit de
JIS hebben het grote formaat (16 of 12 bij 16). Deze letters
zijn niet zomaar in te voeren, maar daarover later meer.
Let op: SCREEN 0 en 1 zijn nu grafisch opgebouwd, dus
bijvoorbeeld een karakter(-vorm) VPOKEn is er niet meer bij.
Het COPY commando werkt niet in de KANJI modes van SCREEN 0
en 1, maar als je de VDP rechtstreeks aanstuurt kun je
gewoon copieren of zelfs bijvoorbeeld lijnen trekken!
Dit heeft als voordeel dat elke letter een andere kleur kan
hebben, dus alle 16 (uit 512) kleuren kunnen gelijktijdig
worden gebruikt. De rest van de commando's zijn bedoeld om
in de KANJI modes gebruikt te worden, en staan op
alfabetische volgorde.
CALL AKCNV (A$,B$)
AKCNV is een afkoring van Ank Kanji CoNVersion. Hiermee
kunnen standaardkarakters (met een ASCII code) worden
omgezet naar KANJI karakters. In B$ staat de tekst die moet
worden omgezet en in A$ komt het resultaat. Bijvoorbeeld:
_AKCNV (A$,"GENIC"). A$ bevat nu de tekst GENIC in 16x16
karakters.
CALL ANK
Dit commando schakelt de KANJI mode uit. Men keert terug in
de oorspronkelijke tekstmode. Na dit commando werken de
meeste KANJI commando's dus niet meer goed.
CALL CLS
Een gewone CLS werkt niet meer in een KANJI mode. Dit geeft
een Illegal function call. Het wissen van een KANJI scherm
moet gebeuren door middel van een CALL CLS. In de grafische
schermen kan men overigens de gewone CLS blijven gebruiken.
CALL JIS (A$,B$)
Met dit commando kan je het JIS nummer van het karakter in
B$ opvragen. Dit nummer wordt in A$ gezet, in een
hexadecimale string van 4 getallen. Als B$ uit meerdere
karakters bestaat, dan wordt het eerste karakter genomen.
Bijvoorbeeld _JIS(A$,"S"). Let op: de S moet van het formaat
16x16 zijn, ik zal later uitleggen hoe je dat in moet
voeren. A$ bevat na dit commando "2353". Het nummer van de
Kanji-S is dus &H2353.
CALL KACNV (A$,B$)
Dit commando doet precies het omgekeerde van _AKCNV. Dit is
Kanji Ank CoNVersion. Hiermee kunnen KANJI karakters worden
omgezet in ANK karakters (met een ASCII code). In B$ staan
de karakters, in A$ komt het resultaat. Bijvoorbeeld _KACNV
(A$,"GENIC"). Let op: de letters van GENIC moeten van het
formaat 16x16 zijn, ik zal later uitleggen hoe je dat in
moet voeren. A$ bevat na dit commando "GENIC" in gewone
karakters.
CALL KEXT (A$,B$,<z>)
KEXT staat voor Kanji EXTract. En dat is ook precies wat het
commando doet, het haalt bepaalde KANJI karakters uit een
string. De karakters staan in B$, en het resultaat komt in
A$. Met <z> kan worden aangegeven welke karakters eruit
worden gehaald, die uit de JIS1 ROM (<z>=0), of die uit de
JIS2 ROM (<z>=1). Bijvoorbeeld _KEXT(A$,B$,1).
CALL KINSTR (<x>,A$,B$)
Dit commando doet hetzelfde met KANJI karakters als de
instruktie INSTR met gewone karakters. Het zoekt de string
B$ in de string A$, wordt het gevonden dan komt de positie
in <x> te staan. Voor X moet dus een numerieke variabele
worden ingevuld. Is B$ niet aanwezig in A$, dan is <x>
gelijk aan 0. Bijvoorbeeld _KINSTR(P,"GENIC","N"). P bevat
dan de waarde 3.
CALL KLEN (<x>,A$,<y>)
Dit commando geeft de lengte van A$ en zet die in de
variabele <x>. Als men de <y> parameter weglaat, of als die
0 is, dan wordt de totale lengte genomen. Is <y> gelijk aan
1, dan worden alleen de tekens uit JIS1 geteld, is <y>
gelijk aan 2, dan worden alleen de tekens uit JIS2 geteld.
Bijvoorbeeld _KLEN (L,"GENIC"). L bevat dan de waarde 5.
CALL KMID (A$,B$,<x>,<y>)
Dit commando doet hetzelfde als MID$, alleen dan met KANJI
karakters. Er worden <y> karakters genomen vanaf positie <x>
uit B$. Het resultaat komt in A$ terecht. Bijvoorbeeld _KMID
(A$,"ClubGuide Special",5,3). A$ bevat dan "Gui".
CALL KNJ (A$,B$)
Hiermee kan een karakter uit de JIS ROM worden opgevraagd.
In B$ staat het nummer van het karakter (als een
hexadecimale string van 4 cijfers), en in A$ komt het
resultaat. Bijvoorbeeld _KNJ(A$,"783A"):PRINT A$. Er staat
nu een konijntje op het scherm.
CALL KTYPE (<x>,A$,<y>)
Met dit commando kan je kijken uit welke JIS ROM een bepaald
karakter komt. In A$ staan de karakters, <y> wijst naar het
bedoelde karakter. In <x> komt het resultaat; 0 voor JIS1 of
1 voor JIS2. Bijvoorbeeld _KTYPE (T,"GENIC",3). T geeft dan
aan of de N in JIS1 of in JIS2 staat.
CALL PALETTE (<x>,<r>,<g>,<b>)
De instruktie COLOR=(<x>,<r>,<g>,<b>) werkt niet meer in
SCREEN 0 of SCREEN 1 als de KANJI mode is ingeschakeld. In
plaats daarvan gebruik je nu _PALETTE. De COLOR= instruktie
geeft een Illegal function call, de _PALETTE instruktie
werkt hetzelfde als de COLOR= instruktie. _PALETTE zonder
parameters is hetzelfde als COLOR=NEW, de standaardkleuren
worden dan hersteld.
CALL SJIS (A$,B$)
Dit is een Speciale versie van het CALL JIS commando. In
plaats van het JIS nummer geeft deze instruktie twee ASCII
codes in een hexadecimale string van 4 cijfers. Je moet die
dan splitsen en er &H voorzetten. Worden die twee codes dan
met twee PRINT CHR$(...) instrukties op het scherm gezet,
dan komt het KANJI karakter tevoorschijn. Het karakter staat
in B$, in A$ komt het resultaat. Bestaat B$ uit meerdere
karakters, dan wordt het eerste karakter genomen. Voorbeeld:
_SJIS (A$,"#") Let op: dit moet weer een 16x16 karakter
zijn! PRINT A$ levert 8194 op. Met PRINT CHR$(&H81);
CHR$(&H94) kunnen we dus een kanji-# op het scherm zetten.
PUT KANJI (<x>,<y>),kanji,kleur,log.op,kode
Dit is eigenlijk helemaal geen KANJI BASIC commando! Dit
commando geeft geen foutmelding op een Europese MSX2. Toch
werkt het daarop niet goed, omdat de JIS ROMs ontbreken. Je
krijgt dan witte balkjes op je scherm (het Burai-effect).
Dit commando zet het KANJI karakter met nummer kanji op de
positie <x>,<y> van een grafisch scherm in de gewenste
kleur. Eventueel kan er ook nog een logische operatie worden
uitgevoerd. De kode ten slotte wordt gebruikt om karakters
van de halve hoogte op het scherm te plaatsen. Met kode=0
wordt het karakter helemaal afgebeeld, met kode=1 alleen de
even lijnen en met kode=2 alleen de oneven lijnen. De PUT
KANJI instruktie werkt alleen in SCREEN 5 en hoger.
(Nvdr. Deze tekst was te lang voor de layout van ClubGuide
Special. Daarom hebben we de tekst in twee‰n geplaatst. Dit
was het eerste deel, deel twee kunt u in het menu vinden.)
|