[, < / ], >Jump to previous / next episode W, K, P / S, J, NJump to previous / next marker t / TToggle theatre / SUPERtheatre mode VRevert filter to original stateYSelect link (requires manual Ctrl-c)
Menu toggling
qQuotesrReferencesfFilteryLinkcCredits
In-Menu Movement
a
w s
d
hjkl
←
↑ ↓
→
Quotes and References Menus
EnterJump to timecode
Quotes, References and Credits Menus
oOpen URL (in new tab)
Filter Menu
x, SpaceToggle category and focus next X, ShiftSpaceToggle category and focus previous vInvert topics / media as per focus
0:08Recap and set the stage for the day focusing on bootstrapping
🗩
0:08Recap and set the stage for the day focusing on bootstrapping
🗩
0:08Recap and set the stage for the day focusing on bootstrapping
🗩
1:39Review the in-progress bootstrapping of the immediate / compilation modality interpretation
📖
1:39Review the in-progress bootstrapping of the immediate / compilation modality interpretation
📖
1:39Review the in-progress bootstrapping of the immediate / compilation modality interpretation
📖
8:16Make "immediate" itself be immediate
8:16Make "immediate" itself be immediate
8:16Make "immediate" itself be immediate
9:50Review the new immediate words "else", "begin", "again", "until", "variable" and "constant"
📖
9:50Review the new immediate words "else", "begin", "again", "until", "variable" and "constant"
📖
9:50Review the new immediate words "else", "begin", "again", "until", "variable" and "constant"
📖
14:59Demo the idea behind counter and if-else
🏃
14:59Demo the idea behind counter and if-else
🏃
14:59Demo the idea behind counter and if-else
🏃
16:12Determine to work on "immediate?" with a mention of a "hiding" word
🗩
16:12Determine to work on "immediate?" with a mention of a "hiding" word
🗩
16:12Determine to work on "immediate?" with a mention of a "hiding" word
🗩
18:15Create "immediate?" in FORTH
18:15Create "immediate?" in FORTH
18:15Create "immediate?" in FORTH
19:50Run it to find that it works, and remove the hard coded definition
🏃
19:50Run it to find that it works, and remove the hard coded definition
🏃
19:50Run it to find that it works, and remove the hard coded definition
🏃
20:57Consider kicking out the ladder from under us once we're bootstrapped
🗩
20:57Consider kicking out the ladder from under us once we're bootstrapped
🗩
20:57Consider kicking out the ladder from under us once we're bootstrapped
🗩
25:02Define defop2 macro to quickly define binary operators, using it on an "+" operator
25:02Define defop2 macro to quickly define binary operators, using it on an "+" operator
25:02Define defop2 macro to quickly define binary operators, using it on an "+" operator
26:54Run it to find that it works
🏃
26:54Run it to find that it works
🏃
26:54Run it to find that it works
🏃
27:02Define "-", "and", "or" and "xor" operators
27:02Define "-", "and", "or" and "xor" operators
27:02Define "-", "and", "or" and "xor" operators
27:46Run it to find that it works
🏃
27:46Run it to find that it works
🏃
27:46Run it to find that it works
🏃
27:56Define defop1 macro to quickly define unary operators, using it to define "0=" and "<>0"
27:56Define defop1 macro to quickly define unary operators, using it to define "0=" and "<>0"
27:56Define defop1 macro to quickly define unary operators, using it to define "0=" and "<>0"
29:53Run it to find that it works
🏃
29:53Run it to find that it works
🏃
29:53Run it to find that it works
🏃
30:05Alias "not" as "0="
30:05Alias "not" as "0="
30:05Alias "not" as "0="
31:24Run it to find that it works, but that we may want to bootstrap error checking
🏃
31:24Run it to find that it works, but that we may want to bootstrap error checking
🏃
31:24Run it to find that it works, but that we may want to bootstrap error checking
🏃
31:53Create ">flags"
31:53Create ">flags"
31:53Create ">flags"
32:55Run it to find that it broke everything
🏃
32:55Run it to find that it broke everything
🏃
32:55Run it to find that it broke everything
🏃
33:28Make ">flags" just exit for now
33:28Make ">flags" just exit for now
33:28Make ">flags" just exit for now
33:42Consider creating ">cfa" and integers
🗩
33:42Consider creating ">cfa" and integers
🗩
33:42Consider creating ">cfa" and integers
🗩
35:57Rewrite ">flags"
35:57Rewrite ">flags"
35:57Rewrite ">flags"
36:17Run it to find that it now works
🏃
36:17Run it to find that it now works
🏃
36:17Run it to find that it now works
🏃
36:23Revert ">flags" to just exit, and create ">namelen", ">name" and ">cfa"
36:23Revert ">flags" to just exit, and create ">namelen", ">name" and ">cfa"
36:23Revert ">flags" to just exit, and create ">namelen", ">name" and ">cfa"
41:33Run it to find that the live ">cfa" doesn't work
🏃
41:33Run it to find that the live ">cfa" doesn't work
🏃
41:33Run it to find that the live ">cfa" doesn't work
🏃
41:52Test ">namelen" and ">name"
41:52Test ">namelen" and ">name"
41:52Test ">namelen" and ">name"
42:05Run it to find that it's okay
🏃
42:05Run it to find that it's okay
🏃
42:05Run it to find that it's okay
🏃
42:26Remove IMMEDIATE and HIDDEN initialisations
42:26Remove IMMEDIATE and HIDDEN initialisations
42:26Remove IMMEDIATE and HIDDEN initialisations
42:40Run it to make sure that doesn't break it
🏃
42:40Run it to make sure that doesn't break it
🏃
42:40Run it to make sure that doesn't break it
🏃
42:52Scrutinise ">cfa" and start our investigations by putting the location of the "drop" word on the stack
42:52Scrutinise ">cfa" and start our investigations by putting the location of the "drop" word on the stack
42:52Scrutinise ">cfa" and start our investigations by putting the location of the "drop" word on the stack
44:56Run it to see that "drop" is at 1224
🏃
44:56Run it to see that "drop" is at 1224
🏃
44:56Run it to see that "drop" is at 1224
🏃
45:20Try to dup our ">cfa" after finding the "drop" word
45:20Try to dup our ">cfa" after finding the "drop" word
45:20Try to dup our ">cfa" after finding the "drop" word
45:50Run it to find that the cfa is at 1852402392
🏃
45:50Run it to find that the cfa is at 1852402392
🏃
45:50Run it to find that the cfa is at 1852402392
🏃
46:01Try dereferencing the ">namelen"
46:01Try dereferencing the ">namelen"
46:01Try dereferencing the ">namelen"
46:14Run it to determine that it's already total garbage
🏃
46:14Run it to determine that it's already total garbage
🏃
46:14Run it to determine that it's already total garbage
🏃
46:22Try to dup ">namelen" itself
46:22Try to dup ">namelen" itself
46:22Try to dup ">namelen" itself
46:26Run it to see that this is as expected
🏃
46:26Run it to see that this is as expected
🏃
46:26Run it to see that this is as expected
🏃
46:51Make ">cfa" correctly dereference ">namelen" using a byte fetch
46:51Make ">cfa" correctly dereference ">namelen" using a byte fetch
46:51Make ">cfa" correctly dereference ">namelen" using a byte fetch
47:04Run it to see that it works
🏃
47:04Run it to see that it works
🏃
47:04Run it to see that it works
🏃
48:17Determine to create a general number parser, initially redefining "interpret" and "quit"
48:17Determine to create a general number parser, initially redefining "interpret" and "quit"
48:17Determine to create a general number parser, initially redefining "interpret" and "quit"
51:46Run it to find that it didn't work
🏃
51:46Run it to find that it didn't work
🏃
51:46Run it to find that it didn't work
🏃
52:12Investigate the problem in our new "interpret" and "quit"
🏃
🖮
52:12Investigate the problem in our new "interpret" and "quit"
🏃
🖮
52:12Investigate the problem in our new "interpret" and "quit"
🏃
🖮
57:45Using "break" within [ and ]
🗩
57:45Using "break" within [ and ]
🗩
57:45Using "break" within [ and ]
🗩
58:36Continue to investigate "interpret"
🏃
🖮
58:36Continue to investigate "interpret"
🏃
🖮
58:36Continue to investigate "interpret"
🏃
🖮
59:42Try increasing the stack size
59:42Try increasing the stack size
59:42Try increasing the stack size
1:00:16Run it to find that it works
🏃
1:00:16Run it to find that it works
🏃
1:00:16Run it to find that it works
🏃
1:00:37Try using our new "quit"
1:00:37Try using our new "quit"
1:00:37Try using our new "quit"
1:00:56Run it to find that it all works, with a few words on recreating more sophisticated definitions
🏃
1:00:56Run it to find that it all works, with a few words on recreating more sophisticated definitions
🏃
1:00:56Run it to find that it all works, with a few words on recreating more sophisticated definitions
🏃
1:02:07Consider building better error handling
🗩
1:02:07Consider building better error handling
🗩
1:02:07Consider building better error handling
🗩
1:03:22Define register-manipulation built-ins "sp@", "sp!", "pc@", "pc!", "rp@" and "rp!"
1:03:22Define register-manipulation built-ins "sp@", "sp!", "pc@", "pc!", "rp@" and "rp!"
1:03:22Define register-manipulation built-ins "sp@", "sp!", "pc@", "pc!", "rp@" and "rp!"
1:08:04Run it to see that it works
🏃
1:08:04Run it to see that it works
🏃
1:08:04Run it to see that it works
🏃
1:08:08Define "sp0" and "rp0", and introduce an abort function
1:08:08Define "sp0" and "rp0", and introduce an abort function
1:08:08Define "sp0" and "rp0", and introduce an abort function
1:13:28Run it to see that "abort" has put 1234 on the stack, but it ends by crashing in bus_load_word()
🏃
1:13:28Run it to see that "abort" has put 1234 on the stack, but it ends by crashing in bus_load_word()
🏃
1:13:28Run it to see that "abort" has put 1234 on the stack, but it ends by crashing in bus_load_word()
🏃
1:14:08Investigate the crash in "abort"
📖
1:14:08Investigate the crash in "abort"
📖
1:14:08Investigate the crash in "abort"
📖
1:21:33Initialise sp0 and rp0 for the docol routine and "rp0" word to use
1:21:33Initialise sp0 and rp0 for the docol routine and "rp0" word to use
1:21:33Initialise sp0 and rp0 for the docol routine and "rp0" word to use
1:23:11Run it to see that it is more reasonable
🏃
1:23:11Run it to see that it is more reasonable
🏃
1:23:11Run it to see that it is more reasonable
🏃
1:24:31Prevent "abort" from putting 1234 on the stack, and try to enable it to push the code pointer for "quit" onto the return stack, rather than calling it directly
1:24:31Prevent "abort" from putting 1234 on the stack, and try to enable it to push the code pointer for "quit" onto the return stack, rather than calling it directly
1:24:31Prevent "abort" from putting 1234 on the stack, and try to enable it to push the code pointer for "quit" onto the return stack, rather than calling it directly