Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Assembly 如何在VASM Z80组件中为32K MSX-1盒带存储ROM盒带?_Assembly_Z80_Cartridge - Fatal编程技术网

Assembly 如何在VASM Z80组件中为32K MSX-1盒带存储ROM盒带?

Assembly 如何在VASM Z80组件中为32K MSX-1盒带存储ROM盒带?,assembly,z80,cartridge,Assembly,Z80,Cartridge,这个问题是关于旧MSX计算机上的z80和盒式ROM存储 我正在PC上制作一个MSX游戏,并使用openMSX进行仿真和测试。我正在制作一个32K ROM盒带。MSX标准将此32 ROM内存划分为两个16K页。我的基本问题是如何在MSX-1计算机上使用ROM盒带存储?-MSX插槽扩展和内存存储描述很复杂-我只想在我的盒带场景中使用一个简单的示例。基本上,我想使用ROM银行画两个不同的图像在MSX屏幕2从墨盒每个图像约12K,所以每个图像需要一个16K的ROM银行自己的墨盒 我现在将更详细地描述这个

这个问题是关于旧MSX计算机上的z80和盒式ROM存储

我正在PC上制作一个MSX游戏,并使用openMSX进行仿真和测试。我正在制作一个32K ROM盒带。MSX标准将此32 ROM内存划分为两个16K页。我的基本问题是如何在MSX-1计算机上使用ROM盒带存储?-MSX插槽扩展和内存存储描述很复杂-我只想在我的盒带场景中使用一个简单的示例。基本上,我想使用ROM银行画两个不同的图像在MSX屏幕2从墨盒每个图像约12K,所以每个图像需要一个16K的ROM银行自己的墨盒

我现在将更详细地描述这个问题。我想使用链接中的位图模拟代码,取自chibiakumas.com网站,它使用屏幕2中的所有3个瓷砖库,让MSX 1为一个游戏加载多个背景屏幕。我想这只是一个简单的直接扩展。我将描述一个简单的扩展,我尝试过-但它不工作-我认为,因为ROM需要使用16K的银行

使用的文件是

起点是chibiakumas.com程序末尾附近给出的原始代码行,我刚刚给出了下面的相关行,而不是整个程序(尽管链接中有)以供清晰阅读。使用的屏幕图像是chibiakumas.com上的图像)

我扩展了上面的原始代码(我指的是chibiakumas.com上的原始代码),在上面的原始代码行之后添加了下面的代码行

TestSprite2:
incbin "C:\screens\MSX1Screen.RAW"
TestSprite2End:

TestSprite2Palette:
incbin "C:\screens\MSX1Screen.RAW.COL"
TestSprite2Palette_End:
此代码有效,并显示代码的屏幕截图(“WorkingCode-Sprite2codeafteroriginalcode.png的屏幕截图”)并显示预期的图像 连同asm代码(“工作代码-Sprite2codeafteroriginalcode”)

但是,当我做了一个非常简单的改变,交换代码的顺序,这样sprite 2代码就不会出现在后面,如下所示-代码不会加载屏幕(它是相同的屏幕或预期的图像),请参见屏幕截图(“非工作代码的屏幕截图-Sprite2code not afteroriginalcode”)及其代码(“非工作代码-Sprite2codeNOTafteroriginalcode”) 两个屏幕/图像都相同(但如果代码确实起作用,则只需更换其中一个屏幕,通过交换代码顺序加载两个不同的屏幕)


我认为它不起作用,因为要使用ROM银行。

在这个问题上,你可能会有更好的运气。
TestSprite2:
incbin "C:\screens\MSX1Screen.RAW"
TestSprite2End:

TestSprite2Palette:
incbin "C:\screens\MSX1Screen.RAW.COL"
TestSprite2Palette_End:
TestSprite2:
incbin "C:\screens\MSX1Screen.RAW"
TestSprite2End:

TestSprite2Palette:
incbin "C:\screens\MSX1Screen.RAW.COL"
TestSprite2Palette_End:

TestSprite:
incbin "C:\screens\MSX1Screen.RAW"
TestSpriteEnd:

TestSpritePalette:
incbin "C:\screens\MSX1Screen.RAW.COL"
TestSpritePalette_End: