-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathPASM Language.txt
51 lines (40 loc) · 1.18 KB
/
PASM Language.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
=============================================Identifiers============================================
Private Label: .label
Local Label: .!label
Segment: !seg
Local Parameter: %param
Global Parameter %!param
Local Nametag: :name
Global Nametag: :!name
=============================================Directives=============================================
// Data management
@data :name array dec [ 1 2 3 4 5 ]
@data :name string "lrrli larlom\r\n\0"
@data :name reserve 100h
@data multi :name
array dec [ 9 8 7 6 ]
string "aeiou\r\n0"
reserve 256d 45h
array hex [ 45 12 53 ]
@data end
// Code management
@code :name
@code end
// Grouping
@segment !seg_id
@segment end
// Parameterization
@param %param set 42069dx
@param %param equ !seg:nam# - 420d + %param
// Static libs and multi-file management
@relocate !seg F000hx
@include "file.psmx" only !seg
// Environment-specific settings
@meta static_lib
@meta entry !seg:main
@meta ...
=============================================Quantifiers============================================
!seg# <- Size of the segment
(!seg):tag# <- Size of the tagged block
(!seg):tag$ <- Offset from start of segment
.label$ <- Offset from start of code block