uxn

Varvara Ordinator, written in ANSI C(SDL2)
git clone https://git.eamoncaddigan.net/uxn.git
Log | Files | Refs | README | LICENSE

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:
Metc/asma.lua | 36------------------------------------
Metc/asma.moon | 27---------------------------
Mprojects/software/asma.usm | 87+------------------------------------------------------------------------------
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 - &note :&channel $2 "note 00 0003 - &_entry :&note :&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