Сообщение от
fk0
Вот ещё пример: печаталка 64 символа в строке без развёрнутых
шрифтов ужатая Михаилом Жаровым до каких-то смехотворных
тактов и байтов. Аналогов не существует. Оптимизировалось несколькими людьми в течении достаточно длительного времени.
Хрен сам ты её за 5 минут напишешь.
С хреном не писал, но пока кушал после работы - написал ... Конечно это не 5 минут, но 30 есть ... За три прерывания полностью перепечатывается весь экран текстом. Шрифт, какой был, такой влепил. Полностью вся печаталка 129 байт с расписыванием на восемь повторений, без расписывания 62 байта. Вот код:
Код:
STARTC EQU 32768
ORG STARTC-256
IncBIN "f8x8-cs.fnn"
BUBLIK EQU $
ORG STARTC
DS 256-1
DW INT
ORG STARTC
HALT
LD HL,22528
LD DE,22529
LD BC,767
LD (HL),5*8+0
LD A,5
OUT (254),A
LDIR
DI
LD HL,M1xS
LD DE,M1xE
LD BC,(M1xE-M1xS)*7-3
LDIR
JP START
ORG BUBLIK
START:
LD B,30
LD HL,TEXT
M0 PUSH BC
PUSH HL
LD (MSP+1),SP
LD SP,HL
LD DE,16384
LD A,D
M2 LD (M1xA+1),A
M1 POP HL
LD C,H
LD B,HIGH (STARTC)+1
LD H,B
M1xA LD D,0
M1xS LD A,(BC) ;7 7+4*4+7+7+4+4+4=49
RLCA ;4
RLCA ;4
RLCA ;4
RLCA ;4
OR (HL) ;7
LD (DE),A ;7
INC H ;4
INC B ;4
INC D ;4
M1xE DS (M1xE-M1xS)*7-3
INC E
JP NZ,M1
INC D
LD A,D
CP 88
JR NZ,M2
LD HL,0
ADD HL,SP
EX DE,HL
MSP LD SP,0
POP HL
POP BC
DJNZ M0
INC B
EX DE,HL
JR M0
INT: RETI
TEXT DUP 32
DB "Super Puper Text ... Так быстро, что тормозит ... "
EDUP
ORG TEXT+64*24
; DW INT-START
SaveBIN "less-001.c",STARTC,$-STARTC
SaveTRD 'less-001.trd','1.C',STARTC,$-STARTC
Ну и ссылочка: