summaryrefslogtreecommitdiff
path: root/posts/lisps-assembly-c-and-conlangs.html
blob: 601dfa0eb6aaccca7772c051607960a535590575 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
--post-date: 2019-12-09
--type: blog
--tags: tech
    <article>
      <h1>Lisps, Assembly, C, and Conlangs</h1>
      <p>I had originally hoped to do more blogging as a way of practicing my
      writing and an incentive to do more hobby programming. The intent was
      never to make this site solely programming, I had actually a few scrapped
      posts about baking and guitar that just didn&#39;t get anywhere... but
      that being said I did have a fair amount of hobbying in 2019 that I can
      share some unfiltered, semi-structured thoughts on.</p>
      <h2>Racket, 80x86, and even more C</h2>
      <h3>Racket</h3>
      <p><a target="_blank"
         href="https://racket-lang.org">Racket</a> is a general-purpose
         lisp-like language. I had began messing around in it with the
         intention of creating a similar language to <a target="_blank"
         href="https://docs.racket-lang.org/scribble/">Scribble</a> a document
         authoring language written in Racket. I made <a target="_blank"
         href="https://xkcd.com/1205/">the classic mistake</a> of trying to
         create a productivity tool rather than just do the task I had
         originally intended to do. It was interesting messing around in a
         lisp/functional language which I haven&#39;t really used in a long
         time. I wish I had more insightful things to say about it or project
         to share. Either way its very worth the look.</p>
      <h3>6502 -&gt; 80x86 -&gt; Commander X16</h3>
      <p>I wanted to play around with writing some assembly language programs.
      I looked back at the NES tutorials and tried writing some basic
      hello-world programs for it, but never really came out with anything
      worth while. I booted up dosbox and tried experimenting in some DOS
      programming to get a kick of nostalgia. On my way over to a friends
      apartment I stumbled across an 80x86 reference book which I took home and
      dug into. I made some decent progress in, relative to my 6502 learning.
      But this was in the summer, and I was preparing for what would turn into
      a pretty time consuming move. After my move, my puppy, and some youtube,
      <a target="_blank"
         href="http://www.the8bitguy.com">The 8-Bit Guy</a> made a video about
         his 8 Bit computer project <a target="_blank"
         href="http://www.commanderx16.com/X16/Ready.html">Commander X16</a>
         which I started looking into. Like all the other assembly language
         projects they never amounted to more than a few print statements or
         colors on the screen. But X16 is something I am going to keep an eye
         on in 2020.<br>
      <a target="_blank"
         href="https://eater.net/">Ben Eater</a> also started a <a target=
         "_blank"
         href="https://eater.net/6502">6502 video series</a> which was amazing,
         and thankfully my learnings from earlier in the year made the content
         very understandable. In summary, I spent a lot of 2019 reading and
         watching a lot of content about assembly language programming, but
         never really did anything with it.</p>
      <h3>Never ending C</h3>
      <p>Without much to really say on the topic, I kept writing small programs
      in C throughout the year. I spent a lot of time debugging and
      troubleshooting a prefix terminal calculator with the intention of making
      it a full utility to use on the command line / from within scripts. You
      could do simple math without opening up x-calc, which I find myself doing
      to check some quick math. Example code: <code class="inline">calc &quot;+
      1 1&quot;</code>. To me this was far cleaner than writing: <code class=
      'inline'>echo $((1+1))</code>. The big ideas I had for it was adding a
      REPL and making it a command line calculator tool where you could get the
      features of a standard calculator with store and recall functions. This
      project involved making two stacks: the operations and the numbers.
      Implementing two stacks from scratch was interesting and I may upload the
      source and link it in an update. Overall it was full of breaks, bugs,
      wrong turns, and bizarre memory issues. So needless to say it was a fun 3
      days of programming.</p>
      <h2>Non Programming Writing</h2>
      <p>The project that soaked up a majority of my writing time, which sadly
      should&#39;ve been documented here, was my conlang / world-building
      project &quot;Tyur&quot;. This project spawned out of sci-fi story ideas
      that, of course, never went anywhere (due to my poor dialog writing, and
      writing in general) and my interest in language history. I have been
      reading <a target="_blank"
         href=
         "https://www.goodreads.com/book/show/1831667.The_Horse_the_Wheel_and_Language">
      The Horse the Wheel and Language</a> by David W. Anthony, which goes into
      the history around Proto-Indo-European. It can be a bit dense so I had
      been reading it on and off, and during the off times also started
      <a target="_blank"
         href=
         "https://www.goodreads.com/book/show/18635317-the-origins-of-language">The
         Origins of Language: A Slim Guide</a> by James R. Hurford, which tries
         to provide insights on the evolutionary concept of language. Both of
         these provided some fodder for the idea of creating my own <a target=
         "_blank"
         href="https://en.wikipedia.org/wiki/Constructed_language">conlang</a>.
         My conlang is &quot;Tyur&quot; the language spoken by the Tyur people.
         This process has really been a mix of world-building around the Tyur
         and some fun fantasy mini story ideas similar to The Lord of the Rings
         and old Warhammer Fantasy worlds. This however began my adventure down
         the rabbit hole of trying to figure out how to create a font so I can
         write more here about it. The documentation on this conlang is a mix
         of loose-leaf folded in my bag that I scribble on when I get an idea.
         So figuring out a proper way of building the alphabet and some root
         words to start a dictionary are my current goals for the remainder of
         the year/ start of 2020.</p>
      <h2>Closing</h2>
      <p>In closing, I think despite not writing much here, I messed around
      with some interesting languages this year, and hope I can hobby more in
      2020.</p>
    </article>