{"id":695,"date":"2014-12-09T18:33:20","date_gmt":"2014-12-09T18:33:20","guid":{"rendered":"http:\/\/anthonybarranco.com\/blog\/?p=695"},"modified":"2014-12-09T18:51:56","modified_gmt":"2014-12-09T18:51:56","slug":"ctos","status":"publish","type":"post","link":"http:\/\/anthonybarranco.com\/blog\/ctos\/","title":{"rendered":"ctOS &#8211; 6502 TypeScript Operating System"},"content":{"rendered":"<p>For my Operating Systems class, I was tasked with making an Operating System simulation using basic OS architecture and 6502 operations.<\/p>\n<p>Using TypeScript, I implemented a CPU, CPU scheduler with 3 scheduling methods, memory manager for RAM, kernel interrupt and ready\/resident queue, hard drive and hard drive driver with swap virtual memory. I also added neat features like achievements, boot video, step mode, and tons of little special commands.<\/p>\n<p>It was one of my favorite projects of all time in my education. It was a lot of fun to implement new achievements into something like an Operating System and the design for ready queues\/CPU scheduling was really interesting. I also found a new language to love. <a href=\"http:\/\/www.typescriptlang.org\/\">TypeScript<\/a>\u00a0is a JavaScript transpiler that gives type checking and more to JS, made by none other than Microsoft. I&#8217;m a strict type kind of guy, and it has been my biggest pet peeve of JS for a long time. TypeScript was\u00a0a god send, and will be what I use whenever I have to write JS now. Combined with native debugging in Visual Studio, it can be extremely powerful and helpful. It makes Object Orientated programming in JS to be a breeze.<\/p>\n<p>There are a bunch of built in programs to ctOS you can find in the sidebar, but <a href=\"https:\/\/www.dropbox.com\/s\/4w69vbrt5sdyl50\/6502alan-instruction-set.pdf?dl=0\">feel free to make your own.<\/a>\u00a0There was discussion on how it would easily be possible to read\/write executable programs to the hard drive, and with a few more op codes, you could have the simplified 6502 CPU do some pretty legit algorithms like merge sort and stuff. Its a fun Operating System.<\/p>\n<p>Feel free to check it out here:<br \/>\n<a href=\"http:\/\/anthonyb28.github.io\/ctOS\/\">http:\/\/anthonyb28.github.io\/ctOS\/<\/a><\/p>\n<p>Source &amp; Readme:<br \/>\n<a href=\"http:\/\/github.com\/anthonyb28\/ctOS\/\">http:\/\/github.com\/anthonyb28\/ctOS\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>For my Operating Systems class, I was tasked with making an Operating System simulation using basic OS architecture and 6502 operations. Using TypeScript, I implemented a CPU, CPU scheduler with 3 scheduling methods, memory manager for RAM, kernel interrupt and ready\/resident queue, hard drive and hard drive driver with swap virtual memory. I also added [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":694,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[26],"tags":[9,32,37,18,79,53],"class_list":["post-695","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-portfolio","tag-pc","tag-portfolio-2","tag-programming","tag-student","tag-typescript","tag-visual-studio"],"_links":{"self":[{"href":"http:\/\/anthonybarranco.com\/blog\/wp-json\/wp\/v2\/posts\/695","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/anthonybarranco.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/anthonybarranco.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/anthonybarranco.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/anthonybarranco.com\/blog\/wp-json\/wp\/v2\/comments?post=695"}],"version-history":[{"count":6,"href":"http:\/\/anthonybarranco.com\/blog\/wp-json\/wp\/v2\/posts\/695\/revisions"}],"predecessor-version":[{"id":702,"href":"http:\/\/anthonybarranco.com\/blog\/wp-json\/wp\/v2\/posts\/695\/revisions\/702"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/anthonybarranco.com\/blog\/wp-json\/wp\/v2\/media\/694"}],"wp:attachment":[{"href":"http:\/\/anthonybarranco.com\/blog\/wp-json\/wp\/v2\/media?parent=695"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/anthonybarranco.com\/blog\/wp-json\/wp\/v2\/categories?post=695"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/anthonybarranco.com\/blog\/wp-json\/wp\/v2\/tags?post=695"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}