Skip to content

[theNestruo] MSX system variables not include .bios directive #3

@ghost

Description

From: Libertium/asmsx-license-gpl#4


What steps will reproduce the problem?

  1. Use .bios directive
  2. Try to reference MSX system variables by name (e.g.: CGTABL ($0004), CLIKSW
    ($f3db), FORCLR ($f3e9), HIMEM ($fc4a), ...)

What is the expected output? What do you see instead?
Expected: Symbols are defined, the source compiles.
Actual results: Symbols are not defined, the source doesn't compile.

What version of the product are you using? On what operating system?
asMSX v0.16 WIP / v0.17 WiP, Windows 7 Starter.

Please provide any additional information below.
Although workaround this problem is trivial (just declare the vars needed using
equ), it would be nice to have those symbols defined with the .bios directive,
as they are part of the BIOS, or are used by the BIOS calls.

I don't know if var names are standard, or if the names are official. Anyway,
here are some listings:


Suggested patch:
Append these to the current msx_bios() code (located at dura.y#1017):
(...)
/* MSX System Variables located in Main ROM /
registrar_simbolo("CGTABL", 0x0004, 0);
registrar_simbolo("VDP_DR", 0x0006, 0);
registrar_simbolo("VDP_DW", 0x0007, 0);
registrar_simbolo("MSXID1", 0x002b, 0); /
not standard name /
registrar_simbolo("MSXID2", 0x002c, 0); /
not standard name /
registrar_simbolo("MSXID3", 0x002d, 0); /
not standard name /
/
MSX System Variables located in RAM */
registrar_simbolo("RDPRIM", 0xf380, 0);
registrar_simbolo("WRPRIM", 0xf385, 0);
registrar_simbolo("CLPRIM", 0xf38c, 0);
registrar_simbolo("LINL40", 0xf3ae, 0);
registrar_simbolo("LINL32", 0xf3af, 0);
registrar_simbolo("LINLEN", 0xf3b0, 0);
registrar_simbolo("CRTCNT", 0xf3b1, 0);
registrar_simbolo("CLMLST", 0xf3b2, 0);
registrar_simbolo("TXTNAM", 0xf3b3, 0);
registrar_simbolo("TXTCOL", 0xf3b5, 0);
registrar_simbolo("TXTCGP", 0xf3b7, 0);
registrar_simbolo("TXTATR", 0xf3b9, 0);
registrar_simbolo("TXTPAT", 0xf3bb, 0);
registrar_simbolo("T32NAM", 0xf3bd, 0);
registrar_simbolo("T32COL", 0xf3bf, 0);
registrar_simbolo("T32CGP", 0xf3c1, 0);
registrar_simbolo("T32ATR", 0xf3c3, 0);
registrar_simbolo("T32PAT", 0xf3c5, 0);
registrar_simbolo("GRPNAM", 0xf3c7, 0);
registrar_simbolo("GRPCOL", 0xf3c9, 0);
registrar_simbolo("GRPCGP", 0xf3cb, 0);
registrar_simbolo("GRPATR", 0xf3cd, 0);
registrar_simbolo("GRPPAT", 0xf3cf, 0);
registrar_simbolo("MLTNAM", 0xf3d1, 0);
registrar_simbolo("MLTCOL", 0xf3d3, 0);
registrar_simbolo("MLTCGP", 0xf3d5, 0);
registrar_simbolo("MLTATR", 0xf3d7, 0);
registrar_simbolo("MLTPAT", 0xf3d9, 0);
registrar_simbolo("CLIKSW", 0xf3db, 0);
registrar_simbolo("CSRY", 0xf3dc, 0);
registrar_simbolo("CSRX", 0xf3dd, 0);
registrar_simbolo("CNSDFG", 0xf3de, 0);
registrar_simbolo("RG0SAV", 0xf3df, 0);
registrar_simbolo("RG1SAV", 0xf3e0, 0);
registrar_simbolo("RG2SAV", 0xf3e1, 0);
registrar_simbolo("RG3SAV", 0xf3e2, 0);
registrar_simbolo("RG4SAV", 0xf3e3, 0);
registrar_simbolo("RG5SAV", 0xf3e4, 0);
registrar_simbolo("RG6SAV", 0xf3e5, 0);
registrar_simbolo("RG7SAV", 0xf3e6, 0);
registrar_simbolo("STATFL", 0xf3e7, 0);
registrar_simbolo("TRGFLG", 0xf3e8, 0);
registrar_simbolo("FORCLR", 0xf3e9, 0);
registrar_simbolo("BAKCLR", 0xf3ea, 0);
registrar_simbolo("BDRCLR", 0xf3eb, 0);
registrar_simbolo("MAXUPD", 0xf3ec, 0);
registrar_simbolo("MINUPD", 0xf3ef, 0);
registrar_simbolo("ATRBYT", 0xf3f2, 0);
registrar_simbolo("QUEUES", 0xf3f3, 0);
registrar_simbolo("FRCNEW", 0xf3f5, 0);
registrar_simbolo("SCNCNT", 0xf3f6, 0);
registrar_simbolo("REPCNT", 0xf3f7, 0);
registrar_simbolo("PUTPNT", 0xf3f8, 0);
registrar_simbolo("GETPNT", 0xf3fa, 0);
registrar_simbolo("CS120", 0xf3fc, 0);
registrar_simbolo("CS240", 0xf401, 0);
registrar_simbolo("LOW", 0xf406, 0);
registrar_simbolo("HIGH", 0xf408, 0);
registrar_simbolo("HEADER", 0xf40a, 0);
registrar_simbolo("ASPCT1", 0xf40b, 0);
registrar_simbolo("ASPCT2", 0xf40d, 0);
registrar_simbolo("ENDPRG", 0xf40f, 0);
registrar_simbolo("ERRFLG", 0xf414, 0);
registrar_simbolo("LPTPOS", 0xf415, 0);
registrar_simbolo("PRTFLG", 0xf416, 0);
registrar_simbolo("NTMSXP", 0xf417, 0);
registrar_simbolo("RAWPRT", 0xf418, 0);
registrar_simbolo("VLZADR", 0xf419, 0);
registrar_simbolo("VLZDAT", 0xf41b, 0);
registrar_simbolo("CURLIN", 0xf41c, 0);
registrar_simbolo("EXBRSA", 0xfaf8, 0);
registrar_simbolo("PRSCNT", 0xfb35, 0);
registrar_simbolo("SAVSP", 0xfb36, 0);
registrar_simbolo("VOICEN", 0xfb38, 0);
registrar_simbolo("SAVVOL", 0xfb39, 0);
registrar_simbolo("MCLLEN", 0xfb3b, 0);
registrar_simbolo("MCLPTR", 0xfb3c, 0);
registrar_simbolo("QUEUEN", 0xfb3e, 0);
registrar_simbolo("MUSICF", 0xfb3f, 0);
registrar_simbolo("PLYCNT", 0xfb40, 0);
registrar_simbolo("VCBA", 0xfb41, 0);
registrar_simbolo("VCBB", 0xfb66, 0);
registrar_simbolo("VCBC", 0xfb8b, 0);
registrar_simbolo("ENSTOP", 0xfbb0, 0);
registrar_simbolo("BASROM", 0xfbb1, 0);
registrar_simbolo("LINTTB", 0xfbb2, 0);
registrar_simbolo("FSTPOS", 0xfbca, 0);
registrar_simbolo("CODSAV", 0xfbcc, 0);
registrar_simbolo("FNKSWI", 0xfbcd, 0);
registrar_simbolo("FNKFLG", 0xfbce, 0);
registrar_simbolo("ONGSBF", 0xfbd8, 0);
registrar_simbolo("CLIKFL", 0xfbd9, 0);
registrar_simbolo("OLDKEY", 0xfbda, 0);
registrar_simbolo("NEWKEY", 0xfbe5, 0);
registrar_simbolo("KEYBUF", 0xfbf0, 0);
registrar_simbolo("BUFEND", 0xfc18, 0);
registrar_simbolo("LINWRK", 0xfc18, 0);
registrar_simbolo("PATWRK", 0xfc40, 0);
registrar_simbolo("BOTTOM", 0xfc48, 0);
registrar_simbolo("HIMEM ", 0xfc4a, 0);
registrar_simbolo("TRPTBL", 0xfc4c, 0);
registrar_simbolo("RTYCNT", 0xfc9a, 0);
registrar_simbolo("INTFLG", 0xfc9b, 0);
registrar_simbolo("PADY", 0xfc9c, 0);
registrar_simbolo("PADX", 0xfc9d, 0);
registrar_simbolo("JIFFY", 0xfc9e, 0);
registrar_simbolo("INTVAL", 0xfca0, 0);
registrar_simbolo("INTCNT", 0xfca2, 0);
registrar_simbolo("LOWLIM", 0xfca4, 0);
registrar_simbolo("WINWID", 0xfca5, 0);
registrar_simbolo("GRPHED", 0xfca6, 0);
registrar_simbolo("ESCCNT", 0xfca7, 0);
registrar_simbolo("INSFLG", 0xfca8, 0);
registrar_simbolo("CSRSW", 0xfca9, 0);
registrar_simbolo("CSTYLE", 0xfcaa, 0);
registrar_simbolo("CAPST", 0xfcab, 0);
registrar_simbolo("KANAST", 0xfcac, 0);
registrar_simbolo("KANAMD", 0xfcad, 0);
registrar_simbolo("FLBMEM", 0xfcae, 0);
registrar_simbolo("SCRMOD", 0xfcaf, 0);
registrar_simbolo("OLDSCR", 0xfcb0, 0);
registrar_simbolo("CASPRV", 0xfcb1, 0);
registrar_simbolo("BRDATR", 0xfcb2, 0);
registrar_simbolo("GXPOS", 0xfcb3, 0);
registrar_simbolo("GYPOS", 0xfcb5, 0);
registrar_simbolo("GRPACX", 0xfcb7, 0);
registrar_simbolo("GRPACY", 0xfcb9, 0);
registrar_simbolo("DRWFLG", 0xfcbb, 0);
registrar_simbolo("DRWSCL", 0xfcbc, 0);
registrar_simbolo("DRWANG", 0xfcbd, 0);
registrar_simbolo("RUNBNF", 0xfcbe, 0);
registrar_simbolo("SAVENT", 0xfcbf, 0);
registrar_simbolo("EXPTBL", 0xfcc1, 0);
registrar_simbolo("SLTTBL", 0xfcc5, 0);
registrar_simbolo("SLTATR", 0xfcc9, 0);
registrar_simbolo("SLTWRK", 0xfd09, 0);
registrar_simbolo("PROCNM", 0xfd89, 0);
registrar_simbolo("DEVICE", 0xfd99, 0);
}

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions