commit df57a72
zzo38
·
2022-12-11 00:50:41 +0000 UTC
parent de65bbc
Add prg/namtosym.tal (program to convert format of symbol file)
1 files changed,
+55,
-0
+55,
-0
1@@ -0,0 +1,55 @@
2+\\ Program to convert symbol file from the unofficial format to the
3+\\ official format. This file is public domain.
4+
5+%_error { LIT2r :error JSR2r }
6+
7+|0100
8+
9+ \\ Read input file name
10+ LIT2r 0000 [; #10 DEO2 BRK ]@
11+ #12 DEI
12+ DUP #0a EQU [, JCN STHrk STZ INCr BRK ]@
13+ STZrk POPr DUPr
14+ STH2rk #a8 DEO
15+
16+ \\ Read output file name
17+ [; #10 DEO2 BRK ]@
18+ #12 DEI
19+ DUP #0a EQU [, JCN STHrk STZ INCr BRK ]@
20+ STZr #0000 #b8 DEO
21+
22+@loop
23+
24+ \\ Address
25+ #ac DEI
26+ #a3 DEI [, JCN #010f DEO ]@
27+ LIT "| EQU [, JCN _error "Expected 20 "| 0a ]@
28+ ,rhex JSR ,rhex JSR #00 STZ2
29+ #0002 #ba DEO2
30+ #0000 #be DEO2
31+
32+ \\ Name
33+ #ac DEI #20 EQU [, JCN _error "Expected 20 "space 0a ]@
34+ #ac DEI "@ EQU [, JCN _error "Expected 20 "@ 0a ]@
35+ LIT2r 00ff
36+ [@ #ac DEI DUP INCr STHrk STZ #0a EOR ], JCN
37+ STH2rk STZr INC #ba DEO2 #0000 #be DEO2
38+
39+ \\ Next record
40+ ;loop JMP2
41+
42+@rhex ( -- number )
43+ ,rhex1 JSR #40 SFT ,rhex1 JSR ORA JMP2r
44+
45+@error
46+ #0001 SUB2 [@ INC2 LDAk DUP #19 DEO #0a EOR ], JCN
47+ #010f DEO
48+
49+@rhex1 ( -- number )
50+ #ac DEI
51+ DUP #30 LTH ,&bad JCN
52+ DUP #39 GTH [, JCN #30 SUB JMP2r ]@
53+ DUP #61 LTH ,&bad JCN
54+ DUP #66 GTH [, JCN #57 SUB JMP2r ]@
55+ &bad _error "Expected 20 "hex 20 "digit 0a
56+