Skip to content

satgo1546/satisfied

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

95 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

极度舒适

我就烂死!爽啦!

挖坑不填中

satisfied
Windows,IA-32,在PATH中的NASM和Go。目标是29年间的窗明几净。顺带一提,这大概是第1546个带有lightweight话题的GitHub存储库。
TRPG
桌上复古编程游戏(Tabletop Retro-Programming Game)的简称,显然并没有人接受这一简称。跟多数桌上游戏不同,TRPG本质上并不是一种对战游戏,其根本目的是构造合适的指令序列,并在达成目的的同时优化代码的一个或多个方面。当代绝大多数TRPG规则都晦涩繁重,如主流的AMD64规则书分为五卷,总计超过三千页。
something.asm
几乎全手写的垃圾汇编,抄来的代码都作了标注。优化的目标既不是速度又不是大小,而是指令和宏的多样性。不过如果当真做到了极致的话很快就会受不了的吧。
slzprog.go
贼蠢的链接器,除了把PE头、代码、Win32资源贴在一起之外什么都不会,甚至不支持.rdata段。大部分代码是抄来的,也同样作了标注。
gen.go
静态单赋值形式的数据结构定义兼x86又臭又长代码生成后端。
hilevel.go
抽象语法树,同时负责编译到中间代码。这些编译器组件的详细信息参照网站上的说明。
run_test.go
只有一项测试的“单元测试”,用来代替构建脚本。既然“测试一下”指的总是执行那些命令,输出的总是同一个结果,不如就套用上Go内置的测试解决方案吧。
README.md
Markdown的表现力不足以表达当前这个定义列表,它是用HTML语法插入的。行内代码不应被过度使用。中西文间不用加空格,(好,好,)那你装浏览器插件啊
Shields.io
GitHub repo size GitHub top language

It works! The screenshots below show the executable running on Windows NT 3.51 and Windows 10, versions that were released more than twenty years apart. For some reason, I find this extremely satisfying. (Perhaps in this sense, our executable is a lot more universal than programs using the newfangled Universal Windows Platform model?)

Othello for Desktop, Mobile and Web: an AI and GUI Exercise

One of the reasons why I love working with a lot of these old technologies, is that I want any software work I'm involved in to stand the test of time with minimal toil. Similar to how the Super Mario Bros ROM has managed to survive all these years without needing a GitHub issue tracker.

I believe the best chance we have of doing that, is by gluing together the binary interfaces that've already achieved a decades-long consensus, and ignoring the APIs. For example, here are the magic numbers used by Mac, Linux, BSD, and Windows distros. They're worth seeing at least once in your life, since these numbers underpin the internals of nearly all the computers, servers, and phones you've used.

If we focus on the subset of numbers all systems share in common, and compare it to their common ancestor, Bell System Five, we can see that few things about systems engineering have changed in the last 40 years at the binary level. Magnums are boring. Platforms can't break them without breaking themselves. Few people have proposed visions over the years on why UNIX numerology needs to change.

αcτµαlly pδrταblε εxεcµταblε