Skip to content

Commit e987a92

Browse files
authored
Merge pull request #516 from boriel/feature/refact_core_labels
Feature/refact core labels
2 parents 53a3ef3 + 14aa0bb commit e987a92

10 files changed

Lines changed: 350 additions & 56 deletions

File tree

src/arch/zx48k/backend/runtime/core.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ class CoreLabels:
5353
ILOADSTR = f"{NAMESPACE}__ILOADSTR"
5454
ISTORE32 = f"{NAMESPACE}__ISTORE32"
5555
ISTOREF = f"{NAMESPACE}__ISTOREF"
56+
LBOUND = f"{NAMESPACE}__LBOUND"
5657
LOADSTR = f"{NAMESPACE}__LOADSTR"
5758
LOAD_DE_DE = f"{NAMESPACE}__LOAD_DE_DE"
5859
LEF = f"{NAMESPACE}__LEF"
@@ -110,6 +111,7 @@ class CoreLabels:
110111
STORE_STR = f"{NAMESPACE}__STORE_STR"
111112
STORE_STR2 = f"{NAMESPACE}__STORE_STR2"
112113
STR_ARRAYCOPY = f"{NAMESPACE}STR_ARRAYCOPY"
114+
STR_FAST = f"{NAMESPACE}__STR_FAST"
113115
STREQ = f"{NAMESPACE}__STREQ"
114116
STRGE = f"{NAMESPACE}__STRGE"
115117
STRGT = f"{NAMESPACE}__STRGT"
@@ -123,6 +125,7 @@ class CoreLabels:
123125
SWAP32 = f"{NAMESPACE}__SWAP32"
124126
U32TOFREG = f"{NAMESPACE}__U32TOFREG"
125127
U8TOFREG = f"{NAMESPACE}__U8TOFREG"
128+
UBOUND = f"{NAMESPACE}__UBOUND"
126129
XOR16 = f"{NAMESPACE}__XOR16"
127130
XOR8 = f"{NAMESPACE}__XOR8"
128131
XOR32 = f"{NAMESPACE}__XOR32"
@@ -179,6 +182,7 @@ class CoreLabels:
179182
CoreLabels.FP_PUSH_REV: 'pushf.asm',
180183
CoreLabels.FTOF16REG: 'ftof16reg.asm',
181184
CoreLabels.FTOU32REG: 'ftou32reg.asm',
185+
CoreLabels.LBOUND: 'bound.asm',
182186
CoreLabels.LEF: 'lef.asm',
183187
CoreLabels.LEI16: 'lei16.asm',
184188
CoreLabels.LEI32: 'lei32.asm',
@@ -236,6 +240,7 @@ class CoreLabels:
236240
CoreLabels.STORE_STR: 'storestr.asm',
237241
CoreLabels.STORE_STR2: 'storestr2.asm',
238242
CoreLabels.STR_ARRAYCOPY: 'strarraycpy.asm',
243+
CoreLabels.STR_FAST: 'str.asm',
239244
CoreLabels.STREQ: 'string.asm',
240245
CoreLabels.STRGE: 'string.asm',
241246
CoreLabels.STRGT: 'string.asm',
@@ -249,6 +254,7 @@ class CoreLabels:
249254
CoreLabels.SWAP32: 'swap32.asm',
250255
CoreLabels.U32TOFREG: 'u32tofreg.asm',
251256
CoreLabels.U8TOFREG: 'u32tofreg.asm',
257+
CoreLabels.UBOUND: 'bound.asm',
252258
CoreLabels.XOR16: 'xor16.asm',
253259
CoreLabels.XOR8: 'xor8.asm',
254260
CoreLabels.XOR32: 'xor32.asm',

src/arch/zx48k/backend/runtime/io.py

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
class IOLabels:
88
# Screen and attributes
99
CLS = f"{NAMESPACE}CLS"
10+
COPY_ATTR = f"{NAMESPACE}COPY_ATTR"
11+
1012
BOLD = f"{NAMESPACE}BOLD"
1113
BRIGHT = f"{NAMESPACE}BRIGHT"
1214
FLASH = f"{NAMESPACE}FLASH"
@@ -16,12 +18,26 @@ class IOLabels:
1618
OVER = f"{NAMESPACE}OVER"
1719
PAPER = f"{NAMESPACE}PAPER"
1820

21+
BOLD_TMP = f"{NAMESPACE}BOLD_TMP"
22+
BRIGHT_TMP = f"{NAMESPACE}BRIGHT_TMP"
23+
FLASH_TMP = f"{NAMESPACE}FLASH_TMP"
24+
INK_TMP = f"{NAMESPACE}INK_TMP"
25+
INVERSE_TMP = f"{NAMESPACE}INVERSE_TMP"
26+
ITALIC_TMP = f"{NAMESPACE}ITALIC_TMP"
27+
OVER_TMP = f"{NAMESPACE}OVER_TMP"
28+
PAPER_TMP = f"{NAMESPACE}PAPER_TMP"
29+
30+
BORDER = f"{NAMESPACE}BORDER"
31+
1932
# Drawing primitives
2033
CIRCLE = f"{NAMESPACE}CIRCLE"
2134
DRAW = f"{NAMESPACE}DRAW"
2235
DRAW3 = f"{NAMESPACE}DRAW3"
2336
PLOT = f"{NAMESPACE}PLOT"
2437

38+
# Keyboard
39+
INKEY = f"{NAMESPACE}INKEY"
40+
2541
# Print ("console")
2642
PRINTI16 = f"{NAMESPACE}__PRINTI16"
2743
PRINTI32 = f"{NAMESPACE}__PRINTI32"
@@ -42,9 +58,15 @@ class IOLabels:
4258
LOAD_CODE = f"{NAMESPACE}LOAD_CODE"
4359
SAVE_CODE = f"{NAMESPACE}SAVE_CODE"
4460

61+
# Sound
62+
BEEP = f"{NAMESPACE}BEEP"
63+
BEEPER = f"{NAMESPACE}__BEEPER"
64+
4565

4666
REQUIRED_MODULES = {
4767
IOLabels.CLS: 'cls.asm',
68+
IOLabels.COPY_ATTR: 'copy_attr.asm',
69+
4870
IOLabels.BOLD: 'bold.asm',
4971
IOLabels.BRIGHT: 'bright.asm',
5072
IOLabels.FLASH: 'flash.asm',
@@ -54,11 +76,24 @@ class IOLabels:
5476
IOLabels.OVER: 'over.asm',
5577
IOLabels.PAPER: 'paper.asm',
5678

79+
IOLabels.BOLD_TMP: 'bold.asm',
80+
IOLabels.BRIGHT_TMP: 'bright.asm',
81+
IOLabels.FLASH_TMP: 'flash.asm',
82+
IOLabels.INK_TMP: 'ink.asm',
83+
IOLabels.INVERSE_TMP: 'inverse.asm',
84+
IOLabels.ITALIC_TMP: 'italic.asm',
85+
IOLabels.OVER_TMP: 'over.asm',
86+
IOLabels.PAPER_TMP: 'paper.asm',
87+
88+
IOLabels.BORDER: 'border.asm',
89+
5790
IOLabels.CIRCLE: 'circle.asm',
5891
IOLabels.DRAW: 'draw.asm',
5992
IOLabels.DRAW3: 'draw3.asm',
6093
IOLabels.PLOT: 'plot.asm',
6194

95+
IOLabels.INKEY: 'inkey.asm',
96+
6297
IOLabels.LOAD_CODE: 'load.asm',
6398
IOLabels.SAVE_CODE: 'save.asm',
6499

@@ -76,4 +111,7 @@ class IOLabels:
76111
IOLabels.PRINT_EOL: 'print.asm',
77112
IOLabels.PRINT_EOL_ATTR: 'print_eol_attr.asm',
78113
IOLabels.PRINT_TAB: 'print.asm',
114+
115+
IOLabels.BEEP: 'beep.asm',
116+
IOLabels.BEEPER: 'beeper.asm'
79117
}

src/arch/zx48k/backend/runtime/labels.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,18 @@
77
from . import core
88
from . import datarestore
99
from . import io
10+
from . import math
1011
from . import random
12+
from . import misc
1113

1214

1315
class Labels(
1416
core.CoreLabels,
1517
datarestore.DataRestoreLabels,
1618
io.IOLabels,
17-
random.RandomLabels
19+
math.MathLabels,
20+
misc.MiscLabels,
21+
random.RandomLabels,
1822
):
1923
""" All labels
2024
"""
@@ -40,6 +44,8 @@ def dict_join(*args: Dict[str, str]) -> Dict[str, str]:
4044
LABEL_REQUIRED_MODULES = dict_join(
4145
core.REQUIRED_MODULES,
4246
datarestore.REQUIRED_MODULES,
47+
math.REQUIRED_MODULES,
4348
io.REQUIRED_MODULES,
44-
random.REQUIRED_MODULES
49+
random.REQUIRED_MODULES,
50+
misc.REQUIRED_MODULES
4551
)
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
# Runtime labels
2+
3+
from .namespace import NAMESPACE
4+
5+
6+
class MathLabels:
7+
ACS = f"{NAMESPACE}ACOS"
8+
ASN = f"{NAMESPACE}ASIN"
9+
ATN = f"{NAMESPACE}ATAN"
10+
COS = f"{NAMESPACE}COS"
11+
SIN = f"{NAMESPACE}SIN"
12+
TAN = f"{NAMESPACE}TAN"
13+
14+
EXP = f"{NAMESPACE}EXP"
15+
LN = f"{NAMESPACE}LN"
16+
SQR = f"{NAMESPACE}SQRT"
17+
18+
SGNI8 = f"{NAMESPACE}__SGNI8"
19+
SGNU8 = f"{NAMESPACE}__SGNU8"
20+
SGNI16 = f"{NAMESPACE}__SGNI16"
21+
SGNU16 = f"{NAMESPACE}__SGNU16"
22+
SGNI32 = f"{NAMESPACE}__SGNI32"
23+
SGNU32 = f"{NAMESPACE}__SGNU32"
24+
SGNF16 = f"{NAMESPACE}__SGNF16"
25+
SGNF = f"{NAMESPACE}__SGNF"
26+
27+
28+
REQUIRED_MODULES = {
29+
MathLabels.ACS: 'acos.asm',
30+
MathLabels.ASN: 'asin.asm',
31+
MathLabels.ATN: 'atan.asm',
32+
MathLabels.COS: 'cos.asm',
33+
MathLabels.SIN: 'sin.asm',
34+
MathLabels.TAN: 'tan.asm',
35+
36+
MathLabels.EXP: 'exp.asm',
37+
MathLabels.LN: 'logn.asm',
38+
MathLabels.SQR: 'sqrt.asm',
39+
40+
MathLabels.SGNI8: 'sgni8.asm',
41+
MathLabels.SGNU8: 'sgnu8.asm',
42+
MathLabels.SGNI16: 'sgni16.asm',
43+
MathLabels.SGNU16: 'sgnu16.asm',
44+
MathLabels.SGNI32: 'sgni32.asm',
45+
MathLabels.SGNU32: 'sgnu32.asm',
46+
MathLabels.SGNF16: 'sgnf16.asm',
47+
MathLabels.SGNF: 'sgnf.asm'
48+
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# Miscelaneous functions
2+
3+
from .namespace import NAMESPACE
4+
5+
6+
class MiscLabels:
7+
ASC = f"{NAMESPACE}__ASC"
8+
CHR = f"{NAMESPACE}CHR"
9+
PAUSE = f"{NAMESPACE}__PAUSE"
10+
USR = f"{NAMESPACE}USR"
11+
USR_STR = f"{NAMESPACE}USR_STR"
12+
VAL = f"{NAMESPACE}VAL"
13+
14+
15+
REQUIRED_MODULES = {
16+
MiscLabels.ASC: 'asc.asm',
17+
MiscLabels.CHR: 'chr.asm',
18+
MiscLabels.PAUSE: 'pause.asm',
19+
MiscLabels.USR: 'usr.asm',
20+
MiscLabels.USR_STR: 'usr_str.asm',
21+
MiscLabels.VAL: 'val.asm'
22+
}

src/arch/zx48k/backend/runtime/random.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,10 @@
55

66
class RandomLabels:
77
RANDOMIZE = f"{NAMESPACE}RANDOMIZE"
8+
RND = f"{NAMESPACE}RND"
89

910

1011
REQUIRED_MODULES = {
1112
RandomLabels.RANDOMIZE: 'random.asm',
13+
RandomLabels.RND: 'random.asm'
1214
}

0 commit comments

Comments
 (0)