[{"data":1,"prerenderedAt":337},["ShallowReactive",2],{"project-49410814":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":27,"sentiment":28,"stance_mix":29,"scored_comments":34,"aspects":35,"strip":42,"post_text":45,"what":46,"said":74,"maker_in_thread":182,"shape":191,"grid":195,"attempts":300,"same_week":301,"maker_shows":212,"maker_hidden":330,"reader_version":331,"card":332},"49410814","Thoreau BASIC","A BASIC interpreter that boots on UEFI machines","title","Show HN: I wrote a BASIC interpreter that boots on UEFI machines","https:\u002F\u002Ftarjan.itch.io\u002Fthoreaubasic","tarjan.itch.io","Gorsefound",1787507292,2026,156,44,409,4366,10,"notable","languages","basic interpreter","other",[21,24,25,26],"uefi","bare metal","retro computing","mixed",0.24,{"positive":30,"neutral":31,"mixed":32,"critical":33},8,7,0,4,19,{"idea":36,"docs":38,"execution":40,"performance":41},{"positive":37,"critical":33},6,{"positive":39,"critical":32},1,{"positive":39,"critical":32},{"positive":32,"critical":32},[43,44,44,32,44,32,39,39,32,43,32,32,44,43,43,39,32,32,32,32,43,43,44,32,32,32,32,32,44,32,32,43,32,43,32,44,32,32,39,32],5,3,"I started writing Thoreau BASIC because I wanted a small, old-fashioned BASIC interpreter: line numbers, immediate mode, simple graphics, strings, arrays, the sort of environment where the computer starts with a \"Ready\" prompt and you can immediately make it do something.\n\nThen I wondered: why should it need an operating system?\n\nSo I made it boot directly on x64 machines using UEFI.\n\nThe UEFI version uses the Graphics Output Protocol for its framebuffer and gets its keyboard input directly from the firmware. There is no Windows or Linux underneath it. The machine boots into BASIC.\n\nIt support",{"problem":47,"audience":53,"pricing":57,"motivation":58,"time_to_build":57,"stack":62,"openness":73,"stage":73,"team_size":73},{"value":48,"source":49,"evidence":50},"Gives a classic BASIC environment that runs without an operating system","maker",[51],{"id":52},"post",{"value":54,"source":49,"evidence":55},"People who wrote BASIC in the 80s\u002F90s, interpreter enthusiasts, and retro computing fans",[56],{"id":52},null,{"value":59,"source":49,"evidence":60},"Wanted a small old-fashioned BASIC that boots without an operating system",[61],{"id":52},[63,69],{"value":64,"source":49,"evidence":65},"C",[66],{"id":67,"by":11,"text":68},"49437106","It's C code compiled with MSVS. Not sure about a FOSS release yet. I'm still in the early stages of experimenting.",{"value":70,"source":49,"evidence":71},"MSVS (Microsoft Visual Studio) compiler",[72],{"id":67,"by":11,"text":68},"unknown",{"praise":75,"objections":99,"requests":118,"questions":131,"alternatives":155},[76,88],{"value":77,"source":78,"evidence":79},"Impressive bare-metal UEFI boot approach","commenter",[80,84],{"id":81,"by":82,"text":83},"49410926","JoeAltmaier","Very cool! The raw-metal boot part is impressive. BASIC requires more support than you'd expect. Here's an interpreter, with a similarly long list of features it has to support:…",{"id":85,"by":86,"text":87},"49430172","ale42","Great, nice project! In the time of Electron bloat, it's really refreshing to see bare-metal UEFI stuff.",{"value":89,"source":78,"evidence":90},"Nostalgic appeal of a boot-to-BASIC environment",[91,95],{"id":92,"by":93,"text":94},"49431027","trashb","This is great! Allowing anyone to program like it is the 1980s and bring them back to their hardware somewhat. I think it will also find it's way to the permacomputing crowd…",{"id":96,"by":97,"text":98},"49430326","polaris64","I really like this! I started a personal project a long time ago to boot a Raspberry PI into an environment like this, the idea being to bring back the good old days of the ZX…",[100,111],{"value":101,"source":78,"evidence":102},"Not open source, which limits use and modification",[103,107],{"id":104,"by":105,"text":106},"49431016","roryirvine","Not FOSS? That's a real pity. I learned to program on 8 bit micros, and created a rough boot-to-BASIC experiment ~15 years ago following the JeOS pattern. So this project sounds…",{"id":108,"by":109,"text":110},"49432477","skrellm","I agree, it's a shame it's not FOSS. Besides UEFI, it has a Windows GDI port, but if it were FOSS one could add SDL backend for example and then one could compile it for Linux…",{"value":112,"source":78,"evidence":113},"Kids find BASIC unappealing compared with modern computers",[114],{"id":115,"by":116,"text":117},"49432037","StilesCrisis","As a parent who had a very similar experience growing up, I've tried putting BASIC in front of my young kids. It didn't work at all; the magic just isn't there anymore. If you've…",[119,124],{"value":120,"source":78,"evidence":121},"Open source release",[122,123],{"id":104,"by":105,"text":106},{"id":108,"by":109,"text":110},{"value":125,"source":78,"evidence":126},"Chainloading other operating systems as a bootloader",[127],{"id":128,"by":129,"text":130},"49412356","dlcarrier","I learned to program on the Commodore 64 and in QBASIC in th 90's. I'll give it a try. Considering how much it supports, if it could chainload a full operating system, it would…",[132,139,149],{"value":133,"source":78,"evidence":134},"Which hardware has it been run on and how reliable is UEFI across machines",[135],{"id":136,"by":137,"text":138},"49453344","jonjacky","What hardware have you run the UEFI version on? Can you assume that pretty much any computer these days provides UEFI firmware that supports ThoreauBASIC, or might some computers…",{"value":140,"source":78,"evidence":141},"Does file system support extend beyond FAT32 such as NTFS",[142,146],{"id":143,"by":144,"text":145},"49431893","fuzzfactor","If you have a PC mainboard whose UEFI supports NTFS, does that filesystem work too?",{"id":147,"by":109,"text":148},"49432419","> If you have a PC mainboard whose UEFI supports NTFS, does that filesystem work too? Yes. The UEFI Simple Filesystem Protocol is transparent to the UEFI app. The protocol gives…",{"value":150,"source":78,"evidence":151},"How was it built as an EFI application",[152],{"id":153,"by":137,"text":154},"49422724","Very nice! I am curious how you built your BASIC as an EFI application. I didn't find any source code or build instructions in the downloads. I am investigating whether it would…",[156,160,171],{"value":157,"source":78,"evidence":158},"Other BASIC interpreters such as moondew BASIC",[159],{"id":81,"by":82,"text":83},{"value":161,"source":78,"evidence":162},"Other bootloaders such as GRUB, rEFIt, syslinux and easyboot",[163,164,168],{"id":128,"by":129,"text":130},{"id":165,"by":166,"text":167},"49429937","edoceo","What's wrong with those bootloaders? Maybe try syslinux?",{"id":169,"by":109,"text":170},"49432696","> it would make a great replacement for GRUB or rEFIt. Try https:\u002F\u002Fgitlab.com\u002Fbztsrc\u002Feasyboot",{"value":172,"source":78,"evidence":173},"Open Firmware Forth",[174,178],{"id":175,"by":176,"text":177},"49430553","dragonfax","I know at least old Apple systems had a full Forth interpreter in their bootloader.",{"id":179,"by":180,"text":181},"49430850","Someone","OpenFirmware, developed by Sun, used by Sun, Apple, IBM and ARM, according to Wikipedia (https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FOpen_Firmware)",{"comments":44,"answered":39,"key":183},[184,187,190],{"id":185,"text":186},"49414940","That's right. It uses UEFI's FAT32.",{"id":188,"text":189},"49414972","That's an interesting idea. :-)",{"id":67,"text":68},{"commenters":192,"max_depth":43,"maker_replies":44,"first_comment_mins":193,"lifespan_hours":194},29,11,196,[196,198,202,205,207,209,211,214,215,219,220,222,223,224,225,226,229,230,234,237,239,241,244,245,247,250,253,255,259,261,263,265,268,271,272,275,278,281,283,288,290,291,295,298],[81,32,43,197,82,32],"project\u002Fpositive\u002Fidea",[199,39,44,200,201,32],"49413009","project\u002Fneutral\u002Fdocs","glimshe",[203,39,44,200,204,32],"49414065","WalterGR",[185,39,32,206,11,39],"maker\u002Fneutral\u002Fexecution",[143,39,44,208,144,32],"project\u002Fneutral\u002Fexecution",[147,39,32,210,109,32],"commenter\u002Fneutral\u002Fexecution",[104,212,39,213,105,32],2,"project\u002Fcritical\u002Fidea",[108,212,39,213,109,32],[216,212,32,217,218,32],"49446368","other\u002Fneutral\u002Fnone","avadodin",[128,44,43,197,129,32],[188,44,32,221,11,39],"maker\u002Fpositive\u002Fidea",[165,44,32,217,166,32],[169,44,32,217,109,32],[136,33,44,208,137,32],[96,43,43,197,97,32],[227,37,43,197,228,32],"49431217","Rygian",[115,37,39,213,116,32],[231,37,32,232,233,32],"49432512","other\u002Fneutral\u002Fidea","raverbashing",[235,37,32,217,236,32],"49433146","unrented7977",[238,37,32,217,109,32],"49433306",[240,37,32,217,116,32],"49441038",[242,37,32,217,243,32],"49433708","alnwlsn",[92,31,43,197,93,32],[85,30,43,246,86,32],"project\u002Fpositive\u002Fexecution",[248,30,44,249,144,32],"49431974","project\u002Fneutral\u002Fperformance",[251,30,32,252,86,32],"49432141","commenter\u002Fneutral\u002Fperformance",[254,30,32,252,109,32],"49432601",[256,30,32,257,258,32],"49435542","commenter\u002Fneutral\u002Fnone","convolvatron",[260,30,32,257,109,32],"49438588",[262,30,32,257,86,32],"49515250",[153,264,44,200,137,32],9,[266,264,32,217,267,32],"49429657","NegativeLatency",[269,264,32,217,270,32],"49430720","shakna",[67,264,32,208,11,39],[273,264,43,274,137,32],"49438977","maker\u002Fpositive\u002Fdocs",[276,18,32,217,277,32],"49431582","sras-me",[279,193,43,197,280,32],"49431996","saidnooneever",[282,193,32,217,137,32],"49441533",[284,285,44,286,287,32],"49437575",12,"project\u002Fneutral\u002Fidea","scotty79",[175,289,32,217,176,32],13,[179,289,32,217,180,32],[292,293,39,213,294,32],"49445656",14,"timonoko",[296,293,32,257,297,32],"49458707","allenrb",[299,293,32,217,294,32],"49459334",[],[302,307,312,316,321,325],{"id":303,"name":304,"points":305,"category":306},"49373456","simedw.com",598,"creative",{"id":308,"name":309,"points":310,"category":311},"49378768","Huzzah",384,"dev_tools",{"id":313,"name":314,"points":315,"category":306},"49419351","rack-02",240,{"id":317,"name":318,"points":319,"category":320},"49437049","LatticeDB",190,"data",{"id":322,"name":323,"points":324,"category":320},"49421806","PicoMQ",159,{"id":326,"name":327,"points":328,"category":329},"49435675","CarWatch",146,"ai",false,"v2",{"id":333,"name":5,"line":6,"ai":330,"cat":20,"year":13,"points":14,"comments":15,"rec":27,"s":28,"top":18,"kw":334,"maker":11,"domain":10,"tier":19,"attempts":32,"strip":335,"url":9,"mix":336,"praise":77,"objection":101,"sub":21},49410814,[21,24,25,26],"5330301105003551000055300000300505030010",[30,31,32,33],1793991164506]