Kanji/JE/JIS (2) Genic Clubguide, 00-00-00 VERVOLG: M S X - J E, J I S E N K A N J I B A S I C ==================================================== (Deze tekst was te lang voor de layout van ClubGuide Special. Vandaar dat we hem over twee teksten hebben verdeeld. We pakken de draad nu weer op waar het vorige deel stopte.) TEKST OP GRAFISCHE SCHERMEN Zoals gezegd kan de KANJI BASIC gebruikt worden om op SCREEN 5 en hoger teksten te plaatsen zonder OPEN en PRINT# instrukties. Dit kan gewoon door LOCATE en PRINT te gebruiken. Er kan dan echter niet met logische operaties of halve letters worden gewerkt, bovendien is de positie niet zo precies te bepalen; LOCATE is nogal grof. Om dat allemaal wel te kunnen gebruiken we het PUT KANJI commando. Op SCREEN 11 en 12 zul je merken dat het teken 'uitloopt'. Dit komt omdat de J- en K-waarden van de omliggende pixels worden verminkt. Men kan dit probleem omzeilen door te zorgen dat alleen de Y-waarde van de letters anders is dan die van de achtergrond, de J- en K-waarden moeten dus hetzelfde blijven. Bijvoorbeeld COLOR &B11111000,&B00001000. JIS1 & JIS2 In de bovenstaande tekst heb ik het al vaak over JIS ROMs gehad. Deze zitten boordevol met 16x16 karakters. Alle tekens die je je maar kunt bedenken komen er in voor. Europese letters, Griekse letters, Russische letters en ALLE Japanse en Chinese tekens. En dat zijn er heel erg veel. Bovendien zitten er nog een aantal handige symbolen in, zoals een telefoontje en eenheden (mm, cm, m2, cm3, Hz, dl). Verder nog kleine tekeningetjes. Bijvoorbeeld een konijntje, een zeepaardje, een vlinder, een parapluutje, een voetafdruk, pijltjes, een straaljager, een zeilboot, gezichtjes, bananen. Zoals ik zei: alles wat je je maar kunt bedenken! Deze tekens moeten worden opgeroepen met een nummer. Dit is een hexadecimaal getal van vier cijfers, minimaal &H2121. Ik heb tabellen gemaakt van de tekens die wij Europeanen zullen gebruiken, en die op deze diskette gezet. Het zijn gecrunchte SCREEN 5 plaatjes. Je kunt ze bekijken met het programma SHOW-JIS.ART, dat in het softwaremenu is te vinden. (NB: dit programma draait ook op een gewone MSX2 (het zijn per slot van rekening gewoon SCREEN 5 plaatjes, zodat de MSX2 gebruikers kunnen zien wat ze allemaal missen!) Je kunt deze tekens oproepen met de hierboven besproken KANJI BASIC commando's, of door middel van de MSX-JE, die ik nu zal bespreken. MSX-JE Bij de KANJI BASIC wordt de MSX-JE ROM ook al veelvuldig gebruikt, maar er is nog een toepassing van de MSX-JE die niet met commando's werkt. Deze zogenaamde JE-balk is alleen in de direct mode op te roepen, als je je in een KANJI mode bevindt. De besturing van deze balk kan per computer enigszins verschillen, ik ga hier uit van de situatie zoals die bij mijn computer is (een Panasonic FS-A1ST MSX turbo R). DE JE-BALK Je kunt de balk oproepen door op [CTRL]+[SPATIE] of [GRAPH]+ [SELECT] te drukken. Op de plaats van de F-key teksten verschijnt nu een witte balk. Als je nu gaat typen, dan wordt alles wat je typt (indien mogelijk) automatisch in Hiraganaschrift vertaald. Het Hiragana is een Japans fonetisch schrift, elk teken stelt een lettergreep voor. Er zijn geen tekens voor losse medeklinkers, met uitzondering van de N. Je krijgt dat teken door twee maal op de [N] te drukken. Voor de klinkers zijn wel aparte tekens. Wil je toch een losse medeklinker, dan moet je er een u (soms een o) achter zetten. Mijn naam wordt bijvoorbeeld: sutefann De computer maakt daar 5 Japanse Hiragana tekens van. Drukken we nu op [F2], dan wordt het omgezet in Katakana, het andere Japanse lettergrepenschrift. Dit werkt verder hetzelfde, alleen de tekens zijn anders. Drukken we op [F3], dan komt de smalle (8x16 in plaats van 16x16) versie in Kana tevoorschijn. Met [ESC] gaan we weer terug naar het oorspronkelijke Hiragana. Je kunt deze tekst op het scherm zetten door op [F5] of [RETURN] te drukken. Typ maar eens konami in en druk dan op [F2]. Iemand die wel eens een Japans blad heeft gelezen ziet nu drie heel bekende tekentjes! De eerste mogelijkheid van de MSX-JE-balk is dus het omzetten van fonetisch-europees schrift naar fonetisch-Japans schrift. Maar dat is niet alles, de MSX-JE is niet voor niets 512 kB! Drukken we op [F1], dan kunnen we gewoon tekens invoeren, alleen dan verschijnen ze in 16x16. Ook deze tekens kunnen naar het scherm gestuurd worden met [F5] of [RETURN]. Dit is dus de manier waarop je van 'gewone' tekens (die met het toetsenbord zijn in te voeren) de KANJI-equivalent kunt krijgen. Op deze manier moeten de 16x16 tekens in de voorbeelden bij de KANJI BASIC commando's worden ingevoerd. Het is ook mogelijk om een willekeurig teken uit de JIS ROMs op te roepen met de JE-balk. Typ eerst het nummer in (4 cijfers hexadecimaal). Let op: als er een A, B, C, D, E of F in voorkomt is het nodig om eerst op [F1] te drukken! Is het nummer ingevoerd, druk dan op [F4] en het karakter verschijnt. Probeer 783A maar eens, dan krijg je een konijntje! Met behulp van de tabellen die op deze ClubGuide Special staan kun je het nummer van een bepaald karakter opzoeken, met SHOW-JIS.ART kun je de tabellen bekijken. Dit zijn bij lange na niet alle tekens, het zijn er veel en veel meer! De andere tekens zijn echter bijna allemaal Japans of Chinees, en daarom niet interessant voor ons. Staan er Japanse Hiragana of Katakana tekens en je drukt op de cursortoetsen boven of onder of de spatiebalk, dan verschijnen er allerlei ingewikkelde Japanse Kanji tekens. Een Japanner begrijpt dit vast wel, maar dit gaat boven mijn pet. Iemand die geen Japans kent, heeft daar natuurlijk ook niets aan. Met [SHIFT] samen met cursortoets links of rechts ga je naar het begin of het einde van de tekst in de invoerbalk, en met [SHIFT] samen met de spatiebalk kun je een spatie typen in die invoerbalk. Druk je de spatiebalk in zonder [SHIFT], dan verschuift de normale cursor. EEN VOORBEELD Ik heb een klein voorbeeldje gemaakt waarin veel van de hierboven behandelde theorie wordt toegepast. Deze routine zet een tekst (die in gewone karakters is gegeven) in grote (16x16 Kanji) karakters op het scherm. De afstand tussen de letters bedraagt 15 pixels en elke letter heeft een 'schaduw'. De tekst wordt midden op het scherm geplaatst. Eerst het hele programma: 100 SCREEN7 110 COLOR,0,0:CLS 120 _KANJI 130 S$="GENIC's ClubGuide Special" 140 Y=100:X=256-7.5*LEN(S$) 150 _AKCNV(T$,S$) 160 _KLEN(L,T$) 170 FORI=1TOL 180 _KMID(K$,T$,I) 190 _JIS(N$,K$) 200 N=VAL("&H"+N$) 210 PUTKANJI(1+X+(I-1)*15,1+Y),N,5 220 PUTKANJI(X+(I-1)*15,Y),N,15,TPSET 230 NEXT 240 GOTO240 Regel 100 en 110 spreken voor zich. In regel 120 wordt de Kanji mode aangezet. Omdat we in SCREEN 7 zitten passen er 64 normale of 32 extra grote (Kanji) tekens op het scherm. In regel 130 wordt de tekst bepaald, die dus maximaal 32 tekens lang mag zijn. Regel 140 bepaalt de coordinaten. De y-coordinaat is 100, de x-coordinaat wordt zo berekend dat de tekst precies in het midden van het scherm komt te staan. 140 Y=100:X=256-7.5*LEN(S$) SCREEN 7 is 512 pixels breed, 256 is dus precies op de helft. De letterafstand is 15, als we dus de helft van 15 maal de lengte van de string van 256 aftrekken, komt de string precies in het midden van het scherm. 150 _AKCNV(T$,S$) Regel 150 zet de string om van normale tekens naar Kanji tekens. T$ bevat nu de string in Kanji tekens. 160 _KLEN(L,T$) Met regel 160 bepalen we de lengte van de string. Die komt in L te staan. 170 FORI=1TOL 180 _KMID(K$,T$,I) 190 _JIS(N$,K$) De variabele I loopt de letters ‚‚n voor ‚‚n af. Met de _KMID instruktie in regel 180 wordt het Ide teken uit de string genomen en in K$ gezet. In regel 190 wordt het JIS nummer daarvan opgevraagd. Dit hexadecimale nummer staat in N$. 200 N=VAL("&H"+N$) We bereken de waarde van die hexadecimale string door er eerst &H voor te zetten en daarna de waarde op te vragen met VAL. 210 PUTKANJI(1+X+(I-1)*15,1+Y),N,5 220 PUTKANJI(X+(I-1)*15,Y),N,15,TPSET 230 NEXT 240 GOTO240 Regel 210 zet het teken in het blauw op een positie 1 naar rechts en 1 naar onder ten opzichte van de witte letters. De letter staan 15 pixels uitelkaar, maar de eerste letter moet als X-coordinaat X+0 krijgen, dus we trekken 1 af van I. Het wordt dus (I-1)*15. In regel 220 wordt de witte letter geplaatst. De logische bewerking TPSET zorgt ervoor dat de blauwe letter niet wordt uitgewist. Regel 230 zorgt ervoor dat alle letters worden afgewerkt, en regel 240 wacht totdat de gebruiker [CTRL]+[STOP] heeft ingedrukt. Dit programmaatje staat ook op de disk, onder de naam KANJI.ART. Het is te vinden in het softwaremenu (dat je kunt bereiken door op [F4] te drukken). INGEBOUWDE TEKSTVERWERKER MSX TURBO R Je kunt de karakters uit de JIS1 & JIS2 ROMs ook gebruiken in de ingebouwde tekstverwerker van de turbo R (eerste keuze in het menu dat je krijgt als je de turbo R opstart met de HIRO/BASIC toets in de linker stand). Kies eerst voor menu 1 (dit kan door op [CTRL] te drukken of met de muis, midden onderaan het scherm staat een 'breuk' die aangeeft in welk menu je zit). Druk daarna op [F5]. Je krijgt dan een menu met tien keuzes. Achter elke keuze zit een groep karakters. De vierde van boven aan de linkerkant is het leukst: hier zitten de konijntjes, gezichtjes, etc. achter. Ook kun je hier de Griekse en Russische tekens vinden en tekens met acccenten. Voor de Japanners is het kiezen van een Japans teken erg makkelijk gemaakt. Met de derde optie van boven aan de rechterkant krijg je een scherm vol met Japanse tekens, je zou dat de 'basistekens' kunnen noemen. Je kunt er daar ‚‚n van uitkiezen. Daarna keer je weer naar het gewone scherm terug. Onderin bevindt zich nu echter een balk, waarin alle tekens staan die van het basisteken zijn afgeleid. Het in de tekst plaatsen van een teken is simpel: gewoon er naartoe sturen en op de 'Ja'-deadkey drukken. Wist je dat er ook een zwart/wit tekenprogramma bijzit om tekeningetjes tussen de tekst te plaatsen? Of dat je zinnen, letters of woorden in een andere kleur kan zetten? Of dat allerlei bewerkingen zoals italics, 90 graden gedraaid, bold, underlined, outline, etc. ook mogelijk zijn en op het scherm worden weergegeven? De MSX-JE wordt in de ingebouwde tekstverwerker ook gebruikt, het 'vertalen' in fonetisch schrift gebeurt automatisch. Ook is er een Europese (!!) mode. Maar daarover misschien een andere keer meer. Stefan Boer |