(c) И.Гриневич, 1996
Автор предложил свой вариант печати символами двойной высоты, который
позволил расположить текст нормально, и уменьшил длину программы.
10 ORG 40000
20 BEG LD DE,16384
30 LD HL,TEXT
40 LK LD (TEMP),HL
50 LD BC,15360
60 XOR A
70 LD L,(HL)
80 OR L
90 RET Z
100 LD H,C
110 ADD HL,HL
120 ADD HL,HL
130 ADD HL,HL
140 ADD HL,BC
150 PUSH DE
160 LD C,2
170 LKT PUSH DE
180 LD B,4
190 LOOP LD A,(HL)
200 LD (DE),A
210 INC D
220 LD (DE),A
230 INC D
240 INC HL
250 DJNZ LOOP
260 POP DE
270 LD A,E
280 ADD A,32
290 LD E,A
300 DEC C
310 JR NZ,LKT
320 POP DE
330 INC DE
340 LD A,E
350 AND 31
360 JR NZ,OBH
370 LD A,E
380 ADD A,32
390 LD E,A
400 OBH LD HL,(TEMP)
410 INC HL
420 JR LK
430 TEMP DEFW 0
440 TEXT DEFM "HELLO ALL HACKERS"
450 DEFB 0
Можно распечатать то, что находится в строке за оператором REM, только
надо не забыть поставить 0 в конце текста, а то будет печататься разная ерунда.
Можно получить оригинальный шрифт, если вставить следующую строку:
215 XOR A
Ниже приводим дамп кодов для процедуры с нормальным шрифтом.
9C40: 11 00 40 21 7E 9C 22 7C :06
9C48: 9C 01 00 3C AF 6E B5 C8 :57
9C50: 61 29 29 29 09 D5 0E 02 :B6
9C58: D5 06 04 7E 12 14 12 14 :9D
9C60: 23 10 F8 D1 7B C6 20 5F :B8
9C68: 0D 20 ED D1 13 7B E6 1F :82
9C70: 20 04 7B C6 20 5F 2A 7C :96
9C78: 9C 23 18 CA 8F 9C 48 45 :6D
9C80: 4C 4C 4F 20 41 4C 4C 20 :1C
9C88: 48 41 43 4B 45 52 53 00 :25