我的2020年纲要作品

5月22日至24日,举行了Demopati 2020在线投票,原定于今年5月举行,但出于所有已知原因推迟到10月。
我会说说我的工作


我不记得何时提请注意128字节的小型简介比赛,但是每年我都尝试参加。比赛的准备工作已经提前进行,到2020年,ZX Spectrum和Atari XE的计划已经制定,但后来计划改变了。我将从Apple II开始:

雇用步行




我喜欢这台计算机,它很吸引人,因为它将需要大量的精力来解决简单的问题。任务是:声音再现,磁盘操作,图形,SWEET-16解释器。
Apple II的图形有两种模式-分辨率为40x48、16色的LoRes和分辨率为280x192 6色的Hire。

研究屏幕的结构似乎很奇怪,可能是因为Wozniak在设计计算机时将其保存在所有可用芯片上的事实。对我来说,处理文本模式和LoRes很容易,但是HiRes模式是死胡同。屏幕上的任何操作都将需要代码部分,这些部分不允许简介适应128字节的大小。所以我决定使用现有程序作弊试一下这个想法很简单:画一条会留下痕迹的线。

任何写类似于乒乓球游戏的人都知道该算法。对于简介,您需要数据X1,dx1,dxe / Y1,dy1,dye。 X1,Y1-当前坐标,dx1,dy1确定运动方向,dxe,染料-设置坐标边界。使用此数据集,可以对一个坐标(X1,Y1),(X2,Y2)或第一条白线使用一个过程。

它仍有待追踪。这个想法本身就产生了:我编写了一个程序,在调试器中运行了16次,并获取了完成的数据-一对(X3,Y3)和(X4,Y4)会画一条黑线。事实证明,点(X1,Y1),(X2,Y2)沿着给定的轨迹移动,并且(X3,Y3),(X4,Y4)跟随它们,但是有一定的延迟。最后的工作-将必要的数据传输到地址0,由于零页的寻址,因此节省了代码的大小。

完美主义者会抱怨这条线没有碰到右角,但是我会准备好的借口。屏幕分辨率为280点,因此代码已更改为可处理16位数据,并且简介已从128字节增加到256字节。

Halfton




这是对先前工作的重拍,我决定通过纹理更改属性的输入。47个字节增加到128个,其余部分被纹理生成和显示占用。有一个缺点-简介很慢,但是您不能超过128个字节。

斯帕克斯




介绍的想法本身就来了,我决定编写代码并看看会发生什么。简介很简单-使用带有附加设置的标准文本模式。 Atari有一个图形模式GTIA,称为GRAPHICS9。顺便说一下,在BASIC中,您可以使用相同的模式。通过设置GRIOR存储位置(地址623)中的位6将其打开。在此模式下,字节的高字节和低字节被解释为颜色亮度的值(0-15)
。例如,程序(Turbo BASIC)
图片

工作的结果
图片

在文本模式下,编写POKE 623.64后,屏幕看起来像这样
图片

对于文本模式,字符看起来像亮度为0-15的矩形。

对于Atari,有ATASCII字符编码,表上的顺序
图片

但是,除了编码外,还有一个内部字符代码:
图片

在TurboBasic
POKE DPEEK(88),1
的左上角键入“!”。

该编号用于描述字体-8个字节的空格,后8个字节的“!”。在BASIC中,字体地址存储在单元格756(CHBAS)中,您需要将该值乘以256。此外,地址756是$ D409的阴影值。

为所选模式形成了字体:8个值$ 00、7个值$ 11..8个值$ FF。我们得到的字符的代码为0-15,亮度为0-15。

动作算法非常简单:如果遇到不等于0的代码,则逐行复制并将值减小1。

Smalevi4




工作是在开玩笑。我读了1977年8月BYTE杂志第2卷N8上的“ Serepindipitous Circles”文章,并决定尝试使用该代码。再次,一个简短的介绍48字节。我不想显示完成的作品,所以我更改了代码和绘图选项,以便绘制一个相似的图形,并在其中央有一个正方形。共128个字节。

ff 介绍简介的原理是否花费了介绍工作的时间?产生效果非常有趣,优化代码的大小也很有趣。尝试一下,如果可行,该怎么办?

All Articles