【问题标题】:What ancient, old school code do you still have kicking around?你还有什么古老的旧学校代码?
【发布时间】:2023-07-09 11:06:01
【问题描述】:

最近几天因为生病而无聊透顶,我决定尝试挖掘一些旧代码。我可以找到一些我写的古代 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 东西仍然没有,尽管我现在可能都认不出来了!

啊.. 回忆:-)

【问题讨论】:

  • 我个人的公理是这样的:如果您可以查看旧代码而不畏缩,那么您就没有成为程序员。
  • 好吧,我不会说我的旧代码让我畏缩...... -)
  • 我会发布一些东西,但我没有带 USB 连接器的卡式录音机。
  • 我对投票结束这个老问题感到有点难过,特别是因为我确实有 some nice old 68k assembly code 在身边,但很明显 outside the scope of Stack Overflow 今天。我确实希望,即使关闭,我们也可以保留它,作为一个历史提醒,让我们想起 SO 是一个更加健谈和开放的地方。

标签: assembly legacy-code 68000


【解决方案1】:

有一大堆旧的 Atari 8 位 BASIC 和 Atari ST 的东西(我还有 ST,但它没有联网,所以我几乎不使用它)。

我曾经输入过 David Ahl 的“BASIC Computer Games: Microcomputer Edition”中的大部分游戏,并将它们移植到 8 位和 ST BASIC。

我很想将那些旧游戏移植到 Processing/Arduino 上,以玩老式游戏。

【讨论】:

    【解决方案2】:

    我有一个 MUD,是我在 1990-1993 年大学期间编写并维护的。 All C. 是 Diku MUD 的衍生版本,叫做 SillyMUD,是我当时的骄傲和喜悦。

    您仍然可以在 Intertubes 上到处找到代码。

    【讨论】:

    • 我和一个朋友以前玩过 SillyMUD,最近决定获取源代码并将其作为一个爱好项目进行翻新:github.com/jonm/SillyMUD。如果有机会,请给我们留言,Loki。 :)
    【解决方案3】:

    来自旧的 EISPACK Fortran 例程:

    C 这个子程序是 ALGOL PROCEDURE ELMHES 的翻译, C NUM.数学。 12, 349-368(1968) 由马丁和威尔金森撰写。 C 自动手册。比较,第二卷线性代数,339-358(1971)。 C C 给定一个真正的通用矩阵,这个子程序 C 减少位于行和列中的子矩阵 C LOW 到 HIGH 到 UP HESSENBERG FORM BY C 稳定的基本相似变换。 ... C 问题和评论应直接发送至 BURTON S. GARBOW, C 数学和计算机科学部,阿贡国家实验室 C C 此版本日期为 1983 年 8 月。

    【讨论】:

      【解决方案4】:

      我在 1998 年编写的一些绝对糟糕的 Perl 代码仍在某个网站上使用...

      可怕的是,我的意思是没有use strict;,没有mys...

      【讨论】:

        【解决方案5】:

        我从 Atari ST 获得的大部分代码都在 GFA-Basic 中,我不想碰那些满是灰尘的软盘。

        【讨论】:

        • 最近我尝试阅读一些我的旧 ST 软盘。他们中的大多数现在都无法阅读:-(
        【解决方案6】:

        我们有一个最初为在 Windows 3.1 上运行而编写的测试工具。虽然单板已经更新了很多,但胆量仍然是一样的。它的核心仍然有一些远/长指针术语。

        【讨论】:

          【解决方案7】:

          复制粘贴作为核心发展策略让我非常非常难过。

          【讨论】: