From: Libertium/asmsx-license-gpl#4
What steps will reproduce the problem?
- Use .bios directive
- 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);
}
From: Libertium/asmsx-license-gpl#4
What steps will reproduce the problem?
($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);
}