您仍然使用哪些古老的守旧学校代码?
最近几天请病假,我实在是太无聊了,所以我决定尝试挖掘一些旧代码。 我可以找到我写的一些古老的 Atari ST 内容的二进制版本,但我找不到任何来源。 我确实设法从传奇的旧 x2ftp 站点的存档中挖掘出许多个月前我在 ASM 中编写的旧 ModeX 库:
http://ftp.lanet.lv/ftp/mirror/x2ftp/msdos
过去的爆炸:-)
; Actually Sticks Us Into ModeX - With 240 Scanlines Per Page
; Set The Variable LSCAN To The Virtual Scanline Length You Want
; Trashes AX, CX, DX, DS, SI
; Shouldn't Matter Though As This Should Be The First Thing You Call!
Set_X_240 PROC
Call Set_Graph ; Set Mode 13h
mov dx, Seq_Port
mov ax, 00604h ; Index 4 (Memory Mode Reg.) In AL
; Bit 3 = Chain 4
out dx, ax ; Kill Chain 4 Mode
mov ax, 00100h ; Index 0 (Reset Reg.) In AL
out dx, ax ; Reset Syncronous (At End Of Cycle)
dec dx ; Change Port
dec dx ; To Misc. S--t Port :)
mov al, 11100011b
out dx, al ; Sets 480 Line Mode, 25Mhz Dot Clock
inc dx ; Change Port
inc dx ; Back To Sequencer Port
mov ax, 00300h
out dx, ax ; Restart Controller
mov dx, Crtc_Port
mov al, 011h
out dx, al ; Select Index 11h (Vert.Retrace End)
inc dx ; Data Port
in al, dx ; Read In Current Bit Mask
and al, 07Fh ; 01111111 - Clear Top Bit (Write Protect)
out dx, al ; Un-Write Protect Index 0-7 Of CRTC Reg.
dec dx ; Restore Port To Index
mov ax, seg CRTC_Data_240 ; Address Of Our CRTC Data
mov ds, ax
mov si, offset CRTC_Data_240
mov cx, LCRTC_Data_240 ; Length Of Data
repz outsw ; Chuck It At The Port
mov ax, lscan
shr ax, 3 ; Number Of Words Per Scan Line
mov ah, al ; Into AH
mov al, 013h ; Port Index 013h - Logical Screen Width
out dx, ax
mov NScan, 240
Call Set_Pages
ret
Set_X_240 ENDP
还有人想让自己看起来很老并发布一些旧学校代码吗? :-) 很遗憾我还没有任何 68000 ASM 的东西,尽管我现在可能都认不出它了!
啊..回忆:-)
Having been bored out of my brains the last few days off work sick, I decided to try and dig up some old code. I could find some binary versions of some ancient Atari ST stuff I wrote, but I couldn't find any source. I did manage to dredge up an old ModeX library I wrote in ASM many moons ago from an archive of the legendary old x2ftp site:
http://ftp.lanet.lv/ftp/mirror/x2ftp/msdos
Blast from the past :-)
; Actually Sticks Us Into ModeX - With 240 Scanlines Per Page
; Set The Variable LSCAN To The Virtual Scanline Length You Want
; Trashes AX, CX, DX, DS, SI
; Shouldn't Matter Though As This Should Be The First Thing You Call!
Set_X_240 PROC
Call Set_Graph ; Set Mode 13h
mov dx, Seq_Port
mov ax, 00604h ; Index 4 (Memory Mode Reg.) In AL
; Bit 3 = Chain 4
out dx, ax ; Kill Chain 4 Mode
mov ax, 00100h ; Index 0 (Reset Reg.) In AL
out dx, ax ; Reset Syncronous (At End Of Cycle)
dec dx ; Change Port
dec dx ; To Misc. S--t Port :)
mov al, 11100011b
out dx, al ; Sets 480 Line Mode, 25Mhz Dot Clock
inc dx ; Change Port
inc dx ; Back To Sequencer Port
mov ax, 00300h
out dx, ax ; Restart Controller
mov dx, Crtc_Port
mov al, 011h
out dx, al ; Select Index 11h (Vert.Retrace End)
inc dx ; Data Port
in al, dx ; Read In Current Bit Mask
and al, 07Fh ; 01111111 - Clear Top Bit (Write Protect)
out dx, al ; Un-Write Protect Index 0-7 Of CRTC Reg.
dec dx ; Restore Port To Index
mov ax, seg CRTC_Data_240 ; Address Of Our CRTC Data
mov ds, ax
mov si, offset CRTC_Data_240
mov cx, LCRTC_Data_240 ; Length Of Data
repz outsw ; Chuck It At The Port
mov ax, lscan
shr ax, 3 ; Number Of Words Per Scan Line
mov ah, al ; Into AH
mov al, 013h ; Port Index 013h - Logical Screen Width
out dx, ax
mov NScan, 240
Call Set_Pages
ret
Set_X_240 ENDP
Anyone else want to make themselves look old and post some old school code? :-) It's a shame I don't have any of my 68000 ASM stuff still, although I probably wouldn't even recognise it now!
Ahh.. memories :-)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(7)
有一船旧的 Atari 8 位 BASIC 和 Atari ST 的东西(我仍然有 ST,但它没有联网,所以我很少使用它)。
我曾经输入过 David Ahl 的《BASIC Computer Games: Microcomputer Edition》中的大部分游戏,并将它们移植到 8 位和 ST BASIC 上。
我有点想将这些旧游戏移植到Processing/Arduino,以获得老式的乐趣。
Have a boatload of old Atari 8-bit BASIC and Atari ST stuff from way back (I still have the ST, but it's not networked so I hardly ever use it).
I once typed in most of the games from David Ahl's "BASIC Computer Games: Microcomputer Edition", porting them to both the 8-bit and ST BASIC.
I am half-tempted to port those old games to Processing/Arduino, for old-school kicks.
我有一个 MUD,是我在 1990-1993 年大学期间编写和维护的。 都是C。那是迪酷MUD的一个衍生品,叫SillyMUD,是我当时的骄傲和喜悦。
您仍然可以在 Intertubes 上到处找到该代码。
I have a MUD I wrote and maintained during college, back in 1990-1993. All C. It was a derivation of Diku MUD called SillyMUD, and it was my pride and joy at the time.
You can still find the code on the Intertubes, here and there.
我在 1998 年编写的一些绝对糟糕的 Perl 代码仍在某个网站上使用...
我所说的糟糕是指其中没有
use strict;
,也没有my
...Some absolutely terrible Perl code I wrote in 1998 is still in use on a certain website...
By terrible, I mean no
use strict;
, nomy
s anywhere in it...我从 Atari ST 获得的大部分代码都在 GFA-Basic 中,我不想碰那些布满灰尘的软盘。
Most of the code I had from the Atari ST was in GFA-Basic, I wouldn't want to touch those dusty floppies.
来自旧的 EISPACK Fortran 例程:
from an old EISPACK Fortran routine:
我们有一个测试工具,最初是为在 Windows 3.1 上运行而编写的。 虽然饰面已经更新了很多,但内脏仍然是一样的。 它的核心仍然有一些远/长指针术语。
We have a test harness that was orginally written to run on Windows 3.1. While the veneer has been updated a lot, the guts are still the same. It still has some far/long pointer terminology in the core.
以复制粘贴为核心的开发策略让我非常非常难过。
Copy&paste as the core development strategy makes me very, very sad.