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 |