-
f8fc086df3
Stop chapter 18 contradicting itself about FILLROW and DRAWHUD
main
Andrew Kesterson
2026-08-02 13:35:14 -04:00
-
851b03bcf6
Give chapter 18 the six pieces a reader had to invent
Andrew Kesterson
2026-08-02 13:26:47 -04:00
-
fa5623b722
Say where the collision handler is armed, and what BYE's last two verbs do
Andrew Kesterson
2026-08-02 13:20:34 -04:00
-
766b0f0dd6
Close out the collision conversion in TODO.md
Andrew Kesterson
2026-08-02 13:15:02 -04:00
-
a01554d304
Teach the artwork tutorial the converted listing
Andrew Kesterson
2026-08-02 13:13:51 -04:00
-
39d1d0c80c
Stop the artwork breakout drawing its screen into two sprites
Andrew Kesterson
2026-08-02 12:58:08 -04:00
-
8da8d717c8
Teach chapter 17 the collision verbs its listing now uses
Andrew Kesterson
2026-08-02 11:21:32 -04:00
-
9e43acc0b0
Give the characters breakout its bricks as collision geometry
Andrew Kesterson
2026-08-02 11:17:34 -04:00
-
fdb3421b2a
Let C call a BASIC function with values it already has
Andrew Kesterson
2026-08-02 11:06:45 -04:00
-
a9600c3fcc
Say what was hit, which way is out, and how far
Andrew Kesterson
2026-08-02 10:53:26 -04:00
-
5709dc160c
Keep what a program draws, instead of making it a sprite
Andrew Kesterson
2026-08-02 10:46:10 -04:00
-
802bbcc17a
Collide sprites with rectangles that are not sprites
Andrew Kesterson
2026-08-02 10:25:35 -04:00
-
f005b88980
Let a program say what part of a sprite collides
Andrew Kesterson
2026-08-02 10:01:33 -04:00
-
40198cbc07
File the four things this work deliberately left alone
Andrew Kesterson
2026-08-02 09:51:17 -04:00
-
f06c53110d
Answer sprite collision through libakgl's narrowphase
Andrew Kesterson
2026-08-02 09:48:11 -04:00
-
1da37cf374
Take libakgl 0.8.0, and correct the status range it grew
Andrew Kesterson
2026-08-02 09:35:22 -04:00
-
d61e352f36
Test the collision scan, and measure what it costs
Andrew Kesterson
2026-08-02 09:25:22 -04:00
-
1fb808f480
Rewrite the two game tutorials as instructions rather than commentary
Andrew Kesterson
2026-08-02 08:08:23 -04:00
-
0679c3042b
Stop the listings and their chapters stating fixed defects as fact
Andrew Kesterson
2026-08-02 06:32:48 -04:00
-
89fca8007b
Assert the log line a failed report leaves behind
Andrew Kesterson
2026-08-02 02:17:17 -04:00
-
ad76889292
State where a scalar lives in the three chapters that describe the pool
Andrew Kesterson
2026-08-02 00:32:20 -04:00
-
91fadf032b
Bring the tutorials back in line with the fixed interpreter
Andrew Kesterson
2026-08-02 00:31:06 -04:00
-
c3d9e91bbd
Write down that a redraw has to fit inside one batch
Andrew Kesterson
2026-08-02 00:23:36 -04:00
-
c8b917d205
Write down that the left operand decides integer or float arithmetic
Andrew Kesterson
2026-08-02 00:23:20 -04:00
-
d5f3c3ef5b
Accept GRAPHIC CLR and a negative DATA item
Andrew Kesterson
2026-08-02 00:18:53 -04:00
-
a1dcfcacf3
Land a character written past a short row's terminator
Andrew Kesterson
2026-08-02 00:13:42 -04:00
-
8594d8471d
Honour a subscript in SSHAPE and GSHAPE
Andrew Kesterson
2026-08-02 00:10:24 -04:00
-
694b446ce4
Let a program ask how big the text grid is
Andrew Kesterson
2026-08-02 00:05:17 -04:00
-
fd1f0d7c19
Forward WINDOW through the tee sink
Andrew Kesterson
2026-08-01 23:57:57 -04:00
-
5d33237eed
Release the scope a skipped BEGIN block's loop pushed
Andrew Kesterson
2026-08-01 23:55:10 -04:00
-
f5a35b4af6
Enter a TRAP handler when the variable table is full
Andrew Kesterson
2026-08-01 23:48:56 -04:00
-
05f241aca1
Stop a scalar created inside a scope costing value-pool slots
Andrew Kesterson
2026-08-01 23:47:49 -04:00
-
caebc1a174
Stop the mutation harness dropping the documentation's figures
Andrew Kesterson
2026-08-01 23:36:02 -04:00
-
cb0e2d0800
Add two Breakout examples and the tutorials that build them
Andrew Kesterson
2026-08-01 22:54:42 -04:00
-
8a50d07eef
Add the new refusal to the error-code appendix
Andrew Kesterson
2026-08-01 16:52:47 -04:00
-
86669aee38
Record the gates the line-number work was verified against
Andrew Kesterson
2026-08-01 16:46:44 -04:00
-
28ea99a638
Document optional line numbers
Andrew Kesterson
2026-08-01 16:43:14 -04:00
-
6273be580a
Refuse a branch to a line the program did not number
Andrew Kesterson
2026-08-01 16:38:54 -04:00
-
8bc253ebbf
Give a loaded line a number when it arrives without one
Andrew Kesterson
2026-08-01 16:33:27 -04:00
-
d2ae0d75de
File the scanned line in RUNSTREAM, not the raw one
Andrew Kesterson
2026-08-01 16:25:05 -04:00
-
812d846e47
Take libakgl 0.7.0, and refuse an over-long type or field name
Andrew Kesterson
2026-08-01 13:30:35 -04:00
-
c1d06ee4b8
Let DEF take structure parameters, and give call scopes back
Andrew Kesterson
2026-08-01 13:05:32 -04:00
-
00daa17a47
Give each DEF call its own environment, so recursion returns
Andrew Kesterson
2026-08-01 12:29:35 -04:00
-
6bac929901
Document structures: a chapter, the architecture, and the differences
Andrew Kesterson
2026-08-01 12:03:02 -04:00
-
631c70ce7d
Share a host program's own C structures with a script
Andrew Kesterson
2026-08-01 11:56:04 -04:00
-
2a3f68d2c4
Add strict pointers: AS PTR TO, POINT ... AT, and the -> operator
Andrew Kesterson
2026-08-01 11:48:09 -04:00
-
6a7c8cd920
Add records: TYPE, DIM ... AS, field access, copy on assign
Andrew Kesterson
2026-08-01 11:39:47 -04:00
-
8117fb564d
Refuse an operand the numeric path cannot read
Andrew Kesterson
2026-08-01 11:22:50 -04:00
-
3415c9aec6
Take libakgl 0.5.0 and rename every symbol it namespaced
Andrew Kesterson
2026-08-01 08:01:43 -04:00
-
8077806598
Take libakerror 2.0.1, and guard the exit status it fixes
Andrew Kesterson
2026-08-01 08:00:24 -04:00
-
16b38c1138
Generate the documentation's figures from the listings they illustrate
Andrew Kesterson
2026-08-01 07:37:04 -04:00
-
737fdc760f
Document every error code a script can see, as chapter 15
Andrew Kesterson
2026-08-01 07:36:36 -04:00
-
48f650c3af
Stop an armed TRAP from swallowing parse errors whole
Andrew Kesterson
2026-08-01 07:36:00 -04:00
-
5c5bf63356
Draw into the whole window, not its top-left 320x200
Andrew Kesterson
2026-08-01 07:35:20 -04:00
-
23ccb66f69
Document the interpreter's architecture as chapter fourteen
Andrew Kesterson
2026-07-31 23:14:17 -04:00
-
80b76ad467
Split the documentation by who reads it
Andrew Kesterson
2026-07-31 22:59:43 -04:00
-
342e4c07da
Execute every documented example as a test
Andrew Kesterson
2026-07-31 22:41:36 -04:00
-
6f49f6a7f2
Stop DLOAD eating a line, and a prompt error killing the driver
Andrew Kesterson
2026-07-31 22:41:19 -04:00
-
cdaefcc941
Write the usage guide as thirteen chapters in docs/
Andrew Kesterson
2026-07-31 21:50:50 -04:00
-
9845e77a5c
Finish the language: every remaining verb group, and the defects that blocked them
Andrew Kesterson
2026-07-31 21:50:37 -04:00
-
3aade4947a
Correct two stale TODO entries that had silently no-op'd
Andrew Kesterson
2026-07-31 15:29:06 -04:00
-
df50201121
Own every pixel each frame, and bring the cursor back as a blinking block
Andrew Kesterson
2026-07-31 15:23:41 -04:00
-
acd20eed9a
Erase what the text layer drew: three GUI bugs, one cause
Andrew Kesterson
2026-07-31 15:03:37 -04:00
-
cfdde907df
Type at the window with a real keyboard: the akgl_typing test
Andrew Kesterson
2026-07-31 14:35:07 -04:00
-
024a33dbba
Start SDL text input: the AKGL build's keyboard was dead
Andrew Kesterson
2026-07-31 14:23:07 -04:00
-
fca9ad4a89
Consume libakgl 0.3.0: every workaround deleted, two capabilities gained
Andrew Kesterson
2026-07-31 13:25:14 -04:00
-
583c0abbd2
Retire the byte-for-byte fidelity constraint, and fix what it was blocking
Andrew Kesterson
2026-07-31 12:52:00 -04:00
-
eb5374d212
Check the reference corpus in, so the build stops needing the Go submodule
Andrew Kesterson
2026-07-31 12:35:40 -04:00
-
bf9cf85130
Rebase the libakgl filing onto upstream main
Andrew Kesterson
2026-07-31 12:20:43 -04:00
-
46a0693c5f
Re-scope the remaining language queue against what the work turned up
Andrew Kesterson
2026-07-31 12:10:03 -04:00
-
b5974121af
Refresh the coverage numbers and document the new verbs
Andrew Kesterson
2026-07-31 12:09:02 -04:00
-
bfac13ff87
Implement the housekeeping verbs, and stop the REPL spinning after an error
Andrew Kesterson
2026-07-31 12:07:50 -04:00
-
f4007d80d4
Give argument lists their own link, not each argument's .right
Andrew Kesterson
2026-07-31 11:58:15 -04:00
-
5b7b7d2ed9
Add akbasic_runtime_global: a host variable lands in the script's root scope
Andrew Kesterson
2026-07-31 11:53:05 -04:00
-
a31058cf37
Consume the COLON token: a line can hold several statements
Andrew Kesterson
2026-07-31 11:46:10 -04:00
-
0f3d8a0ac6
Close the value.c mutation survivors, and correct one that cannot be
Andrew Kesterson
2026-07-31 11:38:45 -04:00
-
1eb8f9ffaa
Fix five defects the port uncovered in the reference parser and scanner
Andrew Kesterson
2026-07-31 11:35:14 -04:00
-
f24201fdef
Port the standalone SDL frontend, and give the sink a line editor
Andrew Kesterson
2026-07-31 11:21:39 -04:00
-
7897a49fb5
Record the unfinished standalone AKGL frontend
Andrew Kesterson
2026-07-31 10:57:02 -04:00
-
ecdc6b60ef
Delete src/convert.c: libakstdlib 0.2.0 grew the contract it existed for
Andrew Kesterson
2026-07-31 10:28:04 -04:00
-
c70f8e7727
Update the dependency table to libakstdlib and libakgl 0.2.0
Andrew Kesterson
2026-07-31 09:55:47 -04:00
-
0df0a95600
Consume libakgl 0.2.0 and libakstdlib 0.2.0
Andrew Kesterson
2026-07-31 09:53:41 -04:00
-
f7511678b8
Cover -DAKBASIC_WITH_AKGL=ON in CI
Andrew Kesterson
2026-07-31 09:06:24 -04:00
-
ff7bec9f55
Record the real coverage numbers, and how they were nearly misreported
Andrew Kesterson
2026-07-31 08:51:27 -04:00
-
da50da70b5
Bump libakgl to pick up the six defects this port filed
Andrew Kesterson
2026-07-31 08:49:03 -04:00
-
4fc763efb3
Wire the sink and the three devices to libakgl
Andrew Kesterson
2026-07-31 08:46:53 -04:00
-
83185bafa8
Read the keyboard: implement GET, GETKEY and SCNCLR
Andrew Kesterson
2026-07-31 08:35:05 -04:00
-
e24926d429
Sound: implement the BASIC 7.0 sound verbs and the PLAY parser
Andrew Kesterson
2026-07-31 08:29:04 -04:00
-
9d99d0a67e
Draw: implement the BASIC 7.0 graphics verbs
Andrew Kesterson
2026-07-31 08:17:48 -04:00
-
9b9dd09c5a
Reach hardware through backend records, and take the time from the host
Andrew Kesterson
2026-07-31 08:07:23 -04:00
-
5077efc3a7
Re-sequence the language queue now that libakgl closed the gaps
Andrew Kesterson
2026-07-31 08:01:16 -04:00
-
7f16337a16
Bump libakgl to 42b60f7: every gap this port filed is now closed
Andrew Kesterson
2026-07-31 07:56:02 -04:00
-
506af093a1
Add mutation testing, and split the release gates into their own workflow
Andrew Kesterson
2026-07-31 07:46:53 -04:00
-
2ddee571a1
Add a Gitea workflow
Andrew Kesterson
2026-07-31 07:09:38 -04:00
-
134ade9392
Document the public API in libakgl's Doxygen style
Andrew Kesterson
2026-07-31 07:00:16 -04:00
-
e51b9a1694
Document host/script variable exchange, and file the scope hazard it exposes
Andrew Kesterson
2026-07-31 06:50:55 -04:00
-
cde6fa8f59
Port the README from the Go version and document embedding
Andrew Kesterson
2026-07-31 06:42:08 -04:00
-
7531df57ec
Bump libakgl and libakstdlib to pick up the filed issues
Andrew Kesterson
2026-07-31 06:32:42 -04:00
-
f8c15c2f2c
Port the BASIC interpreter from Go to C
Andrew Kesterson
2026-07-30 23:53:56 -04:00