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+