4 ms·
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 i
by timonoko 1y 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 1y agoErh. 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 1y agohttps://github.com/timonoko/nokolisp https://github.com/timonoko/nokolisp Interesting work. Time to setup DOSBox + MASM + etc etc.... :D
- timonoko 1y agonoko.exe works at dosbox without any "etc etc". nokolisp.exe is just a kernel without editors and macroes.
- anta40 1y agofor building the interpreter from the source, of course. because... well why not? :D
- sph 1y agoHot 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 1y agoI 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 https://photos.app.goo.gl/uibbTgCQmm4XCa9c6
- MortyWaves 1y agoTypes are academic shit to you? I despair.
- timonoko 1y agoAll 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 1y ago[flagged]
- MortyWaves 1y agoIt’s a shame these type of comments exist on HN. Can’t say anything without upsetting some JS devs these days.
- jrdres 1y agoThanks for the 8088 version on Github. Any chance you still have the 8080 CP/M version?
- timonoko 1y agoThe version with external 5 x 64k memory is definitively in Osborne-1 disk drawer. But Osborne does not work. It was so heavily modified that it will never work. The external memory was partially visible in memory space. And the display driver was improved to have 80 columns. But the stand-alone CP/M-version is long gone.
- timonoko 1y agoNow that I think about it, it might be possible that it could work in both configurations. The external memory was kinda bulky and not suitable for portable computer. It would have been wasteful to keep the main memory empty. Or maybe it was reserved for compiled functions?