My MMSX 应用程序

过去几年来,我与来自萨尔瓦多巴特勒的教师胡安·卡洛斯一起在我的小学(ARCE)参加课外活动期间,学会了在Basic编程。

后来我买了一台MSX电脑(Sony Hit Bit 501P(Sony HB-501P)), 我们和一位朋友一起探索了机器的可能性, 花了整个下午的打字程序, 在当时的MSX杂志上写在纸上。

下一步,在接受我数学老师的挑战之后,是学习MSX组装语言(Z-80处理器)的课程。


我打算在网站上分享一些我当时编程的最好应用程序,

  • 笛子:我中学(I. B. Gabriel Ferrater)的竞赛计划,
  • 设计:一个图形设计师,设计他将来要编程的游戏的图形(Assembler Z-80)。
  • Zodia:太空船游戏,包括垂直滚动(Assembler Z-80)。
  • Habla:西班牙文文本到语音应用程序。 (Z-80组装和BASIC组合)。
  • 方块:我流行的俄方游戏版本(Assembler Z-80)。
  • 里士图:本该是一个迷宫游戏的种子, 受科南米的《加利乌斯的迷宫》的启发。 我失去了记忆... (在Assembler Z-80 ) 。
  • 我也分享Assembler应用程序的源代码, 以及我当天买回的Hisoft装配器, 我分享在下载的.cas文件(并非全部有效)中。


我还准备分享一些我对Wav2cas 指令线路界面应用程序的修改 文森特·范达姆编程

现在有一个可以选择的功能,将 wav2cas 处理的信号倾弃到 csv 上, 以及其他新的功能 。

我将分享一系列补充脚本与.cas合作, 或与Wav2cas信号样本的新.csv合作:

  • histogram.py :从样本中获得直方图值的脚本。
  • ..
  • 分裂_ msx_tapes_ into_ singulal_ files.py :将.cas文件拆分为.cas文件,以包含单个文件。处理 casdir 文件类型,加上 asm (HiSoft Assembler) 源文件。
  • ..
  • 提取_ msx_ sources.py :它允许您从.cas 文件( ascii 和 asm) 中提取每个源文件的. txt 文件。它效果不好,但它可以是一个开始。
  • ..

方案说明

image
image

Flauta程序是为参加我的中学(I. B. Gabriel Ferrater)的软件竞赛而创建的,当时我在中学一年级。

它旨在作为审查在笛子上播放每个音符的手指位置的应用程序。

此程序是一个以图形模式显示用户界面的借口 。

您可以看到程序工作的视频 演示视频

image
image

平面设计师(Diseña)的想法是拥有一个工具, 能够正确设计他将来要编程的游戏的图形。

它编程在Assembler Z-80。

经过两个月的紧张发展后,我完成了它的编程。

这是我编程的 最有利可图的程序 因为它很有用 也因为我用过很多次

用它,你可以设计演示屏幕、图案和游戏字符。

您可以看到程序工作的视频 演示视频


还有一张演示文稿 展示了我设计的最好的截图和图片 最佳屏幕视频

image
image

我编程了Zodia太空船游戏 灵感来自科南的滚动太空船游戏

它编程在Assembler Z-80。

它献给我的数学老师(J. R. M. - José Ramón Molina),

比赛在SCREEN 1上,图形比SCREEN 2轻。


让你知道事情是怎样的...

显然,在某个时候 玩家的得分必须打印出来...

这些数字或等于5月8日,或等于5月16日。

在记分牌上,我选择了五十六种类型(不超过65535)

要打印数字, 数字必须转换到 Base- 10, 我这样做的方式是除以 10 n 次, 使用模式和商数。

但是Z -80号在组装厂里没有任何关于 乘法或分法的指示!

嗯,这很简单... 我们分开,从红利的N时代中减去差价, 只要结果不溢出, 我们就会增加商数...

真俗气!

事情就是这样的...


有一段影片显示完整的滚动( 有一些错误) : 完整滚动视频


您可以看到程序工作的视频 演示视频

image

高中毕业后,我想再试一次 用集会语言的编程技巧。

目的是编程一个与MSX声音芯片相适应的合成器(有三个声音,并应用反动效果(快速改变(手工)每个按键音符的射频),并在键放出时关闭音符。

同时按下的三个合成器键(芯片的三个声音)的状态被记住。

我还想利用每个音符的频率,我在搜索时在MSX ROM的一个区域发现了硬编码。

为了进行搜索,我仅知道注A((调整叉)400赫兹的频率,并应用根十二分之2(2 (1/12))(一八、十二分方)的根十二因数。

然后在 ROM 中查找相应的元素, 加上 int16 型号 。


您可以看到程序工作的视频 演示视频

image

在我中学高年级和Teleco第一学年(1991年)的夏季,我在Salou的Argente理工学院紧张工作,担任服务员。

我往返搭公交车 在回家的路上 回家之前 我会在游乐场边玩几场精彩的俄亥俄州的游戏

经过60多场比赛后,我成为了一名专家, 我喜欢找到这场比赛, 当命运偶然带我到一个有街机的地方。


1992年,我决定以创纪录的三天时间,在Assembler Z-80和Assembler Z-80编程我版本的俄罗斯方块。

当时,我已经通过声音数字化(来自MSX磁带)调情了一点,在游戏的备用屏幕上,通过发言者播放了一首歌。 (开放MSX模拟器完全可以效仿细节)。


您可以看到程序工作的视频 演示视频

image

我不记得我第一次看到 将MMSX磁带的声音数字化的可能性

但我记得,我甚至不知道我采样的频率是多少...我只是把样本的延迟循环 放在数字化的样本之间, 和同样的延迟循环 通过发言者重播。

我发现,当延迟时间太长的时候,声音没有很好地再现。后来,我通过抽样理论了解到,这种效果被称为化名。


我从一个我喜欢的电视系列中 了解到电脑可以“发布”用户选择的句子。

因此,有了数字化的新玩具,我开始通过将我自己的声音数字化来获取所有电话。

下一步是翻阅一个句子的字母, 将其分成电话, 然后逐个发出每个电话。

是啊,有点俗气,但是它没有给更多...

我在Assembler Z-80应用程序中编程了西班牙语音规则,与用户互动,在BASIC中要求判刑。


使用 OpenMSX 模拟器,你可以完全模仿执行这个小程序。


您可以看到程序工作的视频 演示视频

image

在玩了无数小时的Galious迷宫之后, 我决定建立迷宫游戏,

这个程序又在Assembler Z-80。

我创建了屏幕(在一个 14 x 12 屏幕矩阵中), 以 4x4 字符块为基础, 这些字符块是像拼图一样组合在一起的 。

因此,一个屏幕占用了 5 x 8 = 40 字节,尽管必须加上固定的内存占用来定义 4 x 4 个区块。


我拯救了几个执行器 来改变这个角色 在世界各地, 尽管最完整的一个(“PERFEC”), 我无法让它工作 在模拟器。

我认为这与以下事实有关: 集会中的源代码占用了太多的空间, 与BASIC地区的数据冲突, 和组装者, 在那些条件下, 拒绝组装程序。

我记得有一天我不得不把 BASIC 记忆区移高(一些我不再记得的美妙的波克)。

没有它们,就不可能使执行工作奏效(尽管源代码在.cas中被正确提取)。


您可以看到程序工作的视频 演示视频

image

装配器是Assembler Z-80开发的基本部分。

我从他的脚下买下这道菜 并充分利用它 大量地利用它

还有一个监视器, 但我不知道如何让它工作...


在影片中,您可以看到一个与装配器师进行会话的例子。 演示视频

视频视频

下载下载