⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 a24tolin.bas

📁 将24*24点阵汉字转为72字节点阵数据
💻 BAS
字号:
	DECLARE SUB hz (cw1!, cw2!, x2!, y2!, co!)
DECLARE SUB zh ()
DIM SHARED zc(2), e(24), d(24), aa$(24, 3), a$(3), b$(24), g$(3), h$(3), g(3, 24), f(24, 24)
DIM SHARED file$, file3$, cw1, cw2, x2, y2, co
CLS
SCREEN 12
ON ERROR GOTO handle1
INPUT "File name="; file$
OPEN file$ + ".lib" FOR INPUT AS #1
CLOSE
zh
END
handle1:
	LOCATE 5, 1: PRINT "This file does't exist!"
	END

SUB hz (cw1, cw2, x2, y2, co)
DIM h2 AS INTEGER
d = 0: cc1 = 94 * cw1 + cw2: p = cc1 * 72
c$ = "": c1$ = ""
FOR i = 1 TO 24: : Y3 = 0
	FOR l = 1 TO 3: d = d + 1: GET #1, p + d, h2: aa$(i, l) = RIGHT$(HEX$(h2), 2)
		IF LEN(aa$(i, l)) = 1 THEN aa$(i, l) = "0" + aa$(i, l)
		b2$ = "&h" + aa$(i, l): b1$ = "&h" + aa$(i, l) + "00"
		LINE (x2 + i, y2 + Y3)-(x2 + i, y2 + 15 + Y3), co, , VAL(b1$)
		Y3 = Y3 + 8
		c$ = c$ + aa$(i, l): c1$ = c1$ + CHR$(VAL(b2$))
	NEXT
	b$(i) = "&h" + aa$(i, 1) + aa$(i, 2) + aa$(i, 3)
		' LPRINT "      b$("; i; "):"; b$(i)
	d(i) = VAL(b$(i)): e(i) = d(i)
	IF e(i) < 0 THEN e(i) = 2 ^ 16 + e(i)
NEXT
PRINT #5, c$

FOR i = 1 TO 24:
	FOR J = 24 TO 1 STEP -1
	f(i, J) = e(i) MOD 2: e(i) = INT(e(i) / 2):
	'LPRINT "f("; i; ","; J; ")="; f(i, J); "|";
	NEXT
NEXT
	a$(1) = "": a$(2) = "": a$(3) = "": a$ = ""
	g$(1) = "": g$(2) = "": g$(3) = ""
	h$(1) = "": h$(2) = "": h$(3) = "": h$ = ""
FOR J = 1 TO 24: g(1, J) = 0: g(2, J) = 0: g(3, J) = 0:
	FOR i = 8 TO 1 STEP -1
		g(1, J) = g(1, J) + f(i, J) * 2 ^ (8 - i)
		g(2, J) = g(2, J) + f(i + 8, J) * 2 ^ (8 - i)
		g(3, J) = g(3, J) + f(i + 16, J) * 2 ^ (8 - i)
	'LPRINT "g(1-2,"; J; ")="; g(1, J); "-"; g(2, J); "|";
	NEXT
	g$(1) = HEX$(g(1, J))
	g$(2) = HEX$(g(2, J))
	g$(3) = HEX$(g(3, J))
	IF LEN(g$(1)) = 1 THEN g$(1) = "0" + g$(1)
	IF LEN(g$(2)) = 1 THEN g$(2) = "0" + g$(2)
	IF LEN(g$(3)) = 1 THEN g$(3) = "0" + g$(3)
	a$(1) = a$(1) + g$(1): a$(2) = a$(2) + g$(2): a$(3) = a$(3) + g$(3)
	h$(1) = h$(1) + CHR$(g(1, J)): h$(2) = h$(2) + CHR$(g(2, J))
	h$(3) = h$(3) + CHR$(g(3, J)): a$ = a$ + g$(1) + g$(2) + g$(3)
	h$ = h$ + CHR$(g(1, J)) + CHR$(g(2, J)) + CHR$(g(3, J))
NEXT
LPRINT "      cw1="; cw1, "cw2="; cw2
LPRINT "      A$(1):"; a$(1)
LPRINT "      A$(2):"; a$(2)
LPRINT "      A$(3):"; a$(3)
PRINT #4, h$;
PRINT #2, a$
END SUB

SUB zh
CLS
file1$ = file$ + ".lin"
file2$ = file$ + ".lib"
file4$ = file$ + ".zm"
file5$ = file$ + ".lpt"
INPUT "24lib name="; file3$
OPEN file3$ FOR BINARY AS #1
OPEN file1$ FOR OUTPUT AS #2
OPEN file4$ FOR OUTPUT AS #4
OPEN file5$ FOR OUTPUT AS #5
OPEN file2$ FOR RANDOM AS #3 LEN = 2
FIELD #3, 2 AS hh1$
t1$ = TIME$
x2 = 1: y2 = 40: co = 3
FOR i = 1 TO 2500
	GET #3, i:
	FOR J = 1 TO 2
		zc$ = MID$(hh1$, J, 1)
		zc(J) = ASC(zc$)
	NEXT
	IF zc(1) = &HA OR (zc(1) = 0 AND zc(2) = 0) THEN t2$ = TIME$: PRINT t1$, t2$: SLEEP: END
	IF zc(1) <> &HD AND zc(2) <> &HA THEN
		a = zc(1) - 160: b = zc(2) - 161
		IF a > 16 THEN a = a - 16
		IF a < 0 THEN END
		cw1 = a: cw2 = b
		IF x2 > 10 * 24 THEN x2 = 1: y2 = y2 + 30
		hz cw1, cw2, x2, y2, co: x2 = x2 + 24
	END IF
NEXT
CLOSE
END SUB

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -