diff options
Diffstat (limited to 'quine.asm')
| -rw-r--r-- | quine.asm | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/quine.asm b/quine.asm index 910013d..6208f85 100644 --- a/quine.asm +++ b/quine.asm @@ -11325,12 +11325,25 @@ defword boot_source, 0x40 dq " interpreter-flags @ 1 & " dq " { ' litstring entry-to-execution-token , } if " dq " here @ key { dup dup 34 != && } { pack8 key } while " - dq " drop dup 0 pack8 " + dq " drop 0 pack8 " dq " interpreter-flags @ 1 & " - dq " { 8 packalign here ! drop } " + dq " { 8 packalign here ! } " dq " { drop here @ } if-else " dq " ; make-immediate " + ; Finicky semantics, but also important. + dq ": ."" " + dq " ' s"" entry-to-execution-token execute " + dq " interpreter-flags @ 1 & " + dq " { ' emitstring entry-to-execution-token , } " + dq " { emitstring } if-else " + dq " ; make-immediate " + + ; While we're thinking about input, let's also have comments. + dq ": ~ " + dq " key { dup dup 10 != && } { drop key } while drop " + dq " ; make-immediate " + ; Some output formatting tools. dq ": space 32 value@ emitstring drop ; " dq ": newline 10 value@ emitstring drop ; " |