commit 300f3dfa75dbc28c4bec13489c425924d9d99ede
parent 8bf9aa78da1229bd6167b80403c073b0dcba028a
Author: Andrew Alderwick <andrew@alderwick.co.uk>
Date: Sat, 15 May 2021 18:25:06 +0100
Don't preseed devices in label tree.
Diffstat:
3 files changed, 1 insertion(+), 149 deletions(-)
diff --git a/etc/asma.lua b/etc/asma.lua
@@ -23,7 +23,6 @@ spairs = function(t)
end
end
local trees = {
- ['asma-labels'] = { },
['asma-opcodes'] = { }
}
local opcodes_in_order = { }
@@ -50,41 +49,6 @@ do
assert(#opcodes_in_order == 32, 'didn\'t find 32 opcodes in assembler code!')
end
do
- local add_device
- add_device = function(addr, name, fields)
- addr = tonumber(addr, 16)
- local k
- if name:match('^Audio%x+$') then
- k = 'asma-ldev-Audio'
- else
- k = ('asma-ldev-%s'):format(name)
- end
- trees['asma-labels'][name] = {
- ('"%s 00'):format(name),
- ('00%02x :%s/_entry'):format(addr, k)
- }
- trees[k] = { }
- addr = 0
- for fname, flen in fields:gmatch('%&(%S+) +%$(%x+)') do
- if fname ~= 'pad' then
- trees[k][fname] = {
- ('"%s 00'):format(fname),
- ('00%02x'):format(addr)
- }
- end
- addr = addr + tonumber(flen, 16)
- end
- end
- for l in assert(io.lines('projects/examples/blank.usm')) do
- local f = {
- l:match('^%|(%x%x) +%@(%S+) +%[ (.*) %]')
- }
- if f[1] then
- add_device(unpack(f))
- end
- end
-end
-do
local representation = setmetatable({
['&'] = '26 00 ( & )'
}, {
diff --git a/etc/asma.moon b/etc/asma.moon
@@ -9,7 +9,6 @@ spairs = (t) ->
keys[i], t[keys[i]]
trees = {
- ['asma-labels']: {}
['asma-opcodes']: {}
}
@@ -32,32 +31,6 @@ do -- opcodes
table.insert opcodes_in_order, w
assert #opcodes_in_order == 32, 'didn\'t find 32 opcodes in assembler code!'
-do -- devices -> labels
- add_device = (addr, name, fields) ->
- addr = tonumber addr, 16
- k = if name\match '^Audio%x+$'
- 'asma-ldev-Audio'
- else
- 'asma-ldev-%s'\format name
- trees['asma-labels'][name] = {
- '"%s 00'\format name
- '00%02x :%s/_entry'\format addr, k
- }
- trees[k] = {}
- addr = 0
- for fname, flen in fields\gmatch '%&(%S+) +%$(%x+)'
- if fname != 'pad'
- trees[k][fname] = {
- '"%s 00'\format fname,
- '00%02x'\format addr
- }
- addr += tonumber flen, 16
- for l in assert io.lines 'projects/examples/blank.usm'
- f = { l\match '^%|(%x%x) +%@(%S+) +%[ (.*) %]' }
- if f[1]
- add_device unpack f
-
-
do -- first characters
representation = setmetatable {
'&': '26 00 ( & )'
diff --git a/projects/software/asma.usm b/projects/software/asma.usm
@@ -148,7 +148,7 @@
#ff ;asma/pass STA
#0000 ;asma/error STA2
;asma-heap ;asma/heap STA2
- ;asma-labels/_entry ;asma-trees/labels STA2
+ #0000 ;asma-trees/labels STA2
( FIXME should walk the label tree and remove any in the heap )
;asma-opcodes/_entry ;asma-trees/opcodes STA2
#0000 ;asma-trees/macros STA2
@@ -754,91 +754,6 @@
&7c :&7b :&7d '| 00 :asma-pad-absolute
&7d $2 $2 '} 00 :asma-ignore
-@asma-labels
- &Audio0 $2 $2 "Audio0 00 0030 :asma-ldev-Audio/_entry
- &Audio1 :&Audio0 :&Audio2 "Audio1 00 0040 :asma-ldev-Audio/_entry
- &Audio2 $2 $2 "Audio2 00 0050 :asma-ldev-Audio/_entry
- &Audio3 :&Audio1 :&Controller "Audio3 00 0060 :asma-ldev-Audio/_entry
- &Console $2 $2 "Console 00 0010 :asma-ldev-Console/_entry
- &Controller :&Console $2 "Controller 00 0080 :asma-ldev-Controller/_entry
- &_entry :&Audio3 :&Mouse "DateTime 00 00b0 :asma-ldev-DateTime/_entry
- &File $2 $2 "File 00 00a0 :asma-ldev-File/_entry
- &Midi :&File $2 "Midi 00 0070 :asma-ldev-Midi/_entry
- &Mouse :&Midi :&System "Mouse 00 0090 :asma-ldev-Mouse/_entry
- &Screen $2 $2 "Screen 00 0020 :asma-ldev-Screen/_entry
- &System :&Screen $2 "System 00 0000 :asma-ldev-System/_entry
-
-@asma-ldev-Audio
- &addr $2 $2 "addr 00 000c
- &adsr :&addr $2 "adsr 00 0008
- &length :&adsr :&output "length 00 000a
- &output $2 $2 "output 00 0004
- &_entry :&length :&vector "pitch 00 000f
- &position $2 $2 "position 00 0002
- &vector :&position :&volume "vector 00 0000
- &volume $2 $2 "volume 00 000e
-
-@asma-ldev-Console
- &byte $2 $2 "byte 00 0009
- &char :&byte $2 "char 00 0008
- &_entry :&char :&string "short 00 000a
- &string $2 $2 "string 00 000c
-
-@asma-ldev-Controller
- &button $2 $2 "button 00 0002
- &_entry :&button :&vector "key 00 0003
- &vector $2 $2 "vector 00 0000
-
-@asma-ldev-DateTime
- &day $2 $2 "day 00 0003
- &dotw :&day $2 "dotw 00 0007
- &doty :&dotw :&hour "doty 00 0008
- &hour $2 $2 "hour 00 0004
- &_entry :&doty :&second "isdst 00 000a
- &minute $2 $2 "minute 00 0005
- &month :&minute $2 "month 00 0002
- &second :&month :&year "second 00 0006
- &year $2 $2 "year 00 0000
-
-@asma-ldev-File
- &length $2 $2 "length 00 000a
- &load :&length :&name "load 00 000c
- &name $2 $2 "name 00 0008
- &_entry :&load :&success "offset 00 0004
- &save $2 $2 "save 00 000e
- &success :&save :&vector "success 00 0002
- &vector $2 $2 "vector 00 0000
-
-@asma-ldev-Midi
- &channel $2 $2 "channel 00 0002
- ¬e :&channel $2 "note 00 0003
- &_entry :¬e :&velocity "vector 00 0000
- &velocity $2 $2 "velocity 00 0004
-
-@asma-ldev-Mouse
- &chord $2 $2 "chord 00 0007
- &state :&chord $2 "state 00 0006
- &_entry :&state :&y "vector 00 0000
- &x $2 $2 "x 00 0002
- &y :&x $2 "y 00 0004
-
-@asma-ldev-Screen
- &addr $2 $2 "addr 00 000c
- &color :&addr :&height "color 00 000e
- &height $2 $2 "height 00 0004
- &_entry :&color :&x "vector 00 0000
- &width $2 $2 "width 00 0002
- &x :&width :&y "x 00 0008
- &y $2 $2 "y 00 000a
-
-@asma-ldev-System
- &b $2 $2 "b 00 000c
- &g :&b :&r "g 00 000a
- &r $2 $2 "r 00 0008
- &_entry :&g :&wst "rst 00 0003
- &vector $2 $2 "vector 00 0000
- &wst :&vector $2 "wst 00 0002
-
@asma-opcodes
&BRK :&AND :&DEI &_disasm "BRK 00
&_entry :&EQU :&ROT "LIT 00