MILC logo

IndexVorigeVolgendeLeeg

Overzicht systeemadressen MSX2 en hoger
Onbekend, 00-00-00


    
              OVERZICHT SYSTEEMGEBIED-ADRESSEN VAN MSX2 EN HOGER


(Info uit o.a.: - DISKVAR2.TXT; auteur bij mij onbekend
                - MSX Club Magazine 44; De Disk Uitgediept; Ivo Wubbels & 
                  Falco Dam
                - MSX Machinetaalhandboek, Hans Klopper & Marcel le Belle)

LET OP! LATER HEB IK GEHOORD DAT DE SYSTEEMVARIABELEN VOOR DE DISKROM 
GEEN STANDAARD ZOUDENZIJN!!! IK WEET HIER VERDER OOK NIETS OVER. MAAR OP 
ANDERE COMPUTERS ZO HET SYSTEEMGEBIED ANDERS INGEDEELD ZIJN, EN MET DOS2 
IS ER HELEMAAL EEN HOOP WEG.


F197-F1AC          DPB (Drive Parameter Block) voor drive A:

F197       DRIVE    +00    Drive bij het dpb (0=A, 1=B, etc)
F198       ID       +01    Media ID byte (0F8h/0F9h)
F199/F19A  SECSIZ   +02/03 Sector size (200h = 512 byte)
F19B       DIRMSK   +04    (Directory registraties in 1 sector)-1
                           = (SECSIZ/32)-1
F19C       DIRSHFT  +05    Het aantal 1-bits in DIRMSK
F19D       CLUSMSK  +06    (Aantal sectoren per cluster)-1
F19E       CLUSSHFT +07    (Aantal 1-bits in CLUSMSK)+1
F19F/F1A0  FIRFAT   +08/09 Eerste sector van de FAT
F1A1       FATCNT   +0A    Aantal FATs
F1A2       MAXENT   +0B    Max. aantal directory registraties
F1A3/F1A4  FIRREC   +0C/0D Eerste sector van het DATA gebied
F1A5/F1A6  MAXCLUS  +0E/0F Het maximum aantal cluster
F1A7       FATSIZ   +10    Aantal sectoren per FAT
F1A8/F1A9  FIRDIR   +11    Eerste sector van de DIRectory
F1AA/F1AB  FATADR   +13/14 Adres van de FAT opslag in het RAM

F1AC-F1C0          DPB drive B (zie boven)

F1C1               Diskdrive afslag teller (00=Uit. Door deze op 01 te zetten
                    en de hook 0FD9Fh aan te roepen, wordt de diskdrive uit
                    gezet, omdat de teller dan 00 wordt)
F1C2               Idem, sub-teller
F1C3               Idem, sub-teller
F1C4               Actieve hardwarematige drive
F1C5               Laatste track-positie van drive A voor de wisseling met 
                    drive B
F1C6               Idem maar dan van drive B voor de wisselling met drive A
F1C7               Actieve logische drive
F1C8               Aantal drives hardwarematig aanwezig

F1C9-F1D8          ML-routine: Print tekst in [DE] tot '$'.
                    Deze functie komt overeen met BDOS functie nummer 9
F1D9-F1E1          ML: Verplaats data naar RAM onder de ROM 
                    (In: HL, DE, BC)
F1E2-F1E7          ML: Spring naar adres voor Abort (Abort,Retry Ignore)
                        Naar dit adres (in F2E6/7) wordt direct gesprongen 
                        nadat de Abort optie gekozen is. Dit kan door bij de 
                        MSXDOS vraag 'Abort, Retry or Ignore?' de A te kiezen. 
                        Als de disk-error-handler afgebogen is naar een eigen 
                        programma, dan gebeurt deze jump nadat een C=2 
                        (=abort) terug is gegeven.
F1E8-F1F3          ML: JP (HL) naar een routine in het RAM.
                    (In: HL)
F1F4-F1F6          ML: Check filename (HL=pointer). Wordt opgeslagen op [DE,->)

F1F7-F20A          Device names: "PRN LST NUL AUX CON "
F20B-F215          Opslag van filenaam+ extensie (11 bytes)
F216               Ge-NEG-t device nummer. PRN=-5, LST=-4 ... CON=-1

F221               Ge-pack-te datum veld uit het fcb van de gevonden file
F223               Ge-pack-te tijd veld uit het fcb van de gevonden file

F22B-F236          Aantal dagen van elke maand van dit jaar
F237-F23A          Variabelen van BUFINP (BDOS functiU 10)
F23B               <>0: Uitvoer niet naar scherm maar naar printer
F23D/F23E          Huidig DMA adres
F23F-F242?         Sector nummer
F243/F244          DPB adres van de huidige drive
F245               Current sector inside directory (0-based)
F246               Drive van de current directory
                     Deze variabelen worden gebruikt door de Search first en
                     Search next routines
F247               Default drive 0=A, 1=B etc.
F248               Dag
F249               Maand
F24A/F24B          Jaar - 1980
F24C/F24D          Tijd
F24E               Dag van de week

F24F-F2B7  HOOKADRESSEN (alle 3 bytes lang):
F24F-F251  (625A)  Komt van "Insert disk for drive" routine;
                    heeft de drive in CHAR vorm (41h = "A")
F252-F254  (41FA)  ?
F255-F257  (425A)  Van de fix-filename routine.
F258-F25A  (42BC)  Wordt door een aantal routines aangeroepen.
                    Hiermee kan F2DC aangepast worden om bijvoorbeeld onder
                    basic sub-dirs te zien in FILES of hidden files te kunnen
                    openen.
F25B-F25D  (4317)  Wordt door de DIRENT increase routine aangeroepen. Vlak
                    hierna wordt de nieuwe DIRENT opgeslagen (nu in [AF]).
F25E-F260  (4348)  Wordt aangeroepen door de routine die de volgende directory
                    sector gaat inladen.
F261-F263  (440E)  Van Fix filename routine
F264-F266  (4471)  Van de OPEN routine
F267-F269          ?
F26A-F26C  (4553)  Van de GETDPB routine
F26D-F26F  (45CF)  Vanuit de CLOSE routine
F270-F272  (46C5)  DISKREAD        [HL]=DMA
                   Lees sector     [DE]=Sector
                   BDOS:2Fh         [B] =Aantal sectoren
F273-F275  (470A)  ?
F276-F278  (4748)  ?
F279-F27B  (4755)  DISKWRT         [HL]=DMA
                   Schrijf sector  [DE]=Sector
                   BDOS:30h        [B] =Aantal sectoren
F27C-F27E  (4916)  Van de HL=DE*BC routine
F27F-F281  (492F)  Van de BC=BC/DE; HL=rest routine
F282-F284  (4989) ?
F285-F287  (49B1) ?
F288-F28A  (4A36) ?
F28B-F28D  (4A46) ?
F28E-F290  (4B56) ?
F291-F293  (4BE2) ?
F294-F296  (4C22) ?
F297-F299  (4C97) ?
F29A-F29C  (4D05) ?
F29D-F29F  (4D8C) ?
F2A0-F2A2  (4E48) ?
F2A3-F2A5  (4EDB) ?
F2A6-F2A8  (4F12) ?
F2A9-F2AB  (4F9E) ?
F2AC-F2AE  (5104) Van BUFINP (BDOS 10), vlak voor de DIRIN2 call (BDOS 02)
F2AF-F2B1  (53A8) Wordt aan het begin van de CONOUT routine aangeroepen.
F2B2-F2B4  (5496) ?
F2B5-F2B7  (5523) Van de februari = 28/29 dagen bereken routine

F2B8       DIRENT  Huidige entry in de directory
F2B9-F2C3          Filenaam van laatst gebruikte file (evt. met wildcards)
F2C4               Attribuut
                    Als bit 7 hiervan geSET is, kunnen ook de files met een 
                    niet-normal attribuut worden geopend. Deze kan geset 
                    worden door bij de BDOS open routine al bit 7 te SETten 
                    van het drive byte. (=FCB+0)

F2CF/F2D0          Tijd
F2D1/F2D2          Datum
F2D3/F2D4          Eerste cluster (bij de eerste file is dat altijd 2)
F2D5-F2D8          File grootte

F2DC               <>0: files met een niet-0 attribuut worden ook geaccepteerd
                        (F2C4 bit 7 gaat voor !)
F2E1               Current drive voor absolute disk read/write
F2FE               Net zoals F2B8, subcounter
F304/F305          Store Stack Pointer
F306               Default drive van MSXDOS
F307/F308          Opslag van DE (=FCB pointer) als [C]>11 bij de BDOS call
F309/F30A          Opslag van het DPB adres door Search first en next
F30B/F30C?         Current Directory entry bij Search.
F30D               Verify flag (0=uit)
F30E               Datum opbouw (0 = YYMMDD, 1 = MMDDYY, 2 = DDMMYY)
F30F-F312          Worden gebruikt door KANJI

F323/F324  ERRADR  Adres waar naar toewordt gesprongen als een error optreedt
F325/F326  CTRLCAD  "                              "   bij CTRL/C 

F327-F329  Cursor positie  Wordt door de AUXINP gebruikt.
                             Er staat dan LD A,^Z;  RET
F32A/F32B          ? (soort hook)
F32C-F330          JP van AUXOUT (hook)
F331-F335          Uitvoer van BDOS (hook met RST 30- instruktie)
F336/F337          Toetsenbord controle.
                    F336<>0     -> F337 heeft een teken
                    Beide op 03 -> CTRL-STOP ingedrukt
                    Voor sommige routines: F336<>0 -> ^S mogelijk
F338               <>0: klokchip aanweig
F339/F33A          Opslag SP bij aanroep input-current-date routine (diskrom)
F33B/F33C          Opslag HL bij aanroep aanroep clockchip routine

F340       REBOOT  0: Bij booten DOS wordt AUTOEXEC opgestart en dit adres
                   op 1 gezet.
F341-F344          Voor elke page: slotcodes voor RAM (huidige Mapper)
                    (Zijn alleen goed ingevuld als er een DiskROM
                     aanwezig is)
F345               Wordt gebruikt voor de bepaling van het aantal vrije
                    buffers (x 025h)
F346               Met DOS doorgestart? (=mag CALL SYSTEM ? NZ->Ja, Z->Nee)
F347               Totaal aantal logische drives 
                    (wordt o.a. door CALL FORMAT gebruikt)
F348               Slot ID van de DISKROM (hier:3-3)
F349/F34A  HIGHMEM Alles vanaf hier tot en met F37F is door de diskrom gebruikt.
F34B/F34C          CLEAR grens MSXDOS. Dit adres wijst onder MSXDOS altijd naar
                    het begin van MSXDOS. COMMAND.COM wordt vanaf dit adres
                    ingeladen.
F34D/F34E          Pointer naar een gebied voor tijdelijke FAT sector opslag.
F34F/F350          Pointer naar een gebied voor tijdelijke DATA sector opslag.
F351/F352          Pointer naar een gebied voor tijdelijke DIR. sector opslag.
                    (Dit is ook het adres waar sector terechtkomt bij DSKI$/
                     DSKO$?)
F355-F364          Adres van het DPB van drive A: t/m H:

F365-F367          IN A,(0A8H); RET
F368-F36A  ROMUSE  Schakelt de DISKROM aan onder page 1.
                    Werkt alleen tijdens DOS
F36B-F36D  RAMUSE  Schakelt de RAM aan onder page 1. Werkt alleen tijdens DOS
F36E-F370          Verplaats ROM naar RAM (In: HL/DE/BC als bij LDIR).
                    Alleen onder DOS
F371-F373  AUXINP  Aux device input. Wordt hier afgebogen naar een routine de
                    ^Z terug geeft in [AF]
F374-F376  AUXOUT  Aux device output. Wordt hier afgebogen naar een RET.
F377-F379          Jump naar Bload-routine
F37A-F37C          Jump naar Bsave-routine
F37D-F37F          Jump naar BDOS-routine

F9C0-F9E6          MSX-Music registers 
                   (? heb ik ergens gelezen. Maar volgens mij klopt het niet.
                   Bij MSX1: VOICAQ = queue voor 1e PSG-kanaal)

FAF5       DPPAGE  Display schermpagina
FAF6       ACPAGE  Actieve schermpagina
FAF7       AVCSAV  AV control port save     =?
FAF8       EXBRSA  Slotadres voor subrom
FAF9       CHRCNT  Karakterteller voor kana-rom  =?
FAFA/FAFB  ROMA    Karaktersave voor kana        =?
FAFC       MODE    mode switch/grootte van VRAM  =?
FAFD      gereserveerd
FAFE/FAFF  XSAVE   X-coordinaat van muis/trackball/lichtpen
FB00/FB01  YSAVE   Y-coordinaat van muis/trackball/lichtpen
FB02       LOGOPR  Logische operatie kode (laagste 4 bits)

FB03-FB1F: Datagebied voor RS232:
FB03       TOCNT
FB04/FB05  RSFCB   Adres
FB06       RSIQNLL
FB07-FB0B  MEXBIH  Interslot-call (RST 30H)
FB11-FB15  OLDINT   "                "
FB16       DEVNUM
FB17-FB19  DATCNT
FB1A       ERRORS
FB1B       FLAGS
FB1C       ESTBLS
FB1D       COMMSK
FB1E       1STCOM
FB1F       1STMOD
FB21               Aantal drives aangesloten op 1e interface
FB22               Slot ID van 1e interface
FB23/FB24          idem 2e interface
FB25/FB26          idem 3e interface
FB27/FB28          idem 4e interface
(Bij MSX1 was het gebied FAF5-FB34: RS2IQ = queue voor RS232-data)

FFCF-FFD8          Twee extra hooks op MSX2(+?)

FFE7-FFF6          Inhoud VDP-registers 8-23
FFFA-FFFC          Inhoud VDP-registers 25-27

    

Index

Vorige

Volgende