Hello world syntax problems
Moderator: BigEvilCorporation
Thanks for the quick reply,
Is the entire alphabet included or only the ones used by Sega, for instance when i did some programming for cheap japanese handheld ports, they only included letters used,
A E I O U 1 2 3 4 5 6 7 8 9 0
N M . , :
That was the format for the file.
Edit "E" in twice XD
Is the entire alphabet included or only the ones used by Sega, for instance when i did some programming for cheap japanese handheld ports, they only included letters used,
A E I O U 1 2 3 4 5 6 7 8 9 0
N M . , :
That was the format for the file.
Edit "E" in twice XD
To be this good takes ages, To be this good takes Stef, Kanedafr, ChillyWilly & everyone who has helped me discover what hardwork is!
Dive into the SpritesMind!
Dive into the SpritesMind!

You have to the font data (tiles basically) defined in your program. I some simple demos (many moons ago for SCC), you might do a search for them the show how to print something out. It's in C but I think you will see what to do pretty easily.Munkyears wrote:Thanks for the quick reply,
Is the entire alphabet included or only the ones used by Sega, for instance when i did some programming for cheap japanese handheld ports, they only included letters used,
A E I O U 1 2 3 4 5 6 7 8 9 0
N M . , :
That was the format for the file.
Edit "E" in twice XD
i don't really know what you are trying to do, so i'll write some code.
Main:
move.w ($C00004),d7
btst #3, d7 ; during Vblank?
beq Main ; If not
Print:
lea (Font_tiles),a0
move.w $,($C00004)
move.l #$40200000,($c00004) ; tells the vdp where to put the fonts(meaning on VRAM)
move.w #$8F02,($c00004) ; for you not to have to setup the control port at every MOVE)
move.w $X, d0 ;( X = the numbers of WORDs to be transfered(minus 1)
Transf:
move.w (a0)+,($c00004)
dbf d0, Transf
lea (Str),a0
lea ($FF0000),a1
move ((Str_end-Str)/2)-1,d0 ; i dunno if this is right, oh well...
StrtoRAM:
sub.b $60,(a0)
move.w (a0)+,(a1)+
dbf d0,StrtoRAM
;and after moooore code:
rts
Str: db "The text you wanna show"
Str_end:
whoops, i had to go, code to be continued
well,code not finished, do you want the text on the background or as sprites(say background PLEASE)
lol, this code must be really buggy, i dunno
Main:
move.w ($C00004),d7
btst #3, d7 ; during Vblank?
beq Main ; If not
Print:
lea (Font_tiles),a0
move.w $,($C00004)
move.l #$40200000,($c00004) ; tells the vdp where to put the fonts(meaning on VRAM)
move.w #$8F02,($c00004) ; for you not to have to setup the control port at every MOVE)
move.w $X, d0 ;( X = the numbers of WORDs to be transfered(minus 1)
Transf:
move.w (a0)+,($c00004)
dbf d0, Transf
lea (Str),a0
lea ($FF0000),a1
move ((Str_end-Str)/2)-1,d0 ; i dunno if this is right, oh well...
StrtoRAM:
sub.b $60,(a0)
move.w (a0)+,(a1)+
dbf d0,StrtoRAM
;and after moooore code:
rts
Str: db "The text you wanna show"
Str_end:
whoops, i had to go, code to be continued

well,code not finished, do you want the text on the background or as sprites(say background PLEASE)
lol, this code must be really buggy, i dunno
-
- Very interested
- Posts: 753
- Joined: Sat Dec 15, 2007 7:49 am
My turn. Here is my very early code of OS that was saved. There no PS/2 procedures (PS2 keyboard was attached to Control Port 2) and ATA/ATAPI stuff (for that board with HDD). But it contains print, input and command buffer parse procedures.
PS Russian comments there. I'm too lazy to translate they to english. Sorry.
PS Russian comments there. I'm too lazy to translate they to english. Sorry.
Code: Select all
* org $400000
*Заголовок
dc.l $FFFFFC,START,Dead,Dead,Dead,Dead,Dead,Dead
dc.l Dead,Dead,Dead,Dead,Dead,Dead,Dead,Dead
dc.l Dead,Dead,Dead,Dead,Dead,Dead,Dead,Dead
dc.l Dead,Dead,Dead,Dead,Dead,Dead,Dead,Dead
dc.l Dead,Dead,Dead,Dead,Dead,Dead,Dead,Dead
dc.l Dead,Dead,Dead,Dead,Dead,Dead,Dead,Dead
dc.l Dead,Dead,Dead,Dead,Dead,Dead,Dead,Dead
dc.l Dead,Dead,Dead,Dead,Dead,Dead,Dead,Dead
dc.b 'SEGA GENESIS (C)SEGA 2006 JUNE'
dc.b 'SEGA DOS (C) HardWareMan '
dc.b 'SEGA DOS (C) HardWareMan '
dc.b 'GM 00000000-00',$a5,$fb
dc.b 'JD ',$00,$00,$00,$00,$00,$02,$00,$00
dc.b $00,$ff,$00,$00,$ff,$ff,$ff,$ff,' '
dc.b ' '
dc.b ' '
dc.b 'JUE '
*"Заглушка" на неиспользуемые прерывания
Dead: rte
**=====================================================================
*Системные переменные
*Переменные курсора
CurrCurY equ $FF0000
CurrCurX equ CurrCurY+1
*Размер экрана в символах
ScrSizeY equ CurrCurX+1
ScrSizeX equ ScrSizeY+1
*Переменные для ввода
Joystik equ ScrSizeX+1
OldState equ Joystik+2
*Буфер сканкодов (16 байт)
ScanTail equ OldState+2
ScanCode equ ScanTail+4
*Буфер ввода (2..32)
InpBufAdr equ ScanCode+32
*Маски управления
JoyCursor equ $000F
JoyABCS equ $00F0
JoyXYZM equ $0F00
JoyUp equ $0001
JoyDown equ $0002
JoyLeft equ $0004
JoyRight equ $0008
JoyA equ $0040
JoyB equ $0010
JoyC equ $0020
JoyStart equ $0080
JoyX equ $0400
JoyY equ $0200
JoyZ equ $0100
JoyMode equ $0800
*======================================================================
*Системные подпрограммы
*Стирание экрана 40x25
ClearScreen:
suba #4,sp
move.l d0,(sp)
move.l #$40000003,$c00004 ;Запись символа в область #C000
move.l #64*30-1,d0 ;Размер экрана
ClearLoop:
move.w #$8020,$c00000 ;Цикл стирания
dbra d0,ClearLoop
move.w #0,CurrCurY
move.w #$1C28,ScrSizeY
move.l (sp),d0
adda #4,sp
rts
*Скроллинг вверх на одну строку
ScrollUp:
suba #4,sp
move.l d0,(sp)
suba #4,sp
move.l d1,(sp)
suba #4,sp
move.l d2,(sp)
suba #4,sp
move.l d3,(sp)
move.l #$40000003,d0
move.l #$00800003,d1
move.l #64*28-1,d2
ScrollLoop:
move.l d1,$C00004
move.w $C00000,d3
or.w #$8000,d3
move.l d0,$C00004
move.w d3,$C00000
add.l #$20000,d0
add.l #$20000,d1
dbra d2,ScrollLoop
move.l (sp),d3
adda #4,sp
move.l (sp),d2
adda #4,sp
move.l (sp),d1
adda #4,sp
move.l (sp),d0
adda #4,sp
rts
*Печать символа
*[D0] => LBYTE - Символ
OutSymbol:
suba #4,sp
move.l d2,(sp)
suba #4,sp
move.l d1,(sp)
suba #4,sp
move.l d0,(sp)
suba #4,sp
move.l a0,(sp)
and.l #$0000FF,d0
cmp.b #$1F,d0
bls OutControl
move.l #0,d1
move.w CurrCurY,d2
and.l #$FF00,d2
ror.w #2,d2
add.l d2,d1
move.w CurrCurY,d2
and.l #$00FF,d2
add.w d2,d1
rol.l #8,d1
rol.l #8,d1
rol.l #1,d1
or.l #$40000003,d1
move.l d1,$C00004
or.w #$8000,d0
move.w d0,$C00000
bra OutRight
OutControl:
cmp.b #$08,d0
bne Out0A
OutLeft:
cmp.b #0,CurrCurX
beq OutLft
sub.b #1,CurrCurX
bra OutEnd
OutLft: move.b ScrSizeX,d0
sub.b #1,d0
move.b d0,CurrCurX
cmp.b #0,CurrCurY
beq OutEnd
sub.b #1,CurrCurY
bra OutEnd
Out0A: cmp.b #$0A,d0
bne Out0D
bra OutDown
Out0D: cmp.b #$0D,d0
bne Out18
move.w CurrCurY,d0
and.w #$FF00,d0
move.w d0,CurrCurY
bra OutEnd
Out18: cmp.b #$18,d0
bne Out19
OutRight:
add.b #1,$FF0001
move.b ScrSizeX,d0
cmp.b CurrCurX,d0
bgt OutRigCon
move.b #0,CurrCurX
bra OutDown
OutRigCon:
bra OutEnd
Out19: nop
Out1A: cmp.b #$1A,d0
bne OutEnd
OutDown:
add.b #1,CurrCurY
move.b ScrSizeY,d0
cmp.b CurrCurY,d0
bgt OutEnd
sub.b #1,CurrCurY
jsr ScrollUp
bra OutEnd
OutEnd:
move.l (sp),a0
adda #4,sp
move.l (sp),d0
adda #4,sp
move.l (sp),d1
adda #4,sp
move.l (sp),d2
adda #4,sp
rts
*Печать строки до 0;
*(A0) - строка.
PrintString:
suba #4,sp
move.l d0,(sp)
suba #4,sp
move.l a0,(sp)
PrintLoop:
move.l #0,d0
move.b (a0)+,d0
cmp.b #0,d0
beq PrintEnd
jsr OutSymbol
bra PrintLoop
PrintEnd:
move.l (sp),a0
adda #4,sp
move.l (sp),d0
adda #4,sp
rts
*Печать HEX байта [d0]
OutHexByte:
suba #4,sp
move.l d0,(sp)
suba #4,sp
move.l d1,(sp)
move.l d0,d1
ror.l #4,d0
and.l #15,d0
cmp.b #10,d0
blt SkipHi
add.b #7,d0
SkipHi: add.b #$30,d0
jsr OutSymbol
move.l d1,d0
and.l #15,d0
cmp.b #10,d0
blt SkipLo
add.b #7,d0
SkipLo: add.b #$30,d0
jsr OutSymbol
move.l (sp),d1
adda #4,sp
move.l (sp),d0
adda #4,sp
rts
*Печать HEX слова
OutHexWord:
suba #4,sp
move.l d0,(sp)
ror.l #8,d0
jsr OutHexByte
move.l (sp),d0
adda #4,sp
jsr OutHexByte
rts
*Печать HEX двойного слова
OutHexLong:
suba #4,sp
move.l d0,(sp)
ror.l #8,d0
ror.l #8,d0
jsr OutHexWord
move.l (sp),d0
adda #4,sp
jsr OutHexWord
rts
*Печать HEX адреса
OutHexAddr:
suba #4,sp
move.l d0,(sp)
ror.l #8,d0
ror.l #8,d0
jsr OutHexByte
move.l (sp),d0
adda #4,sp
jsr OutHexWord
rts
*Ввод сканкода. [d0] - скан, 'Z' -> Если буфер пуст
*СканБуфер по принципу FIFO
GetScanCode:
or.w #$0700,sr
suba #4,sp
move.l d2,(sp)
suba #4,sp
move.l d1,(sp)
suba #4,sp
move.l a0,(sp)
lea ScanCode,a0
move.l ScanTail,d0
move.l a0,d1
cmp.l d0,d1
bne ScanGt
move.l #$FFFFFFFF,d0
bra GetScanEx
*Выдача головы буфера
ScanGt: lea ScanCode,a0
move.l #0,d0
move.b (a0),d0
move.l ScanTail,d2
*Уменьшение буфера
GetScanFIFO:
add.l #1,a0
move.b (a0),d1
sub.l #1,a0
move.b d1,(a0)
move.l a0,d1
cmp.l d1,d2
beq GetFr
add.l #1,a0
bra GetScanFIFO
GetFr: move.l ScanTail,d2
sub.l #1,d2
move.l d2,ScanTail
GetScanEx:
move.l (sp),a0
adda #4,sp
move.l (sp),d1
adda #4,sp
move.l (sp),d2
adda #4,sp
and.w #$F8FF,sr
rts
*Получение скана с ожиданием
GetScanWait:
jsr GetScanCode
cmp.l #$FFFFFFFF,d0
beq GetScanWait
rts
*Получение кнопки клавиатуры с ожиданием
GetKey: suba #4,sp
move.l a0,(sp)
GetLp: jsr GetScanWait
cmp.b #$8F,d0
bhi GetExt
and.l #$000000FF,d0
rol.w #1,d0
add.l #Scan,d0
move.l d0,a0
move.l #0,d0
move.w (a0),d0
bra GetEx
GetExt: jsr GetScanWait
move.l #0,d0
bra GetLp
GetEx: move.l (sp),a0
adda #4,sp
rts
*Ожидание кнопки джойстика
WaitKey:
suba #4,sp
move.l d0,(sp)
Key0: cmp.w #0,Joystik
bne Key0
Key1: cmp.w #0,Joystik
beq Key1
move.l #1000,d0
Key2: dbne d0,Key2
cmp.w #0,Joystik
beq Key0
move.l (sp),d0
adda #4,sp
rts
*Ввод байта
InputByte:
suba #4,sp
move.l d1,(sp)
suba #4,sp
move.l d2,(sp)
InpBt0: jsr GetKey
move.b d0,d1
cmp.b #$1B,d0
beq InpBt4
cmp.b #$2F,d0
bls InpBt0
cmp.b #$46,d0
bhi InpBt0
cmp.b #$39,d0
bls InpBt1
cmp.b #$40,d0
bls InpBt0
sub.b #7,d1
InpBt1: jsr OutSymbol
rol.b #4,d1
and.b #$F0,d1
InpBt2: jsr GetKey
move.b d0,d2
cmp.b #$1B,d0
beq InpBt4
cmp.b #$2F,d0
bls InpBt2
cmp.b #$46,d0
bhi InpBt2
cmp.b #$39,d0
bls InpBt3
cmp.b #$40,d0
bls InpBt2
sub.b #7,d2
InpBt3: jsr OutSymbol
and.b #$0F,d2
or.b d2,d1
eor d0,d0
move.b d1,d0
bra InpBt5
InpBt4: move.l #$FFFFFFFF,d0
InpBt5: move.l (sp),d2
adda #4,sp
move.l (sp),d1
adda #4,sp
rts
*Ввод буфера
*[a0] - > Вводимый буфер, d0=0 - Ввод без ожидания, возврат в [d0];
* d0=1 - Ввод с ожиданием, возврат в [d0];
* d0=2..FE - Ввод буфера, возврат в (a0);
InpBuffer:
suba #4,sp
move.l d0,(sp)
suba #4,sp
move.l a0,(sp)
move.l #0,(a0)
cmp.b #2,d0
blt SpecialInput
suba #4,sp
move.l d1,(sp)
suba #4,sp
move.l d2,(sp)
move.b #0,(a0)
move.l d0,d2
sub.l #2,d2
move.l d1,0
MainInput:
jsr GetKey
cmp.b #$20,d0
bhi InputSym
cmp.b #$0D,d0
beq InputEntr
cmp.b #$7E,d0
bne MainInput
cmp.l #0,d1
beq MainInput
sub.l #1,a0
sub.l #1,d1
move.b #8,d0
jsr OutSymbol
move.b #32,d0
jsr OutSymbol
move.b #8,d0
jsr OutSymbol
bra MainInput
InputSym:
move.b d0,(a0)
jsr OutSymbol
cmp.b d1,d2
beq InputFull
add.l #1,a0
add.l #1,d1
bra MainInput
InputFull:
move.b #8,d0
jsr OutSymbol
bra MainInput
InputEntr:
move.b #13,d0
jsr OutSymbol
move.b #10,d0
jsr OutSymbol
add.l #1,a0
move.b #0,(a0)
move.l (sp),d2
adda #4,sp
move.l (sp),d1
adda #4,sp
bra SkipWait
SpecialInput:
cmp.b #1,d0
bne SkipWait
jsr GetKey
SkipWait:
move.l (sp),a0
adda #4,sp
move.l (sp),d0
adda #4,sp
rts
*Обработка буфера, определение команды
*Вход [a0] - начало буфера
*Выход [a0] - 1 операнд, [a1] - 2 операнд, [d0] - Команда
LoadRegs:
suba #4,sp
move.l d1,(sp)
suba #4,sp
move.l d2,(sp)
suba #4,sp
move.l d3,(sp)
clr.l d1
clr.l d2
clr.l d3
move.b (a0),d0
cmp.b #0,d0
beq LoadError
cmp.b #$40,d0
bls LoadError
cmp.b #$5F,d0
bgt LoadError
move.l d0,d1
add.l #1,a0
move.l #0,d2
LoadFirst:
move.b (a0),d0
cmp.b #0,d0
beq LoadOk
cmp.b #$2C,d0
beq LoadCont
cmp.b #$30,d0
blt LoadError
cmp.b #$46,d0
bgt LoadError
cmp.b #$3A,d0
blt LoadF0
cmp.b #$41,d0
blt LoadError
sub.b #7,d0
LoadF0: and.b #15,d0
rol.l #4,d2
or.l d0,d2
add.l #1,a0
bra LoadFirst
LoadCont:
add.l #1,a0
move.l #0,d3
LoadSecond:
move.b (a0),d0
cmp.b #0,d0
beq LoadOk
cmp.b #$2C,d0
beq LoadOk
cmp.b #$30,d0
blt LoadError
cmp.b #$46,d0
bgt LoadError
cmp.b #$3A,d0
blt LoadS0
cmp.b #$41,d0
blt LoadError
sub.b #7,d0
LoadS0: and.b #15,d0
rol.l #4,d3
or.l d0,d3
add.l #1,a0
bra LoadSecond
LoadOk:
move.l d1,d0
move.l d2,a0
move.l d3,a1
bra LoadEnd
LoadError:
move.l #0,d0
move.l #0,a0
move.l #0,a1
LoadEnd:
move.l (sp),d3
adda #4,sp
move.l (sp),d2
adda #4,sp
move.l (sp),d1
adda #4,sp
rts
*==================================================================
*
*======================================================================
*Главный старт
START: move.l sp,a7
tst.l $a10008.l
bne.s SkipJoyDetect
tst.w $a1000c.l
SkipJoyDetect:
bne SkipSetup
lea Table(pc),a5
movem.w (a5)+,d5-d7
movem.l (a5)+,a0-a4
move.b -$10ff(a1),d0 ;Check Version Number
andi.b #$0f,d0
beq.s WrongVersion
move.l #$53454741,$2f00(a1) ;Sega Security Code (SEGA)
WrongVersion:
move.w (a4),d0
moveq #$00,d0
movea.l d0,a6
move a6,usp
moveq #$17,d1 ; Set VDP registers
FillLoop:
move.b (a5)+,d5
move.w d5,(a4)
add.w d7,d5
dbra d1,FillLoop
move.l (a5)+,(a4)
move.w d0,(a3)
move.w d7,(a1)
move.w d7,(a2)
L0250:
btst d0,(a1)
bne.s L0250
moveq #$25,d2 ; Put initial vaules into a00000
Filla:
move.b (a5)+,(a0)+
dbra d2,Filla
move.w d0,(a2)
move.w d0,(a1)
move.w d7,(a2)
L0262:
move.l d0,-(a6)
dbra d6,L0262
move.l (a5)+,(a4)
move.l (a5)+,(a4)
moveq #$1f,d3 ; Put initial values into c00000
Filc0:
move.l d0,(a3)
dbra d3,Filc0
move.l (a5)+,(a4)
moveq #$13,d4 ; Put initial values into c00000
Fillc1:
move.l d0,(a3)
dbra d4,Fillc1
moveq #$03,d5 ; Put initial values into c00011
Fillc2:
move.b (a5)+,$0011(a3)
dbra d5,Fillc2
move.w d0,(a2)
movem.l (a6),d0-d7/a0-a6
move #$2700,sr
bra.s Continue
Table:
dc.w $8000,$3fff,$0100,$00a0,$0000,$00a1,$1100,$00a1
dc.w $1200,$00c0,$0000,$00c0,$0004,$0414,$302c,$0754
dc.w $0000,$0000,$0000,$812b,$0001,$0100,$00ff,$ff00
dc.w $0080,$4000,$0080,$af01,$d91f,$1127,$0021,$2600
dc.w $f977,$edb0,$dde1,$fde1,$ed47,$ed4f,$d1e1,$f108
dc.w $d9c1,$d1e1,$f1f9,$f3ed,$5636,$e9e9,$8104,$8f01
dc.w $c000,$0000,$4000,$0010,$9fbf,$dfff
Continue:
tst.w $00C00004
ColorChange:
move.l #$c0000000,$c00004
move.l #$0000,$c00000
move.l #$0000,$c00000
move.l #$0C00,$c00000
move.l #$000C,$c00000
move.l #$0C0C,$c00000
move.l #$00C0,$c00000
move.l #$0CC0,$c00000
move.l #$00CC,$c00000
move.l #$0CCC,$c00000
move.l #$0E44,$c00000
move.l #$044E,$c00000
move.l #$0E4E,$c00000
move.l #$04E4,$c00000
move.l #$0EE4,$c00000
move.l #$04EE,$c00000
move.l #$0EEE,$c00000
move.l #$0000,$c00000
move.l #$0EEE,$c00000
move.l #$04EE,$c00000
move.l #$0EE4,$c00000
move.l #$04E4,$c00000
move.l #$0E4E,$c00000
move.l #$044E,$c00000
move.l #$0E44,$c00000
move.l #$0CCC,$c00000
move.l #$00CC,$c00000
move.l #$0CC0,$c00000
move.l #$00C0,$c00000
move.l #$0C0C,$c00000
move.l #$000C,$c00000
move.l #$0C00,$c00000
move.l #$0000,$c00000
SkipSetup:
*Подготовка к пересылке символов
move.w #$8f02,$c00004 ;Инкремент записи в память
move.l #$40000000,$c00004
lea font(pc),a5
move #4095,d5
*Пересылка символов
VramFont:
move.w (a5)+,$c00000
dbra d5,VramFont
move.w #$8004,$c00004 ;Разрешение отображения
move.w #$8164,$c00004 ;Разрешение отображения!!!!!!!
move.w #$8b08,$c00004 ;Разрешение отображения
move.b #0,$a10013
move.b #$40,$a10009 ;На 1 порту будет всегда джойстик
move.b #$60,$a1000b ;На втором клавка
move.b #$40,$a10005
move.b #$40,$a1000d
lea ScanCode,a0
move.l a0,ScanTail
* and.w #$F8FF,sr
*Конец инициализации и старт программы
WarmStart:
jsr ClearScreen ;Очистка экрана
lea Greet,a0
jsr PrintString ;Печать приветствия
*=======================================================================
*"Монитор"
NextLoop:
move.b #32,d0
* jsr OutSymbol
move.b #32,d0
* jsr OutSymbol
move.b #32,d0
* jsr OutSymbol
move.b #32,d0
* jsr OutSymbol
ScanLoop:
lea Prompt,a0
jsr PrintString
move.l #InpBufAdr,a0
jsr InpBuffer
*Обработка команды
lea LF,a0
jsr PrintString
move.l #InpBufAdr,a0
jsr LoadRegs
*[a0] - 1 операнд, [a1] - 2 операнд, [d0] - Команда
cmp.b #$53,d0 ;[S]ound
beq MusicSet
cmp.b #$44,d0 ;[D]ump
beq DumpMemory
cmp.b #$4C,d0 ;[L]ump
beq ListMemory
cmp.b #$4D,d0 ;[M]emory
beq EditMemory
cmp.b #$49,d0 ;[I]dentify
beq Identify
*Печать ошибки
cmp.b #0,d0
beq ErrCom
lea ErrorU,a0
bra ErrCon
ErrCom: lea ErrorE,a0
ErrCon: jsr PrintString
lea Help,a0
jsr PrintString
bra NextLoop
*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
*Процедурки
*Определение харда
Identify:
move.l #$FF8000,a0
* jsr ATAIdentify
bra NextLoop
*Выключение музыки
MusicSet:
move.l a0,d0
* move.w #$FF,$A11200
move.w #$100,$A11100
nop
nop
lea $A009BD,a0
move.b d0,(a0)
move.w #0,$A11100
lea Music0,a0
jsr PrintString
jsr OutHexByte
bra NextLoop
*Дамп памяти
DumpLine:
suba #4,sp
move.l d0,(sp)
move.l a0,d0
jsr OutHexAddr
move.b #32,d0
jsr OutSymbol
jsr OutSymbol
DumpL: move.b (a0),d0
add.l #1,a0
jsr OutHexByte
move.l a0,d0
and.b #$0F,d0
bne DumpL
move.l (sp),d0
adda #4,sp
rts
DumpMemory:
jsr DumpLine
move.l a0,d0
and.l #$FF,d0
bne DumpMemory
move.b #$0D,d0
jsr OutSymbol
move.b #$0A,d0
jsr OutSymbol
jsr GetKey
cmp.b #$1B,d0
bne DumpMemory
bra NextLoop
*Листинг памяти
ListLine:
suba #4,sp
move.l d0,(sp)
move.l a0,d0
jsr OutHexAddr
move.b #32,d0
jsr OutSymbol
jsr OutSymbol
ListL: move.b (a0),d0
add.l #1,a0
cmp.b #$1F,d0
bgt ListS
move.b #$2E,d0
ListS: jsr OutSymbol
move.l a0,d0
and.b #$0F,d0
bne ListL
move.b #$0D,d0
jsr OutSymbol
move.b #$0A,d0
jsr OutSymbol
move.l (sp),d0
adda #4,sp
rts
ListMemory:
jsr ListLine
move.l a0,d0
and.l #$FF,d0
bne ListMemory
move.b #$0D,d0
jsr OutSymbol
move.b #$0A,d0
jsr OutSymbol
jsr GetKey
cmp.b #$1B,d0
bne ListMemory
bra NextLoop
*Редактор памяти
EditMemory:
move.l a0,a1
EditLoop:
move.l a1,d0
jsr OutHexAddr
move.b #32,d0
jsr OutSymbol
jsr OutSymbol
move.b (a1),d0
jsr OutHexByte
move.b #32,d0
jsr OutSymbol
jsr InputByte
cmp.l #$FFFFFFFF,d0
beq EditExit
move.b d0,(a1)
add.l #1,a1
move.b #$0D,d0
jsr OutSymbol
move.b #$0A,d0
jsr OutSymbol
bra EditLoop
EditExit:
move.b #$0D,d0
jsr OutSymbol
move.b #$0A,d0
jsr OutSymbol
bra NextLoop
*Тексты
Greet: dc.b 'Sega DOS V2.56',$0D,$0A,0
Prompt: dc.b '=>',0
ErrorU: dc.b 'Неизвестная команда',$0D,$0A,0
ErrorE: dc.b 'Ошибка в команде',$0D,$0A,0
Music0: dc.b 'Выбор мелодии номер ',0
Help: dc.b 'Доступные команды:',$0D,$0A
dc.b 'D<ADRBEG> - Дамп памяти;',$0D,$0A
dc.b 'L<ADRBEG> - Листинг памяти;',$0D,$0A
dc.b 'M<ADRBEG> - Редактор памяти;',$0D,$0A
dc.b 'I - Определить HDD;',$0D,$0A
dc.b 'S<NUM> - Выбрать мелодию с',$0D,$0A
dc.b ' номером от 1 до 14H'
dc.b '----------------------------------------',$0D,$0A,0
dc.b 0
*Данные
*Таблицы нормальных сканкодов
* 0 1 2 3 4 5 6 7 8 9 A B C D E F
Scan: dc.w $00,$88,$00,$84,$82,$80,$81,$8B,$00,$89,$87,$85,$83,$09,$00,$00 *00H
dc.w $00,$00,$00,$00,$00,$51,$31,$00,$00,$00,$5A,$53,$41,$57,$32,$00 *10H
dc.w $00,$43,$58,$44,$45,$34,$33,$00,$00,$20,$56,$46,$54,$52,$35,$00 *20H
dc.w $00,$4E,$42,$48,$47,$59,$36,$00,$00,$00,$4D,$4A,$55,$37,$38,$00 *30H
dc.w $00,$2C,$4B,$49,$4F,$30,$39,$00,$00,$2E,$2F,$4C,$3B,$50,$2D,$00 *40H
dc.w $00,$00,$00,$00,$5B,$3D,$00,$00,$00,$00,$0D,$5D,$00,$5C,$00,$00 *50H
dc.w $00,$00,$00,$00,$00,$00,$7F,$00,$00,$00,$00,$00,$00,$00,$00,$00 *60H
dc.w $00,$00,$00,$00,$00,$00,$1B,$00,$8A,$00,$00,$00,$00,$00,$00,$00 *70H
dc.w $00,$00,$00,$86,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 *80H
*Таблицы расширеных сканкодов
ScanE: dc.w 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
dc.w 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
dc.w 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
dc.w 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
dc.w 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
dc.w 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
dc.w 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
dc.w 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
*Шрифт 8x8 cp866
Font: dc.w $1111,$1111,$1111,$1111,$1111,$1111,$1111,$1111,$1111,$1111,$1111,$1111,$1111,$1111,$1111,$1111
dc.w $1FFF,$FFF1,$F111,$111F,$F1F1,$1F1F,$F111,$111F,$F1FF,$FF1F,$F11F,$F11F,$F111,$111F,$1FFF,$FFF1
dc.w $1FFF,$FFF1,$FFFF,$FFFF,$FF1F,$F1FF,$FFFF,$FFFF,$FF11,$11FF,$FFF1,$1FFF,$FFFF,$FFFF,$1FFF,$FFF1
dc.w $1FF1,$FF11,$FFFF,$FFF1,$FFFF,$FFF1,$FFFF,$FFF1,$1FFF,$FF11,$11FF,$F111,$111F,$1111,$1111,$1111
dc.w $111F,$1111,$11FF,$F111,$1FFF,$FF11,$FFFF,$FFF1,$1FFF,$FF11,$11FF,$F111,$111F,$1111,$1111,$1111
dc.w $11FF,$F111,$1FFF,$FF11,$11FF,$F111,$FFFF,$FFF1,$FFFF,$FFF1,$1FFF,$FF11,$11FF,$F111,$1FFF,$FF11
dc.w $111F,$1111,$111F,$1111,$11FF,$F111,$1FFF,$FF11,$FFFF,$FFF1,$1FFF,$FF11,$11FF,$F111,$1FFF,$FF11
dc.w $1111,$1111,$1111,$1111,$111F,$F111,$11FF,$FF11,$11FF,$FF11,$111F,$F111,$1111,$1111,$1111,$1111
dc.w $FFFF,$FFFF,$FFFF,$FFFF,$FFF1,$1FFF,$FF11,$11FF,$FF11,$11FF,$FFF1,$1FFF,$FFFF,$FFFF,$FFFF,$FFFF
dc.w $1111,$1111,$11FF,$FF11,$1FF1,$1FF1,$1F11,$11F1,$1F11,$11F1,$1FF1,$1FF1,$11FF,$FF11,$1111,$1111
dc.w $FFFF,$FFFF,$FF11,$11FF,$F11F,$F11F,$F1FF,$FF1F,$F1FF,$FF1F,$F11F,$F11F,$FF11,$11FF,$FFFF,$FFFF
dc.w $1111,$FFFF,$1111,$1FFF,$1111,$FFFF,$1FFF,$FF1F,$FF11,$FF11,$FF11,$FF11,$FF11,$FF11,$1FFF,$F111
dc.w $11FF,$FF11,$1FF1,$1FF1,$1FF1,$1FF1,$1FF1,$1FF1,$11FF,$FF11,$111F,$F111,$1FFF,$FFF1,$111F,$F111
dc.w $11FF,$FFFF,$11FF,$11FF,$11FF,$FFFF,$11FF,$1111,$11FF,$1111,$1FFF,$1111,$FFFF,$1111,$FFF1,$1111
dc.w $1FFF,$FFFF,$1FF1,$11FF,$1FFF,$FFFF,$1FF1,$11FF,$1FF1,$11FF,$1FF1,$1FFF,$FFF1,$1FF1,$FF11,$1111
dc.w $F11F,$F11F,$1F1F,$F1F1,$11FF,$FF11,$FFF1,$1FFF,$FFF1,$1FFF,$11FF,$FF11,$1F1F,$F1F1,$F11F,$F11F
dc.w $F111,$1111,$FFF1,$1111,$FFFF,$F111,$FFFF,$FFF1,$FFFF,$F111,$FFF1,$1111,$F111,$1111,$1111,$1111
dc.w $1111,$11F1,$1111,$FFF1,$11FF,$FFF1,$FFFF,$FFF1,$11FF,$FFF1,$1111,$FFF1,$1111,$11F1,$1111,$1111
dc.w $111F,$F111,$11FF,$FF11,$1FFF,$FFF1,$111F,$F111,$111F,$F111,$1FFF,$FFF1,$11FF,$FF11,$111F,$F111
dc.w $1FF1,$1FF1,$1FF1,$1FF1,$1FF1,$1FF1,$1FF1,$1FF1,$1FF1,$1FF1,$1111,$1111,$1FF1,$1FF1,$1111,$1111
dc.w $1FFF,$FFFF,$FF1F,$F1FF,$FF1F,$F1FF,$1FFF,$F1FF,$111F,$F1FF,$111F,$F1FF,$111F,$F1FF,$1111,$1111
dc.w $11FF,$FFF1,$1FF1,$11FF,$11FF,$F111,$1FF1,$FF11,$1FF1,$FF11,$11FF,$F111,$FF11,$FF11,$1FFF,$F111
dc.w $1111,$1111,$1111,$1111,$1111,$1111,$1111,$1111,$1FFF,$FFF1,$1FFF,$FFF1,$1FFF,$FFF1,$1111,$1111
dc.w $111F,$F111,$11FF,$FF11,$1FFF,$FFF1,$111F,$F111,$1FFF,$FFF1,$11FF,$FF11,$111F,$F111,$FFFF,$FFFF
dc.w $111F,$F111,$11FF,$FF11,$1FFF,$FFF1,$111F,$F111,$111F,$F111,$111F,$F111,$111F,$F111,$1111,$1111
dc.w $111F,$F111,$111F,$F111,$111F,$F111,$111F,$F111,$1FFF,$FFF1,$11FF,$FF11,$111F,$F111,$1111,$1111
dc.w $1111,$1111,$111F,$F111,$1111,$FF11,$FFFF,$FFF1,$1111,$FF11,$111F,$F111,$1111,$1111,$1111,$1111
dc.w $1111,$1111,$11FF,$1111,$1FF1,$1111,$FFFF,$FFF1,$1FF1,$1111,$11FF,$1111,$1111,$1111,$1111,$1111
dc.w $1111,$1111,$1111,$1111,$FF11,$1111,$FF11,$1111,$FF11,$1111,$FFFF,$FFF1,$1111,$1111,$1111,$1111
dc.w $1111,$1111,$11F1,$1F11,$1FF1,$1FF1,$FFFF,$FFFF,$1FF1,$1FF1,$11F1,$1F11,$1111,$1111,$1111,$1111
dc.w $1111,$1111,$111F,$F111,$11FF,$FF11,$1FFF,$FFF1,$FFFF,$FFFF,$FFFF,$FFFF,$1111,$1111,$1111,$1111
dc.w $1111,$1111,$FFFF,$FFFF,$FFFF,$FFFF,$1FFF,$FFF1,$11FF,$FF11,$111F,$F111,$1111,$1111,$1111,$1111
dc.w $1111,$1111,$1111,$1111,$1111,$1111,$1111,$1111,$1111,$1111,$1111,$1111,$1111,$1111,$1111,$1111
dc.w $11FF,$1111,$1FFF,$F111,$1FFF,$F111,$11FF,$1111,$11FF,$1111,$1111,$1111,$11FF,$1111,$1111,$1111
dc.w $1FF1,$FF11,$1FF1,$FF11,$1FF1,$FF11,$1111,$1111,$1111,$1111,$1111,$1111,$1111,$1111,$1111,$1111
dc.w $1FF1,$FF11,$1FF1,$FF11,$FFFF,$FFF1,$1FF1,$FF11,$FFFF,$FFF1,$1FF1,$FF11,$1FF1,$FF11,$1111,$1111
dc.w $11FF,$1111,$1FFF,$FF11,$FF11,$1111,$1FFF,$F111,$1111,$FF11,$FFFF,$F111,$11FF,$1111,$1111,$1111
dc.w $1111,$1111,$FF11,$1FF1,$FF11,$FF11,$111F,$F111,$11FF,$1111,$1FF1,$1FF1,$FF11,$1FF1,$1111,$1111
dc.w $11FF,$F111,$1FF1,$FF11,$11FF,$F111,$1FFF,$1FF1,$FF1F,$FF11,$FF11,$FF11,$1FFF,$1FF1,$1111,$1111
dc.w $1FF1,$1111,$1FF1,$1111,$FF11,$1111,$1111,$1111,$1111,$1111,$1111,$1111,$1111,$1111,$1111,$1111
dc.w $111F,$F111,$11FF,$1111,$1FF1,$1111,$1FF1,$1111,$1FF1,$1111,$11FF,$1111,$111F,$F111,$1111,$1111
dc.w $1FF1,$1111,$11FF,$1111,$111F,$F111,$111F,$F111,$111F,$F111,$11FF,$1111,$1FF1,$1111,$1111,$1111
dc.w $1111,$1111,$1FF1,$1FF1,$11FF,$FF11,$FFFF,$FFFF,$11FF,$FF11,$1FF1,$1FF1,$1111,$1111,$1111,$1111
dc.w $1111,$1111,$11FF,$1111,$11FF,$1111,$FFFF,$FF11,$11FF,$1111,$11FF,$1111,$1111,$1111,$1111,$1111
dc.w $1111,$1111,$1111,$1111,$1111,$1111,$1111,$1111,$1111,$1111,$11FF,$1111,$11FF,$1111,$1FF1,$1111
dc.w $1111,$1111,$1111,$1111,$1111,$1111,$FFFF,$FF11,$1111,$1111,$1111,$1111,$1111,$1111,$1111,$1111
dc.w $1111,$1111,$1111,$1111,$1111,$1111,$1111,$1111,$1111,$1111,$11FF,$1111,$11FF,$1111,$1111,$1111
dc.w $1111,$1FF1,$1111,$FF11,$111F,$F111,$11FF,$1111,$1FF1,$1111,$FF11,$1111,$F111,$1111,$1111,$1111
dc.w $1FFF,$FF11,$FF11,$1FF1,$FF11,$FFF1,$FF1F,$FFF1,$FFFF,$1FF1,$FFF1,$1FF1,$1FFF,$FF11,$1111,$1111
dc.w $11FF,$1111,$1FFF,$1111,$11FF,$1111,$11FF,$1111,$11FF,$1111,$11FF,$1111,$FFFF,$FF11,$1111,$1111
dc.w $1FFF,$F111,$FF11,$FF11,$1111,$FF11,$11FF,$F111,$1FF1,$1111,$FF11,$FF11,$FFFF,$FF11,$1111,$1111
dc.w $1FFF,$F111,$FF11,$FF11,$1111,$FF11,$11FF,$F111,$1111,$FF11,$FF11,$FF11,$1FFF,$F111,$1111,$1111
dc.w $111F,$FF11,$11FF,$FF11,$1FF1,$FF11,$FF11,$FF11,$FFFF,$FFF1,$1111,$FF11,$111F,$FFF1,$1111,$1111
dc.w $FFFF,$FF11,$FF11,$1111,$FFFF,$F111,$1111,$FF11,$1111,$FF11,$FF11,$FF11,$1FFF,$F111,$1111,$1111
dc.w $11FF,$F111,$1FF1,$1111,$FF11,$1111,$FFFF,$F111,$FF11,$FF11,$FF11,$FF11,$1FFF,$F111,$1111,$1111
dc.w $FFFF,$FF11,$FF11,$FF11,$1111,$FF11,$111F,$F111,$11FF,$1111,$11FF,$1111,$11FF,$1111,$1111,$1111
dc.w $1FFF,$F111,$FF11,$FF11,$FF11,$FF11,$1FFF,$F111,$FF11,$FF11,$FF11,$FF11,$1FFF,$F111,$1111,$1111
dc.w $1FFF,$F111,$FF11,$FF11,$FF11,$FF11,$1FFF,$FF11,$1111,$FF11,$111F,$F111,$1FFF,$1111,$1111,$1111
dc.w $1111,$1111,$11FF,$1111,$11FF,$1111,$1111,$1111,$1111,$1111,$11FF,$1111,$11FF,$1111,$1111,$1111
dc.w $1111,$1111,$11FF,$1111,$11FF,$1111,$1111,$1111,$1111,$1111,$11FF,$1111,$11FF,$1111,$1FF1,$1111
dc.w $111F,$F111,$11FF,$1111,$1FF1,$1111,$FF11,$1111,$1FF1,$1111,$11FF,$1111,$111F,$F111,$1111,$1111
dc.w $1111,$1111,$1111,$1111,$FFFF,$FF11,$1111,$1111,$1111,$1111,$FFFF,$FF11,$1111,$1111,$1111,$1111
dc.w $1FF1,$1111,$11FF,$1111,$111F,$F111,$1111,$FF11,$111F,$F111,$11FF,$1111,$1FF1,$1111,$1111,$1111
dc.w $1FFF,$F111,$FF11,$FF11,$1111,$FF11,$111F,$F111,$11FF,$1111,$1111,$1111,$11FF,$1111,$1111,$1111
dc.w $1FFF,$FF11,$FF11,$1FF1,$FF1F,$FFF1,$FF1F,$FFF1,$FF1F,$FFF1,$FF11,$1111,$1FFF,$F111,$1111,$1111
dc.w $11FF,$1111,$1FFF,$F111,$FF11,$FF11,$FF11,$FF11,$FFFF,$FF11,$FF11,$FF11,$FF11,$FF11,$1111,$1111
dc.w $FFFF,$FF11,$1FF1,$1FF1,$1FF1,$1FF1,$1FFF,$FF11,$1FF1,$1FF1,$1FF1,$1FF1,$FFFF,$FF11,$1111,$1111
dc.w $11FF,$FF11,$1FF1,$1FF1,$FF11,$1111,$FF11,$1111,$FF11,$1111,$1FF1,$1FF1,$11FF,$FF11,$1111,$1111
dc.w $FFFF,$F111,$1FF1,$FF11,$1FF1,$1FF1,$1FF1,$1FF1,$1FF1,$1FF1,$1FF1,$FF11,$FFFF,$F111,$1111,$1111
dc.w $FFFF,$FFF1,$1FF1,$11F1,$1FF1,$F111,$1FFF,$F111,$1FF1,$F111,$1FF1,$11F1,$FFFF,$FFF1,$1111,$1111
dc.w $FFFF,$FFF1,$1FF1,$11F1,$1FF1,$F111,$1FFF,$F111,$1FF1,$F111,$1FF1,$1111,$FFFF,$1111,$1111,$1111
dc.w $11FF,$FF11,$1FF1,$1FF1,$FF11,$1111,$FF11,$1111,$FF11,$FFF1,$1FF1,$1FF1,$11FF,$FFF1,$1111,$1111
dc.w $FF11,$FF11,$FF11,$FF11,$FF11,$FF11,$FFFF,$FF11,$FF11,$FF11,$FF11,$FF11,$FF11,$FF11,$1111,$1111
dc.w $1FFF,$F111,$11FF,$1111,$11FF,$1111,$11FF,$1111,$11FF,$1111,$11FF,$1111,$1FFF,$F111,$1111,$1111
dc.w $111F,$FFF1,$1111,$FF11,$1111,$FF11,$1111,$FF11,$FF11,$FF11,$FF11,$FF11,$1FFF,$F111,$1111,$1111
dc.w $FFF1,$1FF1,$1FF1,$1FF1,$1FF1,$FF11,$1FFF,$F111,$1FF1,$FF11,$1FF1,$1FF1,$FFF1,$1FF1,$1111,$1111
dc.w $FFFF,$1111,$1FF1,$1111,$1FF1,$1111,$1FF1,$1111,$1FF1,$11F1,$1FF1,$1FF1,$FFFF,$FFF1,$1111,$1111
dc.w $FF11,$1FF1,$FFF1,$FFF1,$FFFF,$FFF1,$FFFF,$FFF1,$FF1F,$1FF1,$FF11,$1FF1,$FF11,$1FF1,$1111,$1111
dc.w $FF11,$1FF1,$FFF1,$1FF1,$FFFF,$1FF1,$FF1F,$FFF1,$FF11,$FFF1,$FF11,$1FF1,$FF11,$1FF1,$1111,$1111
dc.w $11FF,$F111,$1FF1,$FF11,$FF11,$1FF1,$FF11,$1FF1,$FF11,$1FF1,$1FF1,$FF11,$11FF,$F111,$1111,$1111
dc.w $FFFF,$FF11,$1FF1,$1FF1,$1FF1,$1FF1,$1FFF,$FF11,$1FF1,$1111,$1FF1,$1111,$FFFF,$1111,$1111,$1111
dc.w $1FFF,$F111,$FF11,$FF11,$FF11,$FF11,$FF11,$FF11,$FF1F,$FF11,$1FFF,$F111,$111F,$FF11,$1111,$1111
dc.w $FFFF,$FF11,$1FF1,$1FF1,$1FF1,$1FF1,$1FFF,$FF11,$1FF1,$FF11,$1FF1,$1FF1,$FFF1,$1FF1,$1111,$1111
dc.w $1FFF,$F111,$FF11,$FF11,$FFF1,$1111,$1FFF,$1111,$111F,$FF11,$FF11,$FF11,$1FFF,$F111,$1111,$1111
dc.w $FFFF,$FF11,$F1FF,$1F11,$11FF,$1111,$11FF,$1111,$11FF,$1111,$11FF,$1111,$1FFF,$F111,$1111,$1111
dc.w $FF11,$FF11,$FF11,$FF11,$FF11,$FF11,$FF11,$FF11,$FF11,$FF11,$FF11,$FF11,$FFFF,$FF11,$1111,$1111
dc.w $FF11,$FF11,$FF11,$FF11,$FF11,$FF11,$FF11,$FF11,$FF11,$FF11,$1FFF,$F111,$11FF,$1111,$1111,$1111
dc.w $FF11,$1FF1,$FF11,$1FF1,$FF11,$1FF1,$FF1F,$1FF1,$FFFF,$FFF1,$FFF1,$FFF1,$FF11,$1FF1,$1111,$1111
dc.w $FF11,$1FF1,$FF11,$1FF1,$1FF1,$FF11,$11FF,$F111,$11FF,$F111,$1FF1,$FF11,$FF11,$1FF1,$1111,$1111
dc.w $FF11,$FF11,$FF11,$FF11,$FF11,$FF11,$1FFF,$F111,$11FF,$1111,$11FF,$1111,$1FFF,$F111,$1111,$1111
dc.w $FFFF,$FFF1,$FF11,$1FF1,$F111,$FF11,$111F,$F111,$11FF,$11F1,$1FF1,$1FF1,$FFFF,$FFF1,$1111,$1111
dc.w $1FFF,$F111,$1FF1,$1111,$1FF1,$1111,$1FF1,$1111,$1FF1,$1111,$1FF1,$1111,$1FFF,$F111,$1111,$1111
dc.w $FF11,$1111,$1FF1,$1111,$11FF,$1111,$111F,$F111,$1111,$FF11,$1111,$1FF1,$1111,$11F1,$1111,$1111
dc.w $1FFF,$F111,$111F,$F111,$111F,$F111,$111F,$F111,$111F,$F111,$111F,$F111,$1FFF,$F111,$1111,$1111
dc.w $111F,$1111,$11FF,$F111,$1FF1,$FF11,$FF11,$1FF1,$1111,$1111,$1111,$1111,$1111,$1111,$1111,$1111
dc.w $1111,$1111,$1111,$1111,$1111,$1111,$1111,$1111,$1111,$1111,$1111,$1111,$1111,$1111,$FFFF,$FFFF
dc.w $11FF,$1111,$11FF,$1111,$111F,$F111,$1111,$1111,$1111,$1111,$1111,$1111,$1111,$1111,$1111,$1111
dc.w $1111,$1111,$1111,$1111,$1FFF,$F111,$1111,$FF11,$1FFF,$FF11,$FF11,$FF11,$1FFF,$1FF1,$1111,$1111
dc.w $FFF1,$1111,$1FF1,$1111,$1FF1,$1111,$1FFF,$FF11,$1FF1,$1FF1,$1FF1,$1FF1,$FF1F,$FF11,$1111,$1111
dc.w $1111,$1111,$1111,$1111,$1FFF,$F111,$FF11,$FF11,$FF11,$1111,$FF11,$FF11,$1FFF,$F111,$1111,$1111
dc.w $111F,$FF11,$1111,$FF11,$1111,$FF11,$1FFF,$FF11,$FF11,$FF11,$FF11,$FF11,$1FFF,$1FF1,$1111,$1111
dc.w $1111,$1111,$1111,$1111,$1FFF,$F111,$FF11,$FF11,$FFFF,$FF11,$FF11,$1111,$1FFF,$F111,$1111,$1111
dc.w $11FF,$F111,$1FF1,$FF11,$1FF1,$1111,$FFFF,$1111,$1FF1,$1111,$1FF1,$1111,$FFFF,$1111,$1111,$1111
dc.w $1111,$1111,$1111,$1111,$1FFF,$1FF1,$FF11,$FF11,$FF11,$FF11,$1FFF,$FF11,$1111,$FF11,$FFFF,$F111
dc.w $FFF1,$1111,$1FF1,$1111,$1FF1,$FF11,$1FFF,$1FF1,$1FF1,$1FF1,$1FF1,$1FF1,$FFF1,$1FF1,$1111,$1111
dc.w $11FF,$1111,$1111,$1111,$1FFF,$1111,$11FF,$1111,$11FF,$1111,$11FF,$1111,$1FFF,$F111,$1111,$1111
dc.w $1111,$FF11,$1111,$1111,$1111,$FF11,$1111,$FF11,$1111,$FF11,$FF11,$FF11,$FF11,$FF11,$1FFF,$F111
dc.w $FFF1,$1111,$1FF1,$1111,$1FF1,$1FF1,$1FF1,$FF11,$1FFF,$F111,$1FF1,$FF11,$FFF1,$1FF1,$1111,$1111
dc.w $1FFF,$1111,$11FF,$1111,$11FF,$1111,$11FF,$1111,$11FF,$1111,$11FF,$1111,$1FFF,$F111,$1111,$1111
dc.w $1111,$1111,$1111,$1111,$FF11,$FF11,$FFFF,$FFF1,$FFFF,$FFF1,$FF1F,$1FF1,$FF11,$1FF1,$1111,$1111
dc.w $1111,$1111,$1111,$1111,$FFFF,$F111,$FF11,$FF11,$FF11,$FF11,$FF11,$FF11,$FF11,$FF11,$1111,$1111
dc.w $1111,$1111,$1111,$1111,$1FFF,$F111,$FF11,$FF11,$FF11,$FF11,$FF11,$FF11,$1FFF,$F111,$1111,$1111
dc.w $1111,$1111,$1111,$1111,$FF1F,$FF11,$1FF1,$1FF1,$1FF1,$1FF1,$1FFF,$FF11,$1FF1,$1111,$FFFF,$1111
dc.w $1111,$1111,$1111,$1111,$1FFF,$1FF1,$FF11,$FF11,$FF11,$FF11,$1FFF,$FF11,$1111,$FF11,$111F,$FFF1
dc.w $1111,$1111,$1111,$1111,$FF1F,$FF11,$1FFF,$1FF1,$1FF1,$1FF1,$1FF1,$1111,$FFFF,$1111,$1111,$1111
dc.w $1111,$1111,$1111,$1111,$1FFF,$FF11,$FF11,$1111,$1FFF,$F111,$1111,$FF11,$FFFF,$F111,$1111,$1111
dc.w $111F,$1111,$11FF,$1111,$1FFF,$FF11,$11FF,$1111,$11FF,$1111,$11FF,$1F11,$111F,$F111,$1111,$1111
dc.w $1111,$1111,$1111,$1111,$FF11,$FF11,$FF11,$FF11,$FF11,$FF11,$FF11,$FF11,$1FFF,$1FF1,$1111,$1111
dc.w $1111,$1111,$1111,$1111,$FF11,$FF11,$FF11,$FF11,$FF11,$FF11,$1FFF,$F111,$11FF,$1111,$1111,$1111
dc.w $1111,$1111,$1111,$1111,$FF11,$1FF1,$FF1F,$1FF1,$FFFF,$FFF1,$FFFF,$FFF1,$1FF1,$FF11,$1111,$1111
dc.w $1111,$1111,$1111,$1111,$FF11,$1FF1,$1FF1,$FF11,$11FF,$F111,$1FF1,$FF11,$FF11,$1FF1,$1111,$1111
dc.w $1111,$1111,$1111,$1111,$FF11,$FF11,$FF11,$FF11,$FF11,$FF11,$1FFF,$FF11,$1111,$FF11,$FFFF,$F111
dc.w $1111,$1111,$1111,$1111,$FFFF,$FF11,$F11F,$F111,$11FF,$1111,$1FF1,$1F11,$FFFF,$FF11,$1111,$1111
dc.w $111F,$FF11,$11FF,$1111,$11FF,$1111,$FFF1,$1111,$11FF,$1111,$11FF,$1111,$111F,$FF11,$1111,$1111
dc.w $111F,$F111,$111F,$F111,$111F,$F111,$1111,$1111,$111F,$F111,$111F,$F111,$111F,$F111,$1111,$1111
dc.w $FFF1,$1111,$11FF,$1111,$11FF,$1111,$111F,$FF11,$11FF,$1111,$11FF,$1111,$FFF1,$1111,$1111,$1111
dc.w $1FFF,$1FF1,$FF1F,$FF11,$1111,$1111,$1111,$1111,$1111,$1111,$1111,$1111,$1111,$1111,$1111,$1111
dc.w $1111,$1111,$111F,$1111,$11FF,$F111,$1FF1,$FF11,$FF11,$1FF1,$FF11,$1FF1,$FFFF,$FFF1,$1111,$1111
dc.w $111F,$FFF1,$11FF,$1FF1,$1FF1,$1FF1,$1FF1,$1FF1,$1FFF,$FFF1,$1FF1,$1FF1,$1FF1,$1FF1,$1111,$1111
dc.w $1FFF,$FF11,$1FF1,$1111,$1FF1,$1111,$1FFF,$FF11,$1FF1,$1FF1,$1FF1,$1FF1,$1FFF,$FF11,$1111,$1111
dc.w $1FFF,$FF11,$1FF1,$1FF1,$1FF1,$1FF1,$1FFF,$FF11,$1FF1,$1FF1,$1FF1,$1FF1,$1FFF,$FF11,$1111,$1111
dc.w $1FFF,$FFF1,$1FF1,$1111,$1FF1,$1111,$1FF1,$1111,$1FF1,$1111,$1FF1,$1111,$1FF1,$1111,$1111,$1111
dc.w $11FF,$F111,$1FF1,$FF11,$1FF1,$FF11,$1FF1,$FF11,$1FF1,$FF11,$1FF1,$FF11,$FFFF,$FFF1,$FF11,$1FF1
dc.w $1FFF,$FFF1,$1FF1,$1111,$1FF1,$1111,$1FFF,$FF11,$1FF1,$1111,$1FF1,$1111,$1FFF,$FFF1,$1111,$1111
dc.w $FF1F,$F1FF,$FF1F,$F1FF,$1FFF,$FFF1,$11FF,$FF11,$1FFF,$FFF1,$FF1F,$F1FF,$FF1F,$F1FF,$1111,$1111
dc.w $11FF,$FF11,$1FF1,$1FF1,$1111,$1FF1,$111F,$FF11,$1111,$1FF1,$1FF1,$1FF1,$11FF,$FF11,$1111,$1111
dc.w $1FF1,$1FF1,$1FF1,$1FF1,$1FF1,$FFF1,$1FFF,$FFF1,$1FFF,$1FF1,$1FF1,$1FF1,$1FF1,$1FF1,$1111,$1111
dc.w $11FF,$FF11,$1FF1,$1FF1,$1FF1,$FFF1,$1FFF,$FFF1,$1FFF,$1FF1,$1FF1,$1FF1,$1FF1,$1FF1,$1111,$1111
dc.w $1FF1,$1FF1,$1FF1,$FF11,$1FFF,$F111,$1FFF,$1111,$1FFF,$F111,$1FF1,$FF11,$1FF1,$1FF1,$1111,$1111
dc.w $111F,$FFF1,$11FF,$1FF1,$1FF1,$1FF1,$1FF1,$1FF1,$1FF1,$1FF1,$1FF1,$1FF1,$1FF1,$1FF1,$1111,$1111
dc.w $FF11,$1FF1,$FFF1,$FFF1,$FFFF,$FFF1,$FFFF,$FFF1,$FF1F,$1FF1,$FF11,$1FF1,$FF11,$1FF1,$1111,$1111
dc.w $1FF1,$1FF1,$1FF1,$1FF1,$1FF1,$1FF1,$1FFF,$FFF1,$1FF1,$1FF1,$1FF1,$1FF1,$1FF1,$1FF1,$1111,$1111
dc.w $11FF,$FF11,$1FF1,$1FF1,$1FF1,$1FF1,$1FF1,$1FF1,$1FF1,$1FF1,$1FF1,$1FF1,$11FF,$FF11,$1111,$1111
dc.w $1FFF,$FFF1,$1FF1,$1FF1,$1FF1,$1FF1,$1FF1,$1FF1,$1FF1,$1FF1,$1FF1,$1FF1,$1FF1,$1FF1,$1111,$1111
dc.w $1FFF,$FF11,$1FF1,$1FF1,$1FF1,$1FF1,$1FF1,$1FF1,$1FFF,$FF11,$1FF1,$1111,$1FF1,$1111,$1111,$1111
dc.w $11FF,$FF11,$1FF1,$1FF1,$1FF1,$1111,$1FF1,$1111,$1FF1,$1111,$1FF1,$1FF1,$11FF,$FF11,$1111,$1111
dc.w $1FFF,$FFF1,$111F,$F111,$111F,$F111,$111F,$F111,$111F,$F111,$111F,$F111,$111F,$F111,$1111,$1111
dc.w $1FF1,$1FF1,$1FF1,$1FF1,$1FF1,$1FF1,$11FF,$FFF1,$1111,$1FF1,$1FF1,$1FF1,$11FF,$FF11,$1111,$1111
dc.w $1FFF,$FFF1,$FF1F,$F1FF,$FF1F,$F1FF,$FF1F,$F1FF,$1FFF,$FFF1,$111F,$F111,$111F,$F111,$1111,$1111
dc.w $1FF1,$1FF1,$1FF1,$1FF1,$11FF,$FF11,$111F,$F111,$11FF,$FF11,$1FF1,$1FF1,$1FF1,$1FF1,$1111,$1111
dc.w $1FF1,$1FF1,$1FF1,$1FF1,$1FF1,$1FF1,$1FF1,$1FF1,$1FF1,$1FF1,$1FF1,$1FF1,$1FFF,$FFFF,$1111,$11FF
dc.w $1FF1,$1FF1,$1FF1,$1FF1,$1FF1,$1FF1,$11FF,$FFF1,$1111,$1FF1,$1111,$1FF1,$1111,$1FF1,$1111,$1111
dc.w $FF1F,$F1FF,$FF1F,$F1FF,$FF1F,$F1FF,$FF1F,$F1FF,$FF1F,$F1FF,$FF1F,$F1FF,$FFFF,$FFFF,$1111,$1111
dc.w $FF1F,$F1FF,$FF1F,$F1FF,$FF1F,$F1FF,$FF1F,$F1FF,$FF1F,$F1FF,$FF1F,$F1FF,$FFFF,$FFFF,$1111,$11FF
dc.w $FFF1,$1111,$1FF1,$1111,$1FF1,$1111,$1FFF,$FF11,$1FF1,$1FF1,$1FF1,$1FF1,$1FFF,$FF11,$1111,$1111
dc.w $FF11,$1FF1,$FF11,$1FF1,$FF11,$1FF1,$FFFF,$1FF1,$FF1F,$FFF1,$FF1F,$FFF1,$FFFF,$1FF1,$1111,$1111
dc.w $1FF1,$1111,$1FF1,$1111,$1FF1,$1111,$1FFF,$FF11,$1FF1,$1FF1,$1FF1,$1FF1,$1FFF,$FF11,$1111,$1111
dc.w $1FFF,$F111,$F111,$FF11,$1111,$1FF1,$11FF,$FFF1,$1111,$1FF1,$F111,$FF11,$1FFF,$F111,$1111,$1111
dc.w $FF11,$FFF1,$FF1F,$F1FF,$FF1F,$F1FF,$FFFF,$F1FF,$FF1F,$F1FF,$FF1F,$F1FF,$FF11,$FFF1,$1111,$1111
dc.w $11FF,$FFF1,$1FF1,$1FF1,$1FF1,$1FF1,$1FF1,$1FF1,$11FF,$FFF1,$11FF,$1FF1,$1FF1,$1FF1,$1111,$1111
dc.w $1111,$1111,$1111,$1111,$1FFF,$F111,$1111,$FF11,$1FFF,$FF11,$FF11,$FF11,$1FFF,$1FF1,$1111,$1111
dc.w $1111,$1111,$11FF,$FF11,$1FF1,$1111,$11FF,$FF11,$1FF1,$1FF1,$1FF1,$1FF1,$11FF,$FF11,$1111,$1111
dc.w $1111,$1111,$1111,$1111,$1FFF,$FF11,$1FF1,$1FF1,$1FFF,$FF11,$1FF1,$1FF1,$1FFF,$FF11,$1111,$1111
dc.w $1111,$1111,$1111,$1111,$1FFF,$FFF1,$1FF1,$1111,$1FF1,$1111,$1FF1,$1111,$1FF1,$1111,$1111,$1111
dc.w $1111,$1111,$1111,$1111,$11FF,$FF11,$1FF1,$FF11,$1FF1,$FF11,$1FF1,$FF11,$FFFF,$FFF1,$FF11,$1FF1
dc.w $1111,$1111,$1111,$1111,$11FF,$FF11,$1FF1,$1FF1,$1FFF,$FFF1,$1FF1,$1111,$11FF,$FF11,$1111,$1111
dc.w $1111,$1111,$1111,$1111,$FF1F,$F1FF,$1FFF,$FFF1,$11FF,$FF11,$1FFF,$FFF1,$FF1F,$F1FF,$1111,$1111
dc.w $1111,$1111,$1111,$1111,$11FF,$FF11,$1FF1,$1FF1,$1111,$FF11,$1FF1,$1FF1,$11FF,$FF11,$1111,$1111
dc.w $1111,$1111,$1111,$1111,$1FF1,$1FF1,$1FF1,$FFF1,$1FFF,$FFF1,$1FFF,$1FF1,$1FF1,$1FF1,$1111,$1111
dc.w $1111,$1111,$111F,$F111,$1FF1,$1FF1,$1FF1,$FFF1,$1FFF,$FFF1,$1FFF,$1FF1,$1FF1,$1FF1,$1111,$1111
dc.w $1111,$1111,$1111,$1111,$1FF1,$1FF1,$1FF1,$FF11,$1FFF,$F111,$1FF1,$FF11,$1FF1,$1FF1,$1111,$1111
dc.w $1111,$1111,$1111,$1111,$111F,$FFF1,$11FF,$1FF1,$1FF1,$1FF1,$1FF1,$1FF1,$1FF1,$1FF1,$1111,$1111
dc.w $1111,$1111,$1111,$1111,$FF11,$1FF1,$FFFF,$FFF1,$FFFF,$FFF1,$FF1F,$1FF1,$FF11,$1FF1,$1111,$1111
dc.w $1111,$1111,$1111,$1111,$1FF1,$1FF1,$1FF1,$1FF1,$1FFF,$FFF1,$1FF1,$1FF1,$1FF1,$1FF1,$1111,$1111
dc.w $1111,$1111,$1111,$1111,$11FF,$FF11,$1FF1,$1FF1,$1FF1,$1FF1,$1FF1,$1FF1,$11FF,$FF11,$1111,$1111
dc.w $1111,$1111,$1111,$1111,$1FFF,$FFF1,$1FF1,$1FF1,$1FF1,$1FF1,$1FF1,$1FF1,$1FF1,$1FF1,$1111,$1111
dc.w $111F,$111F,$1F11,$1F11,$111F,$111F,$1F11,$1F11,$111F,$111F,$1F11,$1F11,$111F,$111F,$1F11,$1F11
dc.w $1F1F,$1F1F,$F1F1,$F1F1,$1F1F,$1F1F,$F1F1,$F1F1,$1F1F,$1F1F,$F1F1,$F1F1,$1F1F,$1F1F,$F1F1,$F1F1
dc.w $FF1F,$FF1F,$1FFF,$1FFF,$FF1F,$FF1F,$1FFF,$1FFF,$FF1F,$FF1F,$1FFF,$1FFF,$FF1F,$FF1F,$1FFF,$1FFF
dc.w $111F,$F111,$111F,$F111,$111F,$F111,$111F,$F111,$111F,$F111,$111F,$F111,$111F,$F111,$111F,$F111
dc.w $111F,$F111,$111F,$F111,$111F,$F111,$FFFF,$F111,$111F,$F111,$111F,$F111,$111F,$F111,$111F,$F111
dc.w $111F,$F111,$FFFF,$F111,$111F,$F111,$FFFF,$F111,$111F,$F111,$111F,$F111,$111F,$F111,$111F,$F111
dc.w $11FF,$1FF1,$11FF,$1FF1,$11FF,$1FF1,$FFFF,$1FF1,$11FF,$1FF1,$11FF,$1FF1,$11FF,$1FF1,$11FF,$1FF1
dc.w $1111,$1111,$1111,$1111,$1111,$1111,$FFFF,$FFF1,$11FF,$1FF1,$11FF,$1FF1,$11FF,$1FF1,$11FF,$1FF1
dc.w $1111,$1111,$FFFF,$F111,$111F,$F111,$FFFF,$F111,$111F,$F111,$111F,$F111,$111F,$F111,$111F,$F111
dc.w $11FF,$1FF1,$FFFF,$1FF1,$1111,$1FF1,$FFFF,$1FF1,$11FF,$1FF1,$11FF,$1FF1,$11FF,$1FF1,$11FF,$1FF1
dc.w $11FF,$1FF1,$11FF,$1FF1,$11FF,$1FF1,$11FF,$1FF1,$11FF,$1FF1,$11FF,$1FF1,$11FF,$1FF1,$11FF,$1FF1
dc.w $1111,$1111,$FFFF,$FFF1,$1111,$1FF1,$FFFF,$1FF1,$11FF,$1FF1,$11FF,$1FF1,$11FF,$1FF1,$11FF,$1FF1
dc.w $11FF,$1FF1,$FFFF,$1FF1,$1111,$1FF1,$FFFF,$FFF1,$1111,$1111,$1111,$1111,$1111,$1111,$1111,$1111
dc.w $11FF,$1FF1,$11FF,$1FF1,$11FF,$1FF1,$FFFF,$FFF1,$1111,$1111,$1111,$1111,$1111,$1111,$1111,$1111
dc.w $111F,$F111,$FFFF,$F111,$111F,$F111,$FFFF,$F111,$1111,$1111,$1111,$1111,$1111,$1111,$1111,$1111
dc.w $1111,$1111,$1111,$1111,$1111,$1111,$FFFF,$F111,$111F,$F111,$111F,$F111,$111F,$F111,$111F,$F111
dc.w $111F,$F111,$111F,$F111,$111F,$F111,$111F,$FFFF,$1111,$1111,$1111,$1111,$1111,$1111,$1111,$1111
dc.w $111F,$F111,$111F,$F111,$111F,$F111,$FFFF,$FFFF,$1111,$1111,$1111,$1111,$1111,$1111,$1111,$1111
dc.w $1111,$1111,$1111,$1111,$1111,$1111,$FFFF,$FFFF,$111F,$F111,$111F,$F111,$111F,$F111,$111F,$F111
dc.w $111F,$F111,$111F,$F111,$111F,$F111,$111F,$FFFF,$111F,$F111,$111F,$F111,$111F,$F111,$111F,$F111
dc.w $1111,$1111,$1111,$1111,$1111,$1111,$FFFF,$FFFF,$1111,$1111,$1111,$1111,$1111,$1111,$1111,$1111
dc.w $111F,$F111,$111F,$F111,$111F,$F111,$FFFF,$FFFF,$111F,$F111,$111F,$F111,$111F,$F111,$111F,$F111
dc.w $111F,$F111,$111F,$FFFF,$111F,$F111,$111F,$FFFF,$111F,$F111,$111F,$F111,$111F,$F111,$111F,$F111
dc.w $11FF,$1FF1,$11FF,$1FF1,$11FF,$1FF1,$11FF,$1FFF,$11FF,$1FF1,$11FF,$1FF1,$11FF,$1FF1,$11FF,$1FF1
dc.w $11FF,$1FF1,$11FF,$1FFF,$11FF,$1111,$11FF,$FFFF,$1111,$1111,$1111,$1111,$1111,$1111,$1111,$1111
dc.w $1111,$1111,$11FF,$FFFF,$11FF,$1111,$11FF,$1FFF,$11FF,$1FF1,$11FF,$1FF1,$11FF,$1FF1,$11FF,$1FF1
dc.w $11FF,$1FF1,$FFFF,$1FFF,$1111,$1111,$FFFF,$FFFF,$1111,$1111,$1111,$1111,$1111,$1111,$1111,$1111
dc.w $1111,$1111,$FFFF,$FFFF,$1111,$1111,$FFFF,$1FFF,$11FF,$1FF1,$11FF,$1FF1,$11FF,$1FF1,$11FF,$1FF1
dc.w $11FF,$1FF1,$11FF,$1FFF,$11FF,$1111,$11FF,$1FFF,$11FF,$1FF1,$11FF,$1FF1,$11FF,$1FF1,$11FF,$1FF1
dc.w $1111,$1111,$FFFF,$FFFF,$1111,$1111,$FFFF,$FFFF,$1111,$1111,$1111,$1111,$1111,$1111,$1111,$1111
dc.w $11FF,$1FF1,$FFFF,$1FFF,$1111,$1111,$FFFF,$1FFF,$11FF,$1FF1,$11FF,$1FF1,$11FF,$1FF1,$11FF,$1FF1
dc.w $111F,$F111,$FFFF,$FFFF,$1111,$1111,$FFFF,$FFFF,$1111,$1111,$1111,$1111,$1111,$1111,$1111,$1111
dc.w $11FF,$1FF1,$11FF,$1FF1,$11FF,$1FF1,$FFFF,$FFFF,$1111,$1111,$1111,$1111,$1111,$1111,$1111,$1111
dc.w $1111,$1111,$FFFF,$FFFF,$1111,$1111,$FFFF,$FFFF,$111F,$F111,$111F,$F111,$111F,$F111,$111F,$F111
dc.w $1111,$1111,$1111,$1111,$1111,$1111,$FFFF,$FFFF,$11FF,$1FF1,$11FF,$1FF1,$11FF,$1FF1,$11FF,$1FF1
dc.w $11FF,$1FF1,$11FF,$1FF1,$11FF,$1FF1,$11FF,$FFFF,$1111,$1111,$1111,$1111,$1111,$1111,$1111,$1111
dc.w $111F,$F111,$111F,$FFFF,$111F,$F111,$111F,$FFFF,$1111,$1111,$1111,$1111,$1111,$1111,$1111,$1111
dc.w $1111,$1111,$111F,$FFFF,$111F,$F111,$111F,$FFFF,$111F,$F111,$111F,$F111,$111F,$F111,$111F,$F111
dc.w $1111,$1111,$1111,$1111,$1111,$1111,$11FF,$FFFF,$11FF,$1FF1,$11FF,$1FF1,$11FF,$1FF1,$11FF,$1FF1
dc.w $11FF,$1FF1,$11FF,$1FF1,$11FF,$1FF1,$FFFF,$FFFF,$11FF,$1FF1,$11FF,$1FF1,$11FF,$1FF1,$11FF,$1FF1
dc.w $111F,$F111,$FFFF,$FFFF,$111F,$F111,$FFFF,$FFFF,$111F,$F111,$111F,$F111,$111F,$F111,$111F,$F111
dc.w $111F,$F111,$111F,$F111,$111F,$F111,$FFFF,$F111,$1111,$1111,$1111,$1111,$1111,$1111,$1111,$1111
dc.w $1111,$1111,$1111,$1111,$1111,$1111,$111F,$FFFF,$111F,$F111,$111F,$F111,$111F,$F111,$111F,$F111
dc.w $FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF
dc.w $1111,$1111,$1111,$1111,$1111,$1111,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF
dc.w $FFFF,$1111,$FFFF,$1111,$FFFF,$1111,$FFFF,$1111,$FFFF,$1111,$FFFF,$1111,$FFFF,$1111,$FFFF,$1111
dc.w $1111,$FFFF,$1111,$FFFF,$1111,$FFFF,$1111,$FFFF,$1111,$FFFF,$1111,$FFFF,$1111,$FFFF,$1111,$FFFF
dc.w $FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$1111,$1111,$1111,$1111,$1111,$1111,$1111,$1111,$1111,$1111
dc.w $1111,$1111,$1111,$1111,$1FFF,$FF11,$1FF1,$1FF1,$1FF1,$1FF1,$1FFF,$FF11,$1FF1,$1111,$1111,$1111
dc.w $1111,$1111,$1111,$1111,$11FF,$FF11,$1FF1,$1FF1,$1FF1,$1111,$1FF1,$1FF1,$11FF,$FF11,$1111,$1111
dc.w $1111,$1111,$1111,$1111,$1FFF,$FFF1,$111F,$F111,$111F,$F111,$111F,$F111,$111F,$F111,$1111,$1111
dc.w $1111,$1111,$1111,$1111,$1FF1,$1FF1,$1FF1,$1FF1,$11FF,$FFF1,$1111,$1FF1,$11FF,$FF11,$1111,$1111
dc.w $1111,$1111,$1111,$1111,$1FFF,$FFF1,$FF1F,$F1FF,$FF1F,$F1FF,$1FFF,$FFF1,$111F,$F111,$1111,$1111
dc.w $1111,$1111,$1111,$1111,$1FF1,$1FF1,$11FF,$FF11,$111F,$F111,$11FF,$FF11,$1FF1,$1FF1,$1111,$1111
dc.w $1111,$1111,$1111,$1111,$1FF1,$1FF1,$1FF1,$1FF1,$1FF1,$1FF1,$1FF1,$1FF1,$1FFF,$FFFF,$1111,$11FF
dc.w $1111,$1111,$1111,$1111,$1FF1,$1FF1,$1FF1,$1FF1,$11FF,$FFF1,$1111,$1FF1,$1111,$1FF1,$1111,$1111
dc.w $1111,$1111,$1111,$1111,$FF1F,$F1FF,$FF1F,$F1FF,$FF1F,$F1FF,$FF1F,$F1FF,$FFFF,$FFFF,$1111,$1111
dc.w $1111,$1111,$1111,$1111,$FF1F,$F1FF,$FF1F,$F1FF,$FF1F,$F1FF,$FF1F,$F1FF,$FFFF,$FFFF,$1111,$11FF
dc.w $1111,$1111,$1111,$1111,$FFF1,$1111,$1FF1,$1111,$1FFF,$FF11,$1FF1,$1FF1,$1FFF,$FF11,$1111,$1111
dc.w $1111,$1111,$1111,$1111,$FF11,$1FF1,$FF11,$1FF1,$FFFF,$1FF1,$FF1F,$FFF1,$FFFF,$1FF1,$1111,$1111
dc.w $1111,$1111,$1111,$1111,$1FF1,$1111,$1FF1,$1111,$1FFF,$FF11,$1FF1,$1FF1,$1FFF,$FF11,$1111,$1111
dc.w $1111,$1111,$1111,$1111,$1FFF,$FF11,$1111,$1FF1,$11FF,$FFF1,$1111,$1FF1,$1FFF,$FF11,$1111,$1111
dc.w $1111,$1111,$1111,$1111,$FF11,$FFF1,$FF1F,$F1FF,$FFFF,$F1FF,$FF1F,$F1FF,$FF11,$FFF1,$1111,$1111
dc.w $1111,$1111,$1111,$1111,$11FF,$FFF1,$1FF1,$1FF1,$11FF,$FFF1,$11FF,$1FF1,$1FF1,$1FF1,$1111,$1111
dc.w $1FF1,$FF11,$FFFF,$FFF1,$F111,$1111,$FFFF,$F111,$F111,$1111,$F111,$1111,$FFFF,$FFF1,$1111,$1111
dc.w $1FF1,$FF11,$1111,$1111,$1FFF,$FF11,$F111,$11F1,$FFFF,$FFF1,$F111,$1111,$1FFF,$FFF1,$1111,$1111
dc.w $1111,$1110,$1777,$7110,$77E7,$E710,$7E7E,$E770,$7EEE,$EE70,$7EEE,$EE70,$7777,$7770,$0000,$0000
dc.w $8888,$8811,$8FFF,$8F81,$8F9F,$F881,$8FF9,$FF81,$8F9F,$9F81,$8FFF,$FF81,$8888,$8881,$1111,$1111
dc.w $1F11,$F111,$1FFF,$F111,$11FF,$1111,$11FF,$1111,$11FF,$1111,$11FF,$1111,$1FFF,$F111,$1111,$1111
dc.w $1F1F,$1111,$1111,$1111,$1FFF,$1111,$11FF,$1111,$11FF,$1111,$11FF,$1111,$1FFF,$F111,$1111,$1111
dc.w $1111,$1111,$111F,$F111,$111F,$F111,$1111,$1111,$1FFF,$FFF1,$1111,$1111,$111F,$F111,$111F,$F111
dc.w $1111,$1111,$1FFF,$1FF1,$FF1F,$FF11,$1111,$1111,$1FFF,$1FF1,$FF1F,$FF11,$1111,$1111,$1111,$1111
dc.w $1111,$1111,$11FF,$F111,$1FF1,$FF11,$1FF1,$FF11,$11FF,$F111,$1111,$1111,$1111,$1111,$1111,$1111
dc.w $1111,$1111,$1111,$1111,$1111,$1111,$1111,$1111,$111F,$F111,$1111,$1111,$1111,$1111,$1111,$1111
dc.w $1111,$1111,$1111,$1111,$1111,$1111,$11FF,$F111,$11FF,$F111,$1111,$1111,$1111,$1111,$1111,$1111
dc.w $1111,$11FF,$1111,$11F1,$1111,$1FF1,$1111,$1F11,$FF11,$FF11,$1FF1,$F111,$11FF,$F111,$111F,$1111
dc.w $F111,$F1FF,$FF11,$F1FF,$FFF1,$F111,$F1FF,$F111,$F11F,$F111,$F111,$F111,$F111,$F111,$1111,$1111
dc.w $11FF,$1111,$1F11,$F111,$111F,$1111,$11F1,$1111,$1FFF,$F111,$1111,$1111,$1111,$1111,$1111,$1111
dc.w $1111,$1111,$1111,$1111,$1FFF,$FF11,$1FFF,$FF11,$1FFF,$FF11,$1FFF,$FF11,$1111,$1111,$1111,$1111
dc.w $1111,$1111,$1111,$1111,$1111,$1111,$1111,$1111,$1111,$1111,$1111,$1111,$1111,$1111,$1111,$1111
*Конец
end START
-
- Very interested
- Posts: 256
- Joined: Tue Sep 11, 2007 9:10 pm
-
- Very interested
- Posts: 2993
- Joined: Fri Aug 17, 2007 9:33 pm
If you're used to using C instead for data arrays, you get in the habit of using hex as you don't have binary with most C compilers.tomaitheous wrote:HardWareMan: Have a question for you. Why do you include the font as hex/text instead as a binary? I've seen a few other demos do this too. Is it just habit?
-
- Very interested
- Posts: 256
- Joined: Tue Sep 11, 2007 9:10 pm
I understand for C compilers (I wrote a bin to static array conversion app), but looks a little weird for an ASM project <_< I guess it's just habit for some.Chilly Willy wrote:If you're used to using C instead for data arrays, you get in the habit of using hex as you don't have binary with most C compilers.tomaitheous wrote:HardWareMan: Have a question for you. Why do you include the font as hex/text instead as a binary? I've seen a few other demos do this too. Is it just habit?
-
- Very interested
- Posts: 2993
- Joined: Fri Aug 17, 2007 9:33 pm
Also remember that pattern data on the SEGA is by nibbles, which works better as hex than binary. So if the font is pattern data, that'll be hex for certain.tomaitheous wrote:I understand for C compilers (I wrote a bin to static array conversion app), but looks a little weird for an ASM project <_< I guess it's just habit for some.Chilly Willy wrote:If you're used to using C instead for data arrays, you get in the habit of using hex as you don't have binary with most C compilers.tomaitheous wrote:HardWareMan: Have a question for you. Why do you include the font as hex/text instead as a binary? I've seen a few other demos do this too. Is it just habit?
-
- Very interested
- Posts: 753
- Joined: Sat Dec 15, 2007 7:49 am
Yes, I know. But unfortunately "68000 IDE" don't handle "incbin" directive. And it's compiler have a bug with MOVEM opcode. When you write for M68K, you will need to watch for data alignment or you get AdrErr exeption for word and dword accesses to your data. And code which contains an array with an odd number of bytes inside will shifted and will not works, becouse M68K fetches opcodes as word only.tomaitheous wrote:I understand for C compilers (I wrote a bin to static array conversion app), but looks a little weird for an ASM project <_< I guess it's just habit for some.Chilly Willy wrote:If you're used to using C instead for data arrays, you get in the habit of using hex as you don't have binary with most C compilers.tomaitheous wrote:HardWareMan: Have a question for you. Why do you include the font as hex/text instead as a binary? I've seen a few other demos do this too. Is it just habit?
I'm waiting new IDE, coming soon.
-
- Very interested
- Posts: 2452
- Joined: Tue Dec 05, 2006 1:37 pm
- Location: Estonia, Rapla City
- Contact:
isn't there EVEN directive ? I put an EVEN after any data I'm not sure if its having even size.
Mida sa loed ? Nagunii aru ei saa 
http://www.tmeeco.eu
Files of all broken links and images of mine are found here : http://www.tmeeco.eu/FileDen

http://www.tmeeco.eu
Files of all broken links and images of mine are found here : http://www.tmeeco.eu/FileDen
-
- Very interested
- Posts: 256
- Joined: Tue Sep 11, 2007 9:10 pm
Same here. I use it for all includes - data or code files. Binary or text.TmEE co.(TM) wrote:isn't there EVEN directive ? I put an EVEN after any data I'm not sure if its having even size.
HWM: What IDE is that? What's the assembler? Strange that it won't do INCBIN. I love incbin, though I only use it for data. I prefer using source instead of objects files for code

-
- Very interested
- Posts: 753
- Joined: Sat Dec 15, 2007 7:49 am
Here. I think this screenshot explain all.tomaitheous wrote:Same here. I use it for all includes - data or code files. Binary or text.TmEE co.(TM) wrote:isn't there EVEN directive ? I put an EVEN after any data I'm not sure if its having even size.
HWM: What IDE is that? What's the assembler? Strange that it won't do INCBIN. I love incbin, though I only use it for data. I prefer using source instead of objects files for code

Later.
There is ALIGN directive, that described in help. This is my fault at all. RTFM, f**k...
But, there no directive to attach binary data.ALIGN
--------------------------------------------------------------------------------
Syntax: ALIGN
Size: n/a
Description:
This directive is only required following a DC.B, DC.B or DS.B directive if the next DC.B, DC.B or DS.B directive must be on an even address. Other directives and all instructions are automatically aligned by the assembler.
Examples:
ALIGN
Stupid email doesnt even alert me of when i get replies xD
@ hardwareman
Does your "OS" struggle to do anything? i mean hardware limitations are a big problem
all your code is hex, and looks very cluttered, You must struggle to write it.. xD
@ hardwareman
Does your "OS" struggle to do anything? i mean hardware limitations are a big problem
all your code is hex, and looks very cluttered, You must struggle to write it.. xD
To be this good takes ages, To be this good takes Stef, Kanedafr, ChillyWilly & everyone who has helped me discover what hardwork is!
Dive into the SpritesMind!
Dive into the SpritesMind!

-
- Very interested
- Posts: 753
- Joined: Sat Dec 15, 2007 7:49 am
A disassembler? I hate using it, but they are quick and dirty although i can only find one that exports to an actual asm file and not to console screens.
To be this good takes ages, To be this good takes Stef, Kanedafr, ChillyWilly & everyone who has helped me discover what hardwork is!
Dive into the SpritesMind!
Dive into the SpritesMind!
