Machinetaal vraagje

By Michiel van der...

Supporter (1)

Michiel van der Leeuw의 아바타

11-11-2022, 14:39

Ik heb mijn bejaarde msx2 (een Philips 8250) weer eens van stal gehaald en ben nu wat aan het experimenteren met machinetaal. Ik loop tegen een raar probleempje op: om een karakter op het scherm af te drukken zou je moeten gebruiken:
LD A, (ascii-waarde van het karakter)
call &H00A2

Dit heeft echter geen effect. Ik krijg alleen maar een lege regel te zien, ongeacht de ascii-waarde.

Wat wel werkt is:
LD E, (ascii-waarde van het karakter)
LD C,2
CALL &H0005

Waarom werkt die call naar &H00A2 (alias CHPUT) niet? Ik werk met MSXDOS 2.20, maar onder basic is het hetzelfde verhaal.

Michiel

Login or 등록 to post comments

By Gesture68

Supporter (11)

Gesture68의 아바타

15-11-2022, 12:28

Weet je zeker dat je &h0005 aanroept? Dit lijkt nergens naar te verwijzen... (of is dit een MSXDOS 2.20 routine). De call naar &H00A2 zou moeten werken, ervan uitgaande dat je huidige cursor op een 'logische' positie staat

By Gesture68

Supporter (11)

Gesture68의 아바타

15-11-2022, 12:30

Of gebruik je LD A,(&h41) voor bijvoorbeeld 'A' ? De haakjes moeten wel weg bij de LD functie...: LD A,&h41

By MagicBox

Master (209)

MagicBox의 아바타

12-12-2022, 16:48

Hallo medelander,

Die call &H00A2 print een character op de huidige positie op het scherm. Deze positie kun je met call &H00C6 (dacht ik) instellen, of je past direct de rij en kolom waarde aan in het systeem geheugen. Een beschrijving van deze calls en van de systeem locaties kun je hier vinden:

BIOS: https://map.grauw.nl/resources/msxbios.php
Systeemgeheugen: https://map.grauw.nl/resources/msxsystemvars.php