MILC logo

IndexVorigeVolgendeLeeg

MSX-2 BIOS-calls
Albert Beevendorp, 01-09-94


                                     MSX2BIOS calls
                                 --------------

Deze tekst bevat alle BIOS calls die zich in de MSX2 bevinden.In de lijst staan
namen van calls die ook in de MSX1 BIOS lijst staan. In zo'n geval moet de MSX1
call worden aangeroepen. Zodra het nodig is, zal de call vazelf naar de uitbrei
ding toe springen voor verdere afhandeling.

Er zijn calls voor MSX1 die ongewijzigd blijven. Daarvoor zijn er in de MAINROM
routines opgenomen die wel goed met de MSX2 standaard  omgaan: NRDVRM,  NWRVRM,
NSETRD, NSTWRT, BIGFIL en CHGMDP. De routine CHGMDP staat in de  SUB-ROM.  Deze
schijnt een aanvulling te zijn die het scherm initialiseert en tevens het palet
initialiseert.

Alle andere dubbele calls met dezelfde naam kunnen het  beste  de  call  in  de
MAIN-ROM aanroepen om het programma zowel op MSX1 als  MSX2  te  laten  werken.
Programma's die specifiek op MSX2 gaan draaien, kunnen beter direkt de call  in
de SUB-ROM aanroepen.

De volgende routines zijn in de MAIN-ROM te vinden:

Naam   : SUBROM
Adres  : #015C
Functie: Roept call in de SUB-ROM aan
Input  : IX - Adres van de routine in de SUB-ROM die gebruikt moet worden.
Output : Hangt van de routine af
Wijzig.: Alternatieve registers, IY
Opm.   : Gebruik van EXTROM of CALSLT is veel comfortabeler.
         In IX kan een waarde worden meegegeven met deze routine door hem eerst
         op de stack te PUSHen

Naam   : EXTROM
Adres  : #015F
Functie: Roept call in de SUB-ROM aan. Meest gebruikelijke manier
Input  : IX - Adres van de routine in de SUB-ROM die gebruikt moet worden.
Output : Hangt van de routine af
Wijzig.: Alternatieve registers, IY
Opm.   : Gebruik: LD   IX,adres
                  CALL EXTROM

Naam   : CHKSLZ
Adres  : #0162
Functie: Zoekt slots af naar de SUB-ROM
Wijzig.: Alles

Naam   : CHKNEW
Adres  : #0165
Functie: Controleert scherm-modus
Output : C-flag gezet indien scherm 5, 6, 7 of 8 ingeschakeld
Wijzig.: AF

Naam   : EOL
Adres  : #0168
Functie: Maakt rest van regel leeg. Cursor blijft staan.
Input  : H  - kolom
         L  - regel
Wijzig.: Alles

Naam   : BIGFIL
Adres  : #0016B
Functie: Als FILVRM, kan gehele VRAM bereiken.
Input  : HL - adres
         BC - lengte
         A  - data
Wijzig.: AF,BC

Naam   : NSETRD
Adres  : #016E
Functie: Als SETRD. Nu met volle 16 bits VRAM-adres
Input  : HL - Adres in VRAM
Wijzig.: AF

Naam   : NSTWRT
Adres  : #0171
Functie: Als SETWRT. Nu met volle 16 bits VRAM-adres
Input  : HL - Adres in VRAM
Wijzig.: AF

Naam   : NRDVRM
Adres  : #0174
Functie: Leest VRAM als RDVRM met volle 16 bits.
Input  : HL - VRAM-adres
Output : A  - Gelezen waarde
Wijzig.: F

Naam   : NWRVRM
Adres  : #0177
Functie: Schrijft naar VRAM net als WRTVRM met volle 16 bits.
Input  : HL - VRAM-adres
         A  - Te schrijven waarde
Wijzig.: AF

-------------------------------------------------------------------------------
                De volgende routines staan in de MSX2 SUB-ROM
-------------------------------------------------------------------------------

De routines die door Basic worden gebruikt, worden in deze lijst  overgeslagen.
In grote lijnen zijn deze routines  ook  voor  machinetaal beschikbaar.  Tussen
haakjes zal de BIOS-call naam en BIOS-call adres te vinden zijn.

Naam   : DOGRPH (DOLINE)
Adres  : #0085  (#007D)
Functie: Tekent een lijn
Input  : BC, HL voor start-coordinaten
         GXPOS, GYPOS voor eind-coordinaten
         ATRBYT voor attribute
         LOGOPR voor logische operator
Wijzig.: AF

Naam   : GRPPRT
Adres  : #0089
Functie: Plaatst teken op grafisch scherm
Input  : A  - te plaatsen teken
         ATRBYT met attribute
         LOGOPR met logische operator

Naam   : SCALXY
Adres  : #008D
Functie: Limiteert coordinaten tot de rand van het scherm
Input  : BC - X-as positie
         DE - Y-as positie
Output : BC - X-as positie begrensd
         DE - Y-as positie begrensd
Wijzig.: AF

Naam   : MAPXYC
Adres  : #0091
Functie: Converteert een X,Y paar naar een adres en masker in CLOC en CMASK
Input  : BC - X-as positie
         DE - Y-as positie
Output : HL - VRAM adres     In SCREEN 3    (ook in CLOC)
         A  - Masker         In SCREEN 3    (ook in CMASK)
         HL - X-as positie   In SCREEN 5->8 (ook in CLOC)
         A  - Y-as positie   In SCREEN 5->8 (ook in CMASK)
Wijzig.: F

Naam   : READC
Adres  : #0095
Functie: Lees attribute van pixel
Input  : X-as positie in CLOC
         Y-as positie in CMASK
Output : A  - Het attribute
Wijzig.: AF

Naam   : SETATR
Adres  : #0099
Functie: Zet attribute in ATRBYT
Input  : A  - Te plaatsen attribute
Output : C-flag gezet indien attribute verkeerd
Wijzig.: F

Naam   : SETC
Adres  : #009D
Functie: Zet attribute van pixel
Input  : X-as positie in CLOC
         Y-as positie in CMASK
         Attribute-byte in ATRBYT
Wijzig.: AF

Naam   : TRIGHT
Adres  : #00A1
Functie: Verplaatst pixel naar rechts
Input  : X-as positie in CLOC
         Y-as positie in CMASK
Output : Nieuwe X-as pos. in CLOC
         Nieuwe Y-as pos. in CMASK
         C-flag gezet indien de rand van het scherm is bereikt
Wijzig.: AF
Opm.   : Alleen voor SCREEN 3

Naam   : RIGHTC
Adres  : #00A5
Functie: Verplaatst pixel naar rechts
Input  : Zie TRIGHT
Output : Zie TRIGHT op de C-flag opmerking na
Wijzig.: AF
Opm.   : Alleen voor SCREEN 3

Naam   : TLEFTC
Adres  : #00A9
Functie: Verplaatst pixel naar links
Input  : Zie TRIGHT
Output : Zie TRIGHT
Wijzig.: AF

Naam   : LEFTC
Adres  : #00AD
Functie: Verplaatst pixel naar links
Input  : Zie RIGHTC
Output : Zie RIGHTC
Wijzig.: AF
Opm.   : Alleen voor SCREEN 3

Naam   : TDOWNC
Adres  : #00B1
Functie: Verplaatst pixel naar beneden
Input  : Zie TRIGHT
Output : Zie TRIGHT
Wijzig : AF

Naam   : DOWNC
Adres  : #00B5
Functie: Verplaatst pixel naar beneden
Input  : Zie RIGHTC
Output : Zie RIGHTC
Wijzig.: AF
Opm.   : Alleen voor SCREEN 3

Naam   : TUPC
Adres  : #00B9
Functie: Verplaatst pixel naar boven
Input  : Zie TRIGHT
Output : Zie TRIGHT
Wijzig.: AF

Naam   : UPC
Adres  : #00BD
Functie: Verplaatst pixel naar boven
Input  : Zie RIGHTC
Output : Zie RIGHTC
Wijzig.: AF
Opm.   : Alleen voor SCREEN 3

Naam   : SCANR
Adres  : #00C1
Functie: Scant pixels naar rechts
Input  : B  - 'Suspend'-flag
         C  - Rand-telling
Output : DE - Rand-telling
         C  - 'Pixel-veranderd'-flag
Wijzig.: Alles

Naam   : SCANL
Adres  : #00C5
Functie: Scant pixels naar links
Input  : DE - Rand-telling
Output : DE - Rand-telling
         C  - 'Pixel-veranderd'-flag
Wijzig.: Alles

Naam   : NVBXLN (BOXLIN)
Adres  : #00C9  (#0081)
Functie: Tekent een rechthoek
Input  : BC - X-as start
         DE - Y-as start
         X-as eind in GXPOS
         Y-as eind in GYPOS
         Attribute in ATRBYT
         Logische operator in LOGOPR
Wijzig.: Alles

Naam   : NVBXFL (DOBOXF)
Adres  : #00CD  (#0079)
Functie: Tekent een gevulde rechthoek
Input  : Zie NVBXLN (BOXLIN)
Wijzig.: Alles

Naam   : CHGMOD
Adres  : #00D1
Functie: Schakelt opgegeven schermmodus
Input  : A  - Schermmodus
Wijzig.: Alles

-------------------------------------------------------------------------------
De volgende routines worden aangeroepen vanuit de gelijknamige calls in de MAIN
ROM en de input en resultaten zullen daarom ook niet worden weergegeven. Ook de
gewijzigde Z-80 registers zullen niet geplaatst worden. Zie daarvoor de gelijk-
namige call in de MSX1-BIOS lijst die ook in de ingepakte file thuishoort.
-------------------------------------------------------------------------------

Naam   : INITXT
Adres  : #00D5
Functie: Schakelt SCREEN 0 in

Naam   : INIT32
Adres  : #00D9
Functie: Schakelt SCREEN 1 in

Naam   : INIGRP
Adres  : #00DD
Functie: Schakelt SCREEN 2 in

Naam   : INIMLT
Adres  : #00E1
Functie: Schakelt SCREEN 3 in

Naam   : SETTXT
Adres  : #00E5
Functie: Schakelt VDP in op SCREEN 0

Naam   : SETT32
Adres  : #00E9
Functie: Schakelt VDP in op SCREEN 1

Naam   : SETGRP
Adres  : #00ED
Functie: Schakelt VDP in op SCREEN 2

Naam   : SETMLT
Adres  : #00F1
Functie: Schakelt VDP in op SCREEN 3

Naam   : CLRSPR
Adres  : #00F5
Functie: Initialiseert sprite tabellen

Naam   : CALPAT
Adres  : #00F9
Functie: Geeft adres van sprite patroon-tabel terug

Naam   : CALATR
Adres  : #00FD
Functie: Geeft adres van sprite attribute-tabel terug

Naam   : GSPSIZ
Adres  : #0101
Functie: Geeft huidige sprite-grootte

-------------------------------------------------------------------------------
Deze lijst is weer gewoon specifiek MSX2
-------------------------------------------------------------------------------

Naam   : GETPAT
Adres  : #0105
Functie: Geeft patroon van een karakter
Input  : A  - ASCII code van karakter
Output : Patroon in PATWRK vanaf adres #FC40
Wijzig.: Alles
Opm.   : Is gelijk aan de routine in de MSX1-BIOS maar bestaat daar niet als
         BIOS-call

Naam   : WRTVRM
Adres  : #0109
Functie: Schrijft naar VRAM over 16 bits adres
Input  : HL - Adres
         A  - Te schrijven waarde
Wijzig.: AF

Naam   : RDVRM
Adres  : #010D
Functie: Leest uit VRAM over 16 bits adres
Input  : HL - Adres
Output : A  - Gelezen waarde
Wijzig.: AF

Naam   : CHGCLR
Adres  : #0111
Functie: Verandert schermkleuren
Input  : A  - Scherm-modus
         Zie in MSX1BIOS lijst dezelfde naam voor verdere input
Wijzig.: Alles

Naam   : CLS
Adres  : #0115
Functie: Schoon scherm
Wijzig.: Alles

Naam   : CLRTXT
Adres  : #0119
Functie: Maak tekst-scherm schoon
Wijzig.: Alles

Naam   : DSPFNK
Adres  : #011D
Functie: Zet funktie-toets teksten aan
Wijzig.: Alles

Naam   : DELLNO
Adres  : #0121
Functie: Verwijder regel in het tekstscherm
Input  : L  - Regelnummer
Wijzig.: Alles

Naam   : INSLNO
Adres  : #0125
Functie: Voegt regel tussen in het tekstscherm
Input  : L  - Regelnummer
Wijzig.: Alles

Naam   : PUTVRM
Adres  : #0129
Functie: Plaatst teken op het tekst scherm
Input  : H  - Y-as positie
         L  - X-as positie
Wijzig.: AF

Naam   : WRTVDP
Adres  : #012D
Functie: Schrijft naar VDP-register
Input  : B  - Te schrijven waarde
         C  - Register nummer
Wijzig.: AF, BC

Naam   : VDPSTA
Adres  : #0131
Functie: Leest VDP-status
Input  : A  - Status register
Output : A  - Gelezen waarde
Wijzig.: F

Naam   : KYKLOK
Adres  : #0135
Functie: Bestuur KANA-toets en KANA-lamp (Japan)
Wijzig.: AF

Naam   : PUTCHR
Adres  : #0139
Functie: Haalt een toets-code van toetsenbord, conversie naar KANA en in buffer
         (Japan)
Input  : Z-flag gezet indien niet in conversie-modus
Wijzig.: Alles

Naam   : SETPAG
Adres  : #013D
Functie: Stelt VDp-register in op pagina-wissel
Input  : ACPAGE - Actieve pagina
         DPPAGE - Op het scherm zichtbare pagina
Wijzig.: AF

-------------------------------------------------------------------------------
Palette-functies
-------------------------------------------------------------------------------

Naam   : INIPLT
Adres  : #0141
Functie: Initialiseert palette en VRAM voor opslag van palette
Wijzig.: AF, BC, DE

Naam   : RSTPLT  (COLOR=RESTORE)
Adres  : #0145
Functie: Stelt palette opnieuw in vanuit VRAM
Wijzig.: AF, BC, DE

Naam   : GETPLT
Adres  : #0149
Functie: Leest kleurcodes van een kleur
Input  : A  - Kleurcode
Output : B  - RRRRBBBB
         C  - xxxxGGGG
Wijzig.: AF, DE

Naam   : SETPLT
Adres  : #014D
Functie: Zet kleurcodes van kleur in palette
Input  : D  - Kleurcode
         E  - xxxxGGGG
         A  - RRRRBBBB
Wijzig.: AF

Naam   : BEEP
Adres  : #017D
Functie: Geeft pieptoon
Wijzig.: Alles

Naam   : PROMPT
Adres  : #0181
Functie: Laat prompmt zien (normaal "Ok")
Wijzig.: Alles

Naam   : SDFSCR
Adres  : #0185
Functie: Herstelt scher-parameters vanuit de klok-chip. C-flag gezet is KEY ON
Input  : C-flag gereset bij MSX-DOS aanroep
Wijzig.: Alles

Naam   : SETSCR
Adres  : #0189
Functie: Herstelt scherm-parameter en print openings-boodschap
Wijzig.: Alles

-------------------------------------------------------------------------------
Vanaf deze routine komen de zogenaamde BIT-BLIT routines die voornamelijk door
de VDP wordt uitgevoerd. Vanaf adres #F562 moeten de parameters klaar staan.
Zie MSX2VARS.TXT voor meer uitleg. HL moet altijd #F562 bevatten voor de calls
-------------------------------------------------------------------------------

Naam   : BLTVV
Adres  : #0191
Functie: Copy VRAM to VRAM
Input  : SX, SY, DX, DY, NX, NY, ARG, L_OP
Wijzig.: Alles

Naam   : BLTVM
Adres  : #0195
Functie: Copy Main-RAM to VRAM
Input  : SX - Adres van schermdata in RAM
         verder DX, DY, ARG, L_OP. NX en NY staan in de schermdata
Output : C-flag gezetn indien datafout in RAM
Wijzig.: Alles

Naam   : BLTMV
Adres  : #0199
Functie: Copy VRAM to Main-RAM
Input  : DX - adres van schermdata in RAM
         verder SX, SY, ARG, L_OP. NX en NY staan in de schermdata
Wijzig.: Alles

Naam   : BLTVD
Adres  : #019D
Functie: Copy Diskfile to VRAM
Input  : SX -  adres van de filenaam. Zie MSXVARS.TXT
         verder SX, SY, ARG, L_OP. NX en NY staan in de diskfile
Wijzig.: Alles

Naam   : BLTDV
Adres  : #01A1
Functie: Copy VRAM to Diskfile
Input  : DX - adres van de filenaam. Zie MSX2VARS.TXT
         verder SX, SY, NX, NY,ARG
Wijzig.: Alles

Naam   : BLTMD
Adres  : #01A5
Functie: Copy Diskfile naar Main-RAM
Input  : SX - adres van de filenaam. Zie MSX2VARS.TXT
         DX - startadres
         DY - eindadres in de Main-RAM
Wijzig.: Alles

Naam   : BLTDM
Adres  : #01A9
Functie: Copy Main-RAM naar Diskfile
Input  : DX - adres van de filenaam. Zie MSX2VARS.TXT
         SX - startadres
         SY - eindadres in de Main-RAM
Wijzig.: Alles

Naam   : NEWPAD
Adres  : #01AD
Functie: Leest lichtpen, muis en trackball
Input  : Toegang via GETPAD in MSX1BIOS, wordt doorgelinkt naar deze call
         Procedure: lees apparaat, dan X en Y.
         A  - 8 tot 19
           [ 8]   Lees lichtpen (#FF indien aanwezig)
           [ 9]   Lees X-positie
           [10]   Lees Y-positie
           [11]   Lees lichtpen-status (#FF indien ingedrukt)

           [12]   Lees muis/trackball in port 1
           [13]   Lees X-offset
           [14]   Lees Y-offset
           [15]   Geen functie (altijd #00)

           [16]   Lees muis/trackball in port 2
           [17]   Lees X-offset
           [18]   Lees Y-offset
           [19]   Geen functie (altijd #00)

Output : A  - Gelezen waarde
Wijzig.: Alles

Naam   : CHGMDP
Adres  : #01B5
Functie: Stelt SCREEn-modus in
Input  : A  - SCREEN-modus
Wijzig.: Alles

Naam   : RESVI
Adres  : #01B9
Functie: Wordt niet gebruikt.. Reserve entry

Naam   : KNJPRT
Adres  : #01BD
Functie: Zet een Kanji-teken op het grafische scherm (5-8)
Input  : BC - JIS Kanji-teken code
         A  - Display-mode (0=vol, 1=even, 2=oneven)
Wijzig.: AF

Naam   : REDCLK
Adres  : #01F5
Functie: Lees klok-RAM
Input  : C  - Klok-RAM adres
              xxBBAAAA
                ||++++-- Adres
                ++------ Blok-nummer
Output : A  - Gelezen waarde in de laagste vier bits
Wijzig.: F

Naam   : WRTCLK
Adres  : #01F9
Functie: Schrijf klok-RAM
Input  : C  - Klok-RAM adres
              xxBBAAAA
                ||++++-- Adres
                ++------ Blok-nummer
         A  - Te schrijven waarde
Wijzig.: F

    

Index

Vorige

Volgende