forked from mariusz-buk/effectus
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathdev_log.txt
128 lines (96 loc) · 3.88 KB
/
dev_log.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
===========================================================
Effectus - Missing features and bug issues (wrong syntax)
===========================================================
Not yet supported
-----------------
- SET directive addressing
- Note and Point PROCedures for disk drives support
- Error handling is currently managed and outputed by Mad Pascal when error arises
Bug issues
----------
- FUNCtion conducted as inline machine language block does not return a value
- PROC/FUNC parameter types missing: BYTE ARRAY, CARD ARRAY, POINTER
- Pointers are not yet fully supported
- BYTE/CARD ARRAY declaration structure has to follow some rules to be compiled correctly:
Wrong syntax:
BYTE ARRAY ndl=
[112 112 112 66 64 156 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 86 216 159 65 32 156]
BYTE ARRAY ndl=[
112 112 112 66 64 156 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 86 216 159 65 32 156
]
Correct syntax (characters "=", "[" and data (or part of data) must be on the same line):
BYTE ARRAY ndl=[112 112 112 66 64 156 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 86 216 159 65 32 156]
BYTE ARRAY CLRS=[64 66 68 70 72 74
72 70 68 66 64 66 68 70 72
74 72 70 68 66 64 66 68
70 72 74 76 ]
Note!
Ending ] bracket must end with some data before it
Wrong syntax:
BYTE ARRAY ndl=[
112 112 112 66 64 156 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 86 216 159 65 32 156
]
Correct syntax:
BYTE ARRAY ndl=[112 112 112 66 64 156
2 2 2 2 2 2 2 2 2 2 2 2 2
2 2 2 2 2 2 2 2 86 216 159 65 32 156]
- TYPE declaration structure has to follow some rules to be compiled correctly:
Wrong syntax:
TYPE REC = [BYTE day, month CARD year
BYTE height]
Correct syntax: (ending "]" character must be separated from other values):
TYPE REC = [
BYTE day, month CARD year
BYTE height
]
or
TYPE REC =
[
BYTE day, month CARD year
BYTE height
]
- DEFINE issues:
- You are free to name DEFINE constants as you like, but it is adviceable to name them
prefixed with "_" character in case same names appear anywhere else in the program
inside other strings. Currently, parser does not differentiate between constants for whole
words or substrings inside strings.
- DEFINE constants must be named with length of at least 3 characters:
Wrong syntax:
DEFINE P="PUTD(6,"
DEFINE Pr="PUTD(6,"
Correct syntax:
DEFINE Cls="PUT(125)"
DEFINE Black="Poke(710,0)"
DEFINE max="3"
DEFINE Pre="PUTD(6,"
- DEFINE constant value definition must start and end with '"' character on the same line
Wrong syntax:
DEFINE GETTEMPS="[$68 $85 $D3 $A2 $00 $68
$95 $80 $68 $95 $A0 $68 $95 $A8
$68 $95 $C0 $E8 $E0 $08 $D0 $EF]"
Correct syntax:
DEFINE GETTEMPS="[$68 $85 $D3 $A2 $00 $68 $95 $80 $68 $95 $A0 $68 $95 $A8 $68 $95 $C0 $E8 $E0 $08 $D0 $EF]"
- Variable declared as BYTE ARRAY or CARD ARRAY with predeclared values MUST NOT be
the last variable declaration in PROCedures or FUNCtions. This would lead to
missing declaration of such variable in created Mad Pascal listing code.
Wrong syntax:
PROC Main()
BYTE ch, dir
BYTE ARRAY new_dir=[$D7 $D8 $D9 $FF 1 39 40 41]
dir = 1
...
Correct syntax:
PROC Main()
BYTE ARRAY new_dir=[$D7 $D8 $D9 $FF 1 39 40 41]
BYTE ch, dir
dir = 1
...
- It is NOT possible to declare string constant on pre-dimensioned BYTE ARRAY variable:
Wrong syntax:
BYTE ARRAY str2(20)="Second text"
Correct syntax:
BYTE ARRAY str2="Second text"
- Elements of CARD ARRAY variable type must be of the same type. You cannot assign string to such variable!
Wrong syntax:
CARD ARRAY items(12)
items(3)="Atari forever"