commit 8895a82
zzo38
·
2023-09-06 05:17:29 +0000 UTC
parent 3390b8c
Add prg/euctronto32.tal (convert EUC-TRON to TRON-32BE)
1 files changed,
+61,
-0
+61,
-0
1@@ -0,0 +1,61 @@
2+\\ Convert EUC-TRON to TRON-32BE
3+\\ (public domain)
4+
5+\\ (Note: This program does not (currently) attempt to convert ASCII to
6+\\ JIS, therefore resulting in the "JIS-hybrid TRON-32", rather than the
7+\\ "pure TRON-32".
8+
9+|0100
10+ [& BRK STH2 #12 DEI JMP2r ]@ INC2rk LITr 10 DEO2r EQUrk JSRr
11+
12+ JSR2rk
13+ DUP #7f GTH [?
14+ \\ single byte
15+ @single
16+ #0018 DEOk DEOk DEOk NIP DEO
17+ JMP2k
18+ ]@
19+ DUP #a0 LTH [?
20+ \\ double byte JIS X 0208 or first plane of JIS X 0213
21+ #7f AND
22+ @double
23+ #0018 DEO #2118 DEOk NIP DEO
24+ JSR2rk
25+ #7f AND #18 DEO
26+ JMP2k
27+ ]@
28+ DUP #8e NEQ [?
29+ \\ katakana
30+ POP ;single JMP2rk
31+ ]@
32+ DUP #8f NEQ [?
33+ \\ double byte JIS X 0212 or second plane of JIS X 0213
34+ DUP EOR JSR2rk
35+ DUP #ee LTH [? #5e SUB @ndouble NIP !double ]@
36+ DUP #af GTH ?ndouble
37+ ;jisx ADD2 LDA !double
38+ ]@
39+ \\ TRON character (now the code #88 to #8d is on stack, to save for later)
40+ #8000 ( zone plane_add volume )
41+ JSR2rk DUP #fe AND #90 NEQ [? ROT INC EOR #c0 MUL SWP JSR2rk ]@
42+ [@ DUP #80 NEQ ?q POP INC JSR2rk ]!
43+ @q ( zone plane_add volume plane )
44+ SWP #18 DEO
45+ ADD #18 DEO
46+ JSR2rk JSR2rk
47+ ROT #0007 SFT2 ;zone ADD2 LDA2 JSR2
48+ SUB2 SWP #18 DEOk NIP DEO JMP2k
49+
50+\_@a1'- \@jisx
51+( 0 1 2 3 4 5 6 7 8 9 a b c d e f )
52+ 87 a2 88 89 8a a6 a7 8b a9 aa ab 8c 8d 8e 8f
53+
54+\_@0110"- \@zone :z8 :z9 :za :zb :zc :zd
55+
56+@z8 #8080 JMP2r
57+@z9 #0080 JMP2r
58+@za #8000 JMP2r
59+@zb DUP2k EOR2 JMP2r
60+@zc DUP #c0 LTH [? SWP #8040 JMP2r ]@ #2080 JMP2r
61+@zd DUP #bf GTH [? #2000 JMP2r ]@ DUP #df GTH [? SWP #0040 ]@ #6060 JMP2r
62+