WillAdams 20 hours ago

Anyone with a spare Micro-SD Card and a Raspberry Pi 5 should try:

http://pascal.hansotten.com/niklaus-wirth/project-oberon/obe...

  • Rochus 12 hours ago

    This is just an emulator which runs on Raspi Linux, not a native implementation. You can run it everywhere, even on Windows.

    • WillAdams 11 hours ago

      Yeah, I thought about mentioning that, but it seemed ungrateful to complain of a lack of drivers when I've never written one (but I do still wish someone would take that on as a project).

      c.f.,

      https://github.com/MGreim/ultiboberon

      • Rochus 10 hours ago

        It wasn't a complaint, just a fact. Btw. instead of natively porting the Oberon system, it's also possible to just transpile the Oberon code to C and then natively (cross-)compile the C code to the target architecture. That would even work with a bare-bone system. I have two Oberon system versions based on this approach (https://github.com/rochus-keller/OberonSystem and https://github.com/rochus-keller/OberonSystem3). Replacing the PAL/SDL adapter to a plain frame buffer and serial input seems feasible. Using a framework like https://github.com/rsta2/circle would make the task even easier. Of course the Oberon compiler does still generate code for the original architecture (one could replace it by a compiler using e.g. TCC as a backend).

  • tomcam 14 hours ago

    Super exciting! Thanks

jksmith 19 hours ago

Awesome. Thanks for posting. I miss my modula-2 so much I wrote a bunch of editor macros for Lazarus that allows me to write slightly modula-2 like code in the editor.

  • pjmlp 18 hours ago

    Since GCC 14, that GNU Modula-2 is part of GCC.

    Also XDS has been freely available for a couple of years now.

    What I miss is that there is no modern equivalent of formating keywords on save, I helped with one plugin for Sublime Text on Oberon, maybe need to do the same for VSCode.

timonoko 15 hours ago

I made Pascal for 8080 in about a week in 1979. How is it possible you may ask?

Well son, I had Lisp and I just added Pascal translator. Only caveat was that it ignored type declarations and such useless academic shit. Because I had sort-of compiler too, it was not really bad when compared to Turbo-Pascal.

  • timonoko 12 hours ago

    I found 50 pages manual for the Noko-Pascal. Finnish Army paid for it, because nothing comparable was available. Writing the manual was 10 times bigger task.

    The army used Nokopaskal for testing radio modems. Looks like the language was heavy with low level constructs like PORT.

    I truly did not remember any of this until today.

    https://photos.app.goo.gl/uibbTgCQmm4XCa9c6

  • timonoko 14 hours ago

    Erh. What?

    Here is my infamous 1976 Nokolisp-compiler at work:

      c:\ nokolisp
      (comp-debug t)
      (ncompile (macroexpand '(+ 1 2 a)))
    
      $36E8:$5CC8:   MOV  BX,$02
      $36E8:$5CCB:   MOV  AX,$01
      $36E8:$5CCE:   ADD  AX,BX
      $36E8:$5CD0:   PUSH AX
      $36E8:$5CD1:   MOV  AX,[$0190]
      $36E8:$5CD4:   CALL $0F1D ; CALL NUMVAL
      $36E8:$5CD7:   MOV  BX,AX
      $36E8:$5CD9:   POP  AX
      $36E8:$5CDA:   ADD  AX,BX
      $36E8:$5CDC:   CALL $05C9 ; CALL MAKNUM
      $36E8:$5CDF:   JMP  $1DA7
      (subru: eval=$5CC8, compile=$3B6F)
    • anta40 11 hours ago

      https://github.com/timonoko/nokolisp

      Interesting work.

      Time to setup DOSBox + MASM + etc etc.... :D

      • sph 3 hours ago

        Hot damn, that's such a cool piece of engineering that's worth its own post. I reckon hand coding a Lisp in assembly was commonplace in the late 70s, but these days it's like seeing an artefact from a long-lost civilization, as we've mostly lost those kind of skills.

      • timonoko 11 hours ago

        noko.exe works at dosbox without any "etc etc".

        nokolisp.exe is just a kernel without editors and macroes.

        • anta40 8 hours ago

          for building the interpreter from the source, of course. because... well why not? :D

  • MortyWaves 9 hours ago

    Types are academic shit to you? I despair.

    • timonoko 8 hours ago

      All had same type, they were pointers. VAR-section was anyways useful for testing that there was no errors in spelling of symbols. And array was a list. And strings were just list of numbers, with special symbol in front. It looked very professional, only error message were little bit incomprehensible and lispy.

      Unlike competitors (whatever they were) it had garbage collector, incredibly useful in 64k machine.

    • sph 3 hours ago

      [flagged]

      • MortyWaves 3 hours ago

        It’s a shame these type of comments exist on HN. Can’t say anything without upsetting some JS devs these days.