; МОНИТОР-1 (уже с исправлениями для DIR_R из РАДИО 08.1990)
.Z80
aseg
ORG 100H
STACK EQU 0F3C9H
J_F821 EQU 0F3C9H
V_F821 EQU 0F3CAH
J_COUT EQU 0F3CCH ; вход в векторизованный CONOUT
V_COUT EQU 0F3CDH
PPAKBD EQU 0F400H
DOPPPA EQU 0F500H
HISCRN EQU 0F3CFH ; нач.адрес экрана
WIDTH EQU 0F3D0H ; ширина экрана в байтах
AFONT EQU 0F3D1H ; адрес фонта
INVERS EQU 0F3D3H ; признак инверсии символов
POSX EQU 0F3D4H ; N столбца курсора (в М2 это 0F3D6H)
POSY EQU 0F3D5H ; N строки курсора (в М2 это 0F3D7H)
ERRMG EQU 0F3D8H ; адрес вылета по TAPE LOAD ERR
CSV EQU 0F3DAH ; конст. SAVE
CLD EQU 0F3DBH ; конст. LOAD
INVMG EQU 0F3DCH ; флаг инверсии мг
OSTAT EQU 0F3DDH ; рабочая в П/П WRSYM
; ESC EQU 0F3DEH ; обработка ESC-КОДОВ
TMPSP EQU 0F3DFH ; рабочая
RAMTOP EQU 0F3E3H ; !! в М2 это так же (но в некоторых М3 иначе)
RUSLAT EQU 0F3E5H ; =0-ЛАТ, #0-РУС.
REPEAT EQU 0F3E6H ; для автоповтора
ASTART EQU 0F3EEH ; адр. массива в п/п LDMAS
COMBUF EQU 0F3F0H
; ──────────────────────────────────────────────
.phase 0F800H
JP START
JP CONIN
JP LDBYTE ; A=8/FF. Если A=FF, то с поиском с/байта
CONOUT: JP J_COUT
JP SVBYTE
JP SCOUTA
JP STATUS
JP HEX_A
JP MSSG
JP XF81B
JP RDCURS
JP J_F821
JP DIR_I
JP DIR_O
JP CH_SUM
JP RASPAK
JP RDTOP
JP WRTOP
JP RRAM
JP WRAM
JP WRCURS
RET ; в M2 и М3 это BEEP
NOP
NOP ; зачем терять 2 байта?
; ──────────────────────────────────────────────
START: LD SP, STACK
XOR A
LD (0F800H), A
LD (0F900H), A
LD (0FA00H), A
LD (INVERS), A
LD (PPAKBD+2), A
LD A, 0C3H
LD (J_COUT), A
LD (J_F821), A
CALL INIT
LD HL, 6040H ; Константы чтения и записи
LD (CSV), HL
LD HL, TITR
CALL MSSG
@WARMST:
if @WARMST ne 0F86CH
if1
.printx ' WARMST address shifted !'
endif
endif
LD SP, STACK
LD A, 8AH
LD (PPAKBD+3), A
LD HL, PROMPT
CALL MSSG
LD (RUSLAT), A ; A=0
LD HL, ERROR
LD (ERRMG), HL
LD HL, @WARMST ; 0F86CH
PUSH HL
CALL DIRMON
CALL CR
CALL LD_PRM ; первый параметр в HL, второй в DE
LD A, (COMBUF) ; АДРЕС КОМ.СТРОКИ
CP 'M'
JP Z, DIR_M
CP 'D'
JP Z, DIR_D
CP 'I'
JP Z, DIR_I
CP 'O'
JP Z, DIR_O
CP 'R'
JP Z, DIR_R
CP 'Z'
JP Z, 0BFFDH
CP 'C'
JP Z, DIR_C
CP 'G'
JP NZ, ERROR
JP (HL)
; ──────────────────────────────────────────────
INIT: LD HL, 0F000H
LD (AFONT), HL
CALL RASPAK
LD HL, 30C0H
LD (HISCRN), HL
LD HL, COUT_C
LD (V_COUT), HL
LD HL, @RET
LD (V_F821), HL
LD HL, 0BFFFH
LD (RAMTOP), HL
@RET: RET
; ──────────────────────────────────────────────
DIRMON: LD DE, COMBUF ; ввод команды
CMDLOO: CALL CONIN
CP '.'
JP Z, ERROR
CP 7FH
JP Z, GETCM3
CP 18H
JP Z, GETCM5
CP 8
JP NZ, GETCM4
LD A, low COMBUF ; 0F0H
CP E
JP Z, CMDLOO
GETCM1: LD A, 8
GETCM2: DEC DE
GETCM3: CALL SCOUTA
JP CMDLOO
; ──────────────────────────────────────────────
GETCM4: LD (DE), A
GETCM5: CALL SCOUTA
CP 13
RET Z
INC DE
LD A, E
CP 0FFH
JP NZ, CMDLOO
JP GETCM1
; ──────────────────────────────────────────────
LD_PRM: LD DE, COMBUF+1
CALL PRM_HL
LD (ASTART), HL
RET C
CALL PRM_HL
EX DE, HL
LD HL, (ASTART)
RET
; ──────────────────────────────────────────────
PRM_HL: LD HL, 0
LD B, L
LD C, L
AF92F: ADD HL, BC
LD A, (DE)
INC DE
CP 13
JP Z, AF960
CP ','
RET Z
SUB 30H ; '0'
JP M, ERROR
CP 10
JP M, AF950
CP 11H
JP M, ERROR
CP 17H
JP P, ERROR
SUB 7
AF950: LD C, A
ADD HL, HL
ADD HL, HL
ADD HL, HL
ADD HL, HL
JP NC, AF92F
ERROR: LD A, '?'
CALL SCOUTA
JP @WARMST
; ──────────────────────────────────────────────
AF960: LD DE, 0
SCF
RET
; ──────────────────────────────────────────────
@
hexA: LD A, (HL)
HEX_A: PUSH AF ; это очень неэффективный HEX_A
RRCA ; без PUSH/POP BC он даёт 1СH байтов
RRCA ; а хороший алгоритм даёт
RRCA ; всего 14H байтов
RRCA
CALL NIBBLE
POP AF
NIBBLE: AND 0FH
CP 0AH
JP M, NBL1
ADD A, 7
NBL1: ADD A, 30H
PUSH BC
LD C, A
CALL CONOUT
POP BC
RET
; ─────────────────────────────────────────────────
MSSG: LD A, (HL)
AND A
RET Z
PUSH BC ; дурь... заменяется на CALL SCOUTA
LD C, A
CALL CONOUT
POP BC
INC HL
JP MSSG
; ─────────────────────────────────────────────────
CH_SUM: LD BC, 0
AF991: LD A, C
ADD A, (HL)
LD C, A
PUSH AF
CALL CMPDH
JP Z, POP_AF
POP AF
LD A, B
ADC A, (HL)
LD B, A
INC HL
JP AF991
; ─────────────────────────────────────────────────
CRHEX@: CALL CR
CALL SPACE
HEXHL@: LD A, H
CALL HEX_A
LD A, L
CALL HEX_A
SPACE: LD A, 20H
JP SCOUTA
; ─────────────────────────────────────────────────
CMPDH: LD A, H
CP D
RET NZ
LD A, L
CP E
RET
; ─────────────────────────────────────────────────
RDCURS: LD HL, (POSX)
LD A, L
RRCA
RRCA
LD L, A
RET
; ─────────────────────────────────────────────────
WRCURS: LD A, L
RLCA
RLCA
LD L, A
LD (POSX), HL
RET
; ─────────────────────────────────────────────────
WRTOP: LD (RAMTOP), HL
RDTOP: LD HL, (RAMTOP)
RET
; ─────────────────────────────────────────────────
RASPAK: LD HL, PFONT
LD DE, 0F000H
RSPLOO: LD C, 7
XOR A
LD (DE), A
INC DE
RASP_2: LD A, (HL)
RLCA
RLCA
RLCA
AND 7
LD B, A
RASP_3: LD A, (HL)
AND 1FH
LD (DE), A
INC DE
DEC C
DEC B
JP P, RASP_3
INC HL
LD A, H
AND A
RET Z
LD A, C
AND A
JP NZ, RASP_2
JP RSPLOO
; ──────────────────────────────────────────────
RRAM: LD (0F900H), A
LD C, (HL)
RDB_1: XOR A
LD (0F900H), A
RET
; ─────────────────────────────────────────────────
WRAM: LD (0F900H), A
LD (HL), C
JP RDB_1
; ──────────────────────────────────────────────
; < NO PROGRAMM PATH TO HERE > ; вход LDBS забить, это ненужный кусок ПЗУ РК86
LDBS: LD A, 8 ; Флаг, что не нужен поиск с/байта E6
LDBYTE: PUSH BC ; если A=FF, то с поиском с/байта
PUSH DE
PUSH HL
LD C, 0
LD D, A
LD A, (PPAKBD+2)
RRCA
RRCA
RRCA
RRCA
AND 1
LD E, A
AFA1D: LD A, C
AND 7FH
RLCA
LD C, A
LD B, 0
AFA24: DEC B
JP NZ, AFA2C
TM_OUT: LD HL, (ERRMG)
JP (HL)
; ──────────────────────────────────────────────
AFA2C: LD A, (PPAKBD+2)
RRCA
RRCA
RRCA
RRCA
AND 1
CP E
JP Z, AFA24
OR C
LD C, A
CALL TM_LD
LD A, (PPAKBD+2)
RRCA
RRCA
RRCA
RRCA
AND 1
LD E, A
LD A, D
OR A
JP P, AFA66
LD A, C
CP 0E6H
JP NZ, AFA5A
XOR A
LD (INVMG), A
JP AFA64
; ──────────────────────────────────────────────
AFA5A: CP 19H ; инвертированный с/байт E6
JP NZ, AFA1D
LD A, 0FFH
LD (INVMG), A
AFA64: LD D, 9
AFA66: DEC D
JP NZ, AFA1D
LD A, (INVMG)
XOR C
POPREG: POP HL
POP DE
POP BC
RET
; ─────────────────────────────────────────────────
SV_HL: LD C, H ; вывод на ленту адреса из HL
CALL SVBYTE
LD C, L
SVBYTE: PUSH AF
PUSH DE
PUSH BC
LD D, 8
AFA7C: LD A, C
RLCA
LD C, A
LD A, 1
XOR C
LD (PPAKBD+2), A
CALL TM_SV
XOR A
XOR C
LD (PPAKBD+2), A
CALL TM_SV
DEC D
JP NZ, AFA7C
POP BC
POP DE
POP_AF: POP AF
RET
; ──────────────────────────────────────────────
TM_SV: LD A, (CSV)
JP TMA
TM_LD: LD A, (CLD)
TMA: DEC A
JP NZ, TMA
RET
; ──────────────────────────────────────────────
NEXT_M: INC HL
DIR_M: CALL CRHEX@
CALL @
hexA
CALL SPACE
CALL DIRMON
LD DE, COMBUF ; адрес ком.строки
LD A, (DE)
CP 13
JP Z, NEXT_M
PUSH HL
CALL PRM_HL
EX DE, HL
POP HL
LD (HL), E
JP NEXT_M
; ──────────────────────────────────────────────
DIR_D: LD B, E
AFAC7: CALL CRHEX@
AFACA: CALL SPACE
LD A, B
AND A
JP Z, AFAD9
CALL RRAM
LD A, C
JP AFADA
; ──────────────────────────────────────────────
AFAD9: LD A, (HL)
AFADA: CALL HEX_A
INC HL
LD A, L
AND 0FH
JP NZ, AFACA
LD A, L
AND A
JP NZ, AFAC7
CALL DIRMON
JP AFAC7
; ──────────────────────────────────────────────
DIR_I: LD A, 0FFH
CALL LDHL_2 ; читаем 2 байта (НА) с поиском с/байта
EX DE, HL
CALL LDHLBS ; читаем 2 байта (КА) без с/байта
EX DE, HL
PUSH HL
L53: CALL LDBYTE
LD (HL), A
CALL CMPDH
INC HL
JP NZ, L53
LD A, 0FFH
CALL LDHL_2
LD B, H
LD C, L
POP HL
CALL HEXHL@
EX DE, HL
CALL HEXHL@
EX DE, HL
PUSH BC
CALL CH_SUM
POP DE
LD H, B
LD L, C
CALL HEXHL@
CALL CMPDH
RET Z
JP TM_OUT
; ──────────────────────────────────────────────
LDHLBS: LD A, 8 ; читает 2 байта (без поиска с/байта)
LDHL_2: CALL LDBYTE
LD H, A
CALL LDBYTE
LD L, A
RET
; ──────────────────────────────────────────────
DIR_O: PUSH HL
CALL CH_SUM
POP HL
PUSH BC
PUSH HL
LD BC, 0
AFB3B: CALL SVBYTE
DEC B
JP NZ, AFB3B
LD C, 0E6H
CALL SVBYTE
CALL SV_HL
EX DE, HL
CALL SV_HL
EX DE, HL
POP HL
AFB50: LD C, (HL)
CALL SVBYTE
CALL CMPDH
INC HL
JP NZ, AFB50
LD HL, 0
CALL SV_HL
LD C, 0E6H
CALL SVBYTE
POP HL
CALL SV_HL
JP HEXHL@
; ──────────────────────────────────────────────
DIR_C: LD C, L
LD A, 6
LD (0F800H), A
LD A, 1
LD (0F900H), A
LD HL, INVERS
LD D, (HL)
LD (HL), C
CALL L93
LD (HL), D
XOR A
LD (0F900H), A
RET
; ──────────────────────────────────────────────
STATUS: XOR A
LD (PPAKBD+0H), A
LD A, (PPAKBD+1)
XOR 0FFH
RET Z
LD A, 0FFH
RET
; ──────────────────────────────────────────────
DIR_R: LD DE, 0B800H ; загрузка ORDOS из ROM-диска
LD H, E
LD L, E
LD A, 90H
LD (DOPPPA+3), A
DIRRLO: LD (DOPPPA+1), HL
LD A, (DOPPPA)
LD (DE), A
INC DE
INC HL
LD A, H
CP 8
JP NZ, DIRRLO
JP 0BFFDH
; ──────────────────────────────────────────────
CONIN: PUSH BC
PUSH DE
PUSH HL
CALL XF81B
CP 0FFH
JP NZ, AFBBD
LD (REPEAT), A
AFBBD: LD D, 0
AFBBF: INC DE
DEC E
INC E
CALL Z, AFDF2
CALL XF81B
INC A
JP Z, AFBBF
PUSH AF
LD A, D
RRCA
CALL NC, AFDF2
POP AF
DEC A
JP P, AFBED
LD HL, RUSLAT
LD A, (HL)
CPL
LD (HL), A
LD (PPAKBD+2), A
AFBE0: CALL XF81B
INC A
JP NZ, AFBE0
CALL AFDF2
JP AFBBD
; ──────────────────────────────────────────────
AFBED: LD E, A
LD D, 14H
LD HL, REPEAT
CP (HL)
JP Z, AFC02
AFBF7: DEC D
JP Z, AFC02
CALL XF81B
CP E
JP Z, AFBF7
AFC02: CALL CLIK
LD (HL), E
CALL AFDF2
LD A, E
JP POPREG
; ──────────────────────────────────────────────
XF81B: PUSH BC
PUSH DE
PUSH HL
LD HL, POPREG
PUSH HL
LD B, 0
LD D, 9
LD C, 0FEH
AFC1A: LD A, C
LD (PPAKBD), A
RLCA
LD C, A
LD A, (PPAKBD+1)
CP 0FFH
JP Z, AFC33
LD E, A
CALL PAUSE
LD A, (PPAKBD+1)
CP E
JP Z, INK5
AFC33: LD A, B
ADD A, 8
LD B, A
DEC D
JP NZ, AFC1A
LD A, (PPAKBD+2)
AND 80H
LD A, 0FEH
RET Z
INC A
RET
; ──────────────────────────────────────────────
; ЧТО-ТО ЕСТЬ
INK3: INC B
INK5: RRA
JP C, INK3
LD A, B
AND 3FH
CP 10H
JP C, INK6
CP 3FH
LD B, A
LD A, 20H
RET Z
LD A, (PPAKBD+2)
LD C, A
AND 40H
JP NZ, AFC65
LD A, B
AND 1FH
RET
; ──────────────────────────────────────────────
AFC65: LD A, (RUSLAT)
AND A ; OR A
JP NZ, AFCA6
LD A, C
AND 20H
LD A, B
JP Z, AFC80
CP 1CH
JP M, AFC85
CP 20H
JP M, AFC87
JP AFC85
; ──────────────────────────────────────────────
AFC80: CP 1CH
JP C, AFC87
AFC85: ADD A, 10H
AFC87: ADD A, 10H
POP HL
JP POPREG
; ──────────────────────────────────────────────
INK6: LD HL, TABK1
LD C, A
LD B, 0
ADD HL, BC
LD A, (HL)
RET
; ──────────────────────────────────────────────
TABK1: defb 0CH,1FH,1BH,0,1,2,3,4
defb 9,10,13,7FH,8,19H,18H,1AH
; ──────────────────────────────────────────────
AFCA6: LD A, C
AND 20H
LD A, B
JP Z, AFC80
CP 1CH
JP M, AFC85
CP 20H
JP M, AFC87
ADD A, 40H
RET
; ──────────────────────────────────────────────
PAUSE: LD HL, 0B00H
PAUS_1: DEC HL
LD A, H
OR L
JP NZ, PAUS_1
RET
; ──────────────────────────────────────────────
CR: LD A, 13
CALL SCOUTA
LD A, 10
SCOUTA: PUSH BC
LD C, A
JP JJJ_01 ; намного лучше defb 06H
; ──────────────────────────────────────────────
COUT_C: PUSH BC
JJJ_01: PUSH DE
PUSH HL
PUSH AF
LD A, C
CP 7FH
JP NZ, L81
LD A, (INVERS)
CPL
LD (INVERS), A
JP POPALL
; ──────────────────────────────────────────────
L81: LD H, 20H
SUB H
JP C, L83
LD L, A ; ПЕЧАТАЕМЫЙ СИМВОЛ
ADD HL, HL
ADD HL, HL
ADD HL, HL
EX DE, HL
LD HL, (AFONT)
ADD HL, DE
EX DE, HL
CALL MASKA
EX DE, HL
LD A, 16H
L87: PUSH AF
PUSH HL
LD A, (INVERS)
XOR (HL)
AND 3FH
LD L, A
LD A, (OSTAT)
DEC A
LD H, 0
L86: ADD HL, HL
ADD HL, HL
INC A
JP NZ, L86
EX DE, HL
LD A, B
XOR (HL)
AND (HL)
OR D
LD (HL), A
INC H
LD A, C
XOR (HL)
AND (HL)
OR E
LD (HL), A
DEC H
INC L
EX DE, HL
POP HL
INC HL
POP AF
SUB 3
JP P, L87
LD HL, ZERO
CP 0F8H
JP NZ, L87
L83: LD HL, (POSX)
CALL L89
ADD HL, BC
LD A, H
CP 25
JP C, L8A
JP NZ, L8B
INC D
LD H, D
JP Z, L8A
; SCREEN ROLL
PUSH HL
LD HL, 0
ADD HL, SP
LD (TMPSP), HL
LD A, (WIDTH)
LD B, A
LD A, (HISCRN)
LD H, A
LD L, 10
LD SP, HL
LD L, 0
AFD58: LD C, 3CH
AFD5A: POP DE
LD (HL), E
INC L
LD (HL), D
INC L
POP DE
LD (HL), E
INC L
LD (HL), D
INC L
DEC C
JP NZ, AFD5A
LD A, (INVERS)
AFD6B: INC SP
LD (HL), A
INC L
JP NZ, AFD6B
INC H
DEC B
JP NZ, AFD58
LD HL, (TMPSP)
LD SP, HL
POP HL
L8B: LD H, 24
L8A: LD (POSX), HL
POPALL: POP AF
JP POPREG
; ──────────────────────────────────────────────
L89: defb 01H ; LD BC, 100H
ZERO: DW 100H
LD D, C
INC A
CALL Z, L93
JP Z, L94
CP 0EBH
RET Z
DEC D
ADD A, 5
RET Z
INC D
LD B, 0FFH
INC A
RET Z
LD C, 0FCH
CP 0EFH
RET Z
LD BC, 0
CP 0F0H
JP NZ, L95
LD A, L
AND 0E0H
ADD A, 20H
LD L, A
RET
; ──────────────────────────────────────────────
L95: LD C, 4
INC A
RET Z
CP 0EFH
JP Z, CLIK
ADD A, 0BH
JP Z, L96
INC A
RET NZ
L94: LD H, D
L96: LD L, D
LD B, D
LD C, D
RET
; ──────────────────────────────────────────────
MASKA: LD HL, (POSX)
LD A, L
RRCA
LD L, A
RRCA
ADD A, L
LD B, A
LD L, H
LD A, (HISCRN)
LD H, A
LD A, B
DEC H
L97: INC H
SUB 4
JP NC, L97
LD (OSTAT), A
PUSH HL
LD HL, 0FCH
L99: ADD HL, HL
ADD HL, HL
INC A
JP NZ, L99
LD B, H
LD C, L
POP HL
LD A, L ; MULT10:
RLCA
RLCA
RLCA
ADD A, L
ADD A, L
LD L, A
RET
; ──────────────────────────────────────────────
AFDF2: CALL MASKA
ADD A, 9
LD L, A
LD A, B
XOR (HL)
LD (HL), A
INC H
LD A, C
XOR (HL)
LD (HL), A
RET
; ──────────────────────────────────────────────
L93: PUSH AF
PUSH HL
LD A, (HISCRN)
LD H, A
LD A, (WIDTH)
ADD A, H
LD C, A
LD L, 0
LD A, (INVERS)
LD B, A
AFE11: LD (HL), B
INC HL
LD A, H
CP C
JP NZ, AFE11
POP HL
POP AF
RET
; ──────────────────────────────────────────────
CLIK: LD BC, 4014H
CLK_1: LD A, B
CLK_2: EI
DEC A
JP NZ, CLK_2
LD A, B
CLK_3: DI
DEC A
JP NZ, CLK_3
DEC C
JP NZ, CLK_1
LD B, C
RET
; ──────────────────────────────────────────────
TITR: defb 1FH,' orion-128.2',0
PROMPT: defb 13,10,10,' =>',7,0
; ──────────────────────────────────────────────
defb 53H,56H
PFONT: defb 0C0H, 84H, 0, 4, 4AH, 60H, 2AH, 1FH
defb 0AH, 1FH, 2AH, 4, 0FH, 14H, 0EH, 5
defb 1EH, 4, 18H, 19H, 2, 4, 8, 13H
defb 3, 4, 2AH, 0CH, 15H, 12H, 0DH, 26H
defb 2, 4, 40H, 2, 4, 48H, 4, 2
defb 8, 4, 42H, 4, 8, 0, 4, 15H
defb 0EH, 15H, 4, 0, 0, 24H, 1FH, 24H
defb 0, 40H, 2CH, 4, 8, 40H, 1FH, 40H
defb 80H, 2CH, 0, 1, 2, 4, 8, 10H
defb 0, 0EH, 11H, 13H, 15H, 19H, 11H, 0EH
defb 4, 0CH, 64H, 0EH, 0EH, 11H, 1, 6
defb 8, 10H, 1FH, 1FH, 1, 2, 6, 1
defb 11H, 0EH, 2, 6, 0AH, 12H, 1FH, 22H
defb 1FH, 10H, 1EH, 21H, 11H, 0EH, 7, 8
defb 10H, 1EH, 31H, 0EH, 1FH, 1, 2, 4
defb 48H, 0EH, 31H, 0EH, 31H, 0EH, 0EH, 31H
defb 0FH, 1, 2, 1CH, 0, 2CH, 20H, 2CH
defb 2CH, 0, 2CH, 4, 8, 2, 4, 8
defb 10H, 8, 4, 2, 20H, 1FH, 0, 1FH
defb 20H, 8, 4, 2, 1, 2, 4, 8
defb 0EH, 11H, 1, 2, 4, 0, 4, 0EH
defb 11H, 13H, 15H, 17H, 10H, 0EH, 4, 0AH
defb 31H, 1FH, 31H, 1EH, 31H, 1EH, 31H, 1EH
defb 0EH, 11H, 50H, 11H, 0EH, 1EH, 89H, 1EH
defb 1FH, 30H, 1EH, 30H, 1FH, 1FH, 30H, 1EH
defb 50H, 0EH, 11H, 30H, 13H, 11H, 0FH, 51H
defb 1FH, 51H, 0EH, 84H, 0EH, 61H, 31H, 0EH
defb 11H, 12H, 14H, 18H, 14H, 12H, 11H, 90H
defb 11H, 1FH, 11H, 1BH, 35H, 51H, 31H, 19H
defb 15H, 13H, 31H, 0EH, 91H, 0EH, 1EH, 31H
defb 1EH, 50H, 0EH, 51H, 15H, 12H, 0DH, 1EH
defb 31H, 1EH, 14H, 12H, 11H, 0EH, 11H, 10H
defb 0EH, 1, 11H, 0EH, 1FH, 0A4H, 0B1H, 0EH
defb 51H, 2AH, 24H, 51H, 55H, 0AH, 31H, 0AH
defb 4, 0AH, 31H, 31H, 0AH, 64H, 1FH, 1
defb 2, 0EH, 8, 10H, 1FH, 0EH, 88H, 0EH
defb 0, 10H, 8, 4, 2, 1, 0, 0EH
defb 82H, 0EH, 0EH, 11H, 80H, 0A0H, 1FH, 12H
defb 35H, 1DH, 35H, 12H, 4, 0AH, 31H, 1FH
defb 31H, 1FH, 30H, 1EH, 31H, 1EH, 92H, 1FH
defb 1, 6, 6AH, 1FH, 11H, 1FH, 30H, 1EH
defb 30H, 1FH, 4, 1FH, 35H, 1FH, 24H, 1FH
defb 11H, 90H, 31H, 0AH, 4, 0AH, 31H, 31H
defb 13H, 15H, 19H, 31H, 15H, 11H, 13H, 15H
defb 19H, 31H, 11H, 12H, 14H, 18H, 14H, 12H
defb 11H, 7, 89H, 19H, 11H, 1BH, 35H, 51H
defb 51H, 1FH, 51H, 0EH, 91H, 0EH, 1FH, 0B1H
defb 0FH, 31H, 0FH, 5, 9, 11H, 1EH, 31H
defb 1EH, 50H, 0EH, 11H, 50H, 11H, 0EH, 1FH
defb 0A4H, 51H, 0AH, 4, 8, 10H, 11H, 35H
defb 0EH, 35H, 11H, 1EH, 31H, 1EH, 31H, 1EH
defb 50H, 1EH, 31H, 1EH, 51H, 19H, 35H, 19H
defb 0EH, 11H, 1, 6, 1, 11H, 0EH, 11H
defb 95H, 1FH, 0EH, 11H, 1, 7, 1, 11H
defb 0EH, 95H, 1FH, 1, 51H, 1FH, 41H, 0DFH
.dephase
end
[свернуть]