Aufgabenstellung: Flying Donuts Übersetzung des folgenden Pascal Programms nach Assembler
Nachfolgend zu der Assembler "Vorlesung" Hardware und VGA Programmierung stelle ich Euch hier die dazugehörige
Aufgabenstellung. Das Programm habe ich spaßeshalber Flying Donuts genannt, da die darzustellenden Sprites bei
mir ein wenig den Appetit angeregt hatten. Praktisch gesehen liegt es an Euch, das nachfolgende Pascal möglichst
originalgetreu in Assembler zu übersetzten. Bevor es allerdings zum großen "Rumgestöhne" kommt, bezüglich der
Umsetzung der Pixel Daten für das Sprite, habe ich Euch noch ein kleines Rahmenskelett für das Assembler Programm
erstellt, an dessen Aufbau ihr Euch halten solltet (nicht im gezwungenen Sinne ;)...
Das Pascal Programm:
program Flying_Donuts;
Const Bilddaten : array[1..48*48] of byte = (
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,02,05,07,08,08,08,08,07,05,02,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,01,
06,08,011,012,013,013,013,013,013,013,013,013,012,011,08,06,01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,04,09,011,013,014,015,016,016,016,016,016,016,016,016,016,016,015,014,013,
011,09,04,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,04,09,011,013,014,
015,016,017,017,017,017,017,017,017,017,017,017,017,017,016,015,014,013,011,09,04,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,07,010,011,013,015,016,016,016,016,016,016,016,016,015,015,016,016,016,016,016,016,016,
016,015,013,011,010,07,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,04,08,011,012,014,015,015,016,
015,015,014,014,013,013,013,013,013,013,013,013,014,014,015,015,016,015,015,014,012,011,08,04,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,04,09,011,012,013,014,014,014,014,013,013,012,012,012,011,011,011,011,011,011,012,012,012,013,013,
014,014,014,014,013,012,011,09,04,0,0,0,0,0,0,0,0,0,0,0,0,0,05,08,010,011,012,013,014,013,013,013,
012,011,011,010,010,010,010,09,09,010,010,010,010,011,011,012,013,013,013,014,013,012,011,010,08,05,0,0,0,0,0,0,
0,0,0,0,0,02,09,010,011,012,013,013,013,012,012,011,011,010,010,09,09,09,09,09,09,09,09,09,09,010,010,011,
011,012,012,013,013,013,012,011,010,09,02,0,0,0,0,0,0,0,0,0,01,07,010,011,012,012,012,012,012,011,011,011,
010,010,09,09,010,011,011,012,012,011,011,010,09,09,010,010,011,011,011,012,012,012,012,012,011,010,07,01,0,0,0,0,
0,0,0,0,06,09,010,011,011,012,012,012,011,011,010,010,09,09,010,012,014,016,016,017,017,016,016,014,012,010,09,09,
010,010,011,011,012,012,012,011,011,010,09,06,0,0,0,0,0,0,0,01,08,09,010,011,012,012,012,011,011,010,09,09,
09,09,012,015,017,018,017,017,017,017,018,017,015,012,09,09,09,09,010,011,011,012,012,012,011,010,09,08,01,0,0,0,
0,0,0,07,09,010,011,011,011,011,011,011,010,010,09,09,010,013,016,016,014,012,09,08,08,09,012,014,016,016,013,010,
09,09,010,010,011,011,011,011,011,011,010,09,07,0,0,0,0,0,01,07,09,010,011,011,011,011,011,011,010,09,09,09,
013,015,014,010,05,02,0,0,0,0,02,05,010,014,015,013,09,09,09,010,011,011,011,011,011,011,010,09,07,01,0,0,
0,0,06,08,09,010,011,011,011,011,011,010,09,09,09,012,014,012,05,0,0,0,0,0,0,0,0,0,0,05,012,014,
012,09,09,09,010,011,011,011,011,011,010,09,08,06,0,0,0,0,07,09,010,010,011,011,011,011,011,010,09,08,09,012,
09,03,0,0,0,0,0,0,0,0,0,0,0,0,03,09,012,09,08,09,010,011,011,011,011,011,010,010,09,07,0,0,
0,0,08,09,010,010,011,011,011,011,010,010,08,08,010,09,03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,03,
09,010,08,08,010,010,011,011,011,011,010,010,09,08,0,0,0,03,08,09,010,010,011,011,011,010,010,09,08,08,08,05,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,05,08,08,08,09,010,010,011,011,011,010,010,09,08,03,0,
0,05,08,09,09,010,010,011,011,010,010,09,08,08,06,01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
01,06,08,08,09,010,010,011,011,010,010,09,09,08,05,0,0,05,08,09,09,010,010,011,011,010,010,09,08,07,03,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,03,07,08,09,010,010,011,011,010,010,09,09,08,05,0,
0,05,08,09,09,010,010,011,010,010,010,09,08,06,02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,02,06,08,09,010,010,010,011,010,010,09,09,08,05,0,01,06,08,09,09,010,010,011,010,010,010,09,08,05,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,05,08,09,010,010,010,011,010,010,09,09,08,06,01,
01,06,08,09,09,010,010,011,011,011,010,09,08,05,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,05,08,09,010,011,011,011,010,010,09,09,08,06,01,02,06,08,09,09,010,010,011,011,010,010,09,08,06,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,06,08,09,010,010,011,011,010,010,09,09,08,06,02,
02,06,08,09,09,010,010,011,011,010,010,09,08,06,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,06,08,09,010,010,011,011,010,010,09,09,08,06,02,01,06,08,09,09,010,010,011,011,011,010,09,08,05,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,05,08,09,010,011,011,011,010,010,09,09,08,06,01,
01,06,08,09,09,010,010,011,010,010,010,09,08,05,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,05,08,09,010,010,010,011,010,010,09,09,08,06,01,0,05,08,09,09,010,010,011,010,010,010,09,08,06,02,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,02,06,08,09,010,010,010,011,010,010,09,09,08,05,0,
0,05,08,09,09,010,010,011,011,010,010,09,08,07,03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,03,07,08,09,010,010,011,011,010,010,09,09,08,05,0,0,05,08,09,09,010,010,011,011,010,010,09,08,08,06,01,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,01,06,08,08,09,010,010,011,011,010,010,09,09,08,05,0,
0,03,08,09,010,010,011,011,011,010,010,09,08,08,08,05,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
05,08,08,08,09,010,010,011,011,011,010,010,09,08,03,0,0,0,08,09,010,010,011,011,011,011,010,010,08,08,010,09,
03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,03,09,010,08,08,010,010,011,011,011,011,010,010,09,08,0,0,
0,0,07,09,010,010,011,011,011,011,011,010,09,08,09,012,09,03,0,0,0,0,0,0,0,0,0,0,0,0,03,09,
012,09,08,09,010,011,011,011,011,011,010,010,09,07,0,0,0,0,06,08,09,010,011,011,011,011,011,010,09,09,09,012,
014,012,05,0,0,0,0,0,0,0,0,0,0,05,012,014,012,09,09,09,010,011,011,011,011,011,010,09,08,06,0,0,
0,0,01,07,09,010,011,011,011,011,011,011,010,09,09,09,013,015,014,09,05,02,0,0,0,0,02,05,09,014,015,013,
09,09,09,010,011,011,011,011,011,011,010,09,07,01,0,0,0,0,0,07,09,010,011,011,011,011,011,011,010,010,09,09,
010,013,016,016,014,012,09,08,08,09,012,014,016,016,013,010,09,09,010,010,011,011,011,011,011,011,010,09,07,0,0,0,
0,0,0,01,08,09,010,011,012,012,012,011,011,010,09,09,09,09,012,015,017,018,017,017,017,017,018,017,015,012,09,09,
09,09,010,011,011,012,012,012,011,010,09,08,01,0,0,0,0,0,0,0,06,09,010,011,011,012,012,012,011,011,010,010,
09,09,010,012,014,016,016,017,017,016,016,014,012,010,09,09,010,010,011,011,012,012,012,011,011,010,09,06,0,0,0,0,
0,0,0,0,01,07,010,011,012,012,012,012,012,011,011,011,010,010,09,09,010,011,011,012,012,011,011,010,09,09,010,010,
011,011,011,012,012,012,012,012,011,010,07,01,0,0,0,0,0,0,0,0,0,02,09,010,011,012,013,013,013,012,012,011,
011,010,010,09,09,09,09,09,09,09,09,09,09,010,010,011,011,012,012,013,013,013,012,011,010,09,02,0,0,0,0,0,
0,0,0,0,0,0,05,08,010,011,012,013,014,013,013,013,012,011,011,010,010,010,010,09,09,010,010,010,010,011,011,012,
013,013,013,014,013,012,011,010,08,05,0,0,0,0,0,0,0,0,0,0,0,0,0,04,09,011,012,013,014,014,014,014,
013,013,012,012,012,011,011,011,011,011,011,012,012,012,013,013,014,014,014,014,013,012,011,09,04,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,04,08,011,012,014,015,015,016,015,015,014,014,013,013,013,013,013,013,013,013,014,014,015,015,
016,015,015,014,012,011,08,04,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,07,010,011,013,015,016,
016,016,016,016,016,016,016,015,015,016,016,016,016,016,016,016,016,015,013,011,010,07,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,04,09,011,013,014,015,016,017,017,017,017,017,017,017,017,017,017,017,017,016,015,
014,013,011,09,04,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,04,09,011,
013,014,015,016,016,016,016,016,016,016,016,016,016,015,014,013,011,09,04,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,01,06,08,011,012,013,013,013,013,013,013,013,013,012,011,08,06,
01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,02,05,07,08,08,08,08,07,05,02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
);
Type TVScreen = Array [1..64000] of byte;
PVScreen = ^TVScreen;
Type MySprite = record
x_pos : integer;
x_inc : integer;
y_pos : integer;
y_inc : integer;
end;
Function MyKeyPressed:boolean; Assembler;
Asm
mov ax,0100h
int 16h
mov ax,0
jz @loop1
mov ax,1
@loop1:
End;
Procedure SetUpVirtualScreen(var myscreen:pvscreen);
Begin
GetMem (myscreen,64000);
End;
Procedure FreeVirtualScreen(myscreen:pvscreen);
Begin
FreeMem (myscreen,64000);
End;
Procedure ShowVirtualScreen(myscreen : pvscreen);
var cnt:word;
Begin
for cnt:=0 to 64000-1 do
mem[$0a000:cnt]:=Mem [seg(myscreen^):ofs(myscreen^)+cnt];
End;
Procedure ClearVirtualScreen(myscreen : pvscreen; ColorNo : Byte);
var cnt:word;
Begin
for cnt:=0 to 64000-1 do
Mem [seg(myscreen^):ofs(myscreen^)+cnt]:= ColorNo;
End;
Procedure ClearVGAScreen(ColorNo : Byte);
var cnt:word;
Begin
for cnt:=0to 64000-1 do
Mem [$0a000:cnt]:= ColorNo;
End;
Procedure SetPaletteEntry(ColorNo : Byte; R,G,B : Byte);
Begin
Port[$3c8] := ColorNo;
Port[$3c9] := R;
Port[$3c9] := G;
Port[$3c9] := B;
End;
Procedure PutPixel(myscreen : pvscreen; X,Y : Integer; Col : Byte);
Begin
Mem [seg(myscreen^):ofs(myscreen^)+X+(Y*320)]:=Col;
End;
Procedure WaitRetrace;
var zustand:byte;
Begin
repeat until Port[$03da] and 8 = 0;
repeat until Port[$03da] and 8 = 8;
End;
Procedure PaintMySprite(myscreen : pvscreen; X,Y : Integer);
var cnt1,cnt2:integer;
origin:byte;
Begin
for cnt1:=0 to 47 do
begin
for cnt2:=1 to 48 do
begin
origin:=bilddaten[cnt1*48+cnt2];
if origin>0 then
putpixel(myscreen,x+cnt2-1,y,origin);
end;
y:=y+1;
end;
End;
Var VScreen : PVScreen;
Counter : Integer;
Var Sprites : array[1..5] of mysprite;
Begin
for counter:=1 to 5 do
begin
sprites[counter].x_pos:=counter*40;
sprites[counter].y_pos:=counter*20;
sprites[counter].x_inc:=counter shr 1;
sprites[counter].y_inc:=(6-counter) shr 1;
end;
asm
mov ax,0013h
int 10h
end;
setupvirtualscreen(vscreen);
for counter:=255 downto 0 do
setpaletteentry(counter,counter * 3,counter * 3,counter * 3);
repeat
clearvirtualscreen(vscreen,0);
for counter:=1 to 5 do
begin
with sprites[counter] do
begin
paintmysprite(vscreen,x_pos,y_pos);
paintmysprite(vscreen,x_pos,y_pos);
inc(x_pos,x_inc);
inc(y_pos,y_inc);
if (x_pos>=320-48) or (x_pos<=0) then begin x_inc:=-x_inc; inc(x_pos,x_inc); end;
if (y_pos>=200-48) or (y_pos<=0) then begin y_inc:=-y_inc; inc(y_pos,y_inc); end;
end;
end;
waitretrace;
showvirtualscreen(vscreen);
until mykeypressed;
freevirtualscreen(vscreen);
asm
mov ax,002h
int 10h
end;
End.
Das Assembler Gerüst für die Umsetzung:
; --- Programm Flying_Donuts
; --- Codesegment
CSEG SEGMENT 'CODE'
ASSUME CS:CSEG, DS:DS_1
; --- Show virtual Screen
VS_SHOW PROC
VS_SHOW ENDP
; --- Clear virtual Screen
VS_CLEAR PROC
VS_CLEAR ENDP
; --- Set Palette Entry
SET_PALETTE PROC
farbe EQU [BP+10]
rot EQU [BP+08]
gruen EQU [BP+06]
blau EQU [BP+04]
SET_PALETTE ENDP
; --- VGA Wait Retrace
WAIT_RETRACE PROC
WAIT_RETRACE ENDP
; --- Put Sprite on Virtual Screen
PUT_SPRITE PROC
x EQU [BP+06]
y EQU [BP+04]
PUT_SPRITE ENDP
; --- Hauptprogramm
HAUPT PROC
HAUPT ENDP
CSEG ENDS
; --- Stack einrichten
SSEG SEGMENT STACK
DB 16384 DUP (?)
SSEG ENDS
; --- erstes Datensegment
DS_1 SEGMENT 'DATA'
SPRITE1_XPOS DW 0
SPRITE1_XINC DW 0
SPRITE1_YPOS DW 0
SPRITE1_YINC DW 0
SPRITE2_XPOS DW 0
SPRITE2_XINC DW 0
SPRITE2_YPOS DW 0
SPRITE2_YINC DW 0
SPRITE3_XPOS DW 0
SPRITE3_XINC DW 0
SPRITE3_YPOS DW 0
SPRITE3_YINC DW 0
SPRITE4_XPOS DW 0
SPRITE4_XINC DW 0
SPRITE4_YPOS DW 0
SPRITE4_YINC DW 0
SPRITE5_XPOS DW 0
SPRITE5_XINC DW 0
SPRITE5_YPOS DW 0
SPRITE5_YINC DW 0
SPRITEDATA DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,02,05,07,08,08,08,08,07,05,02,0,0,0
DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,01,06,08,011,012
DB 013,013,013,013,013,013,013,013,012,011,08,06,01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
DB 0,0,0,0,0,0,0,0,0,0,0,0,0,04,09,011,013,014,015,016,016,016,016,016,016,016,016,016,016,015,014,013
DB 011,09,04,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,04,09,011,013,014
DB 015,016,017,017,017,017,017,017,017,017,017,017,017,017,016,015,014,013,011,09,04,0,0,0,0,0,0,0,0,0,0,0
DB 0,0,0,0,0,0,0,0,0,0,07,010,011,013,015,016,016,016,016,016,016,016,016,015,015,016,016,016,016,016,016,016
DB 016,015,013,011,010,07,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,04,08,011,012,014,015,015,016
DB 015,015,014,014,013,013,013,013,013,013,013,013,014,014,015,015,016,015,015,014,012,011,08,04,0,0,0,0,0,0,0,0
DB 0,0,0,0,0,0,0,04,09,011,012,013,014,014,014,014,013,013,012,012,012,011,011,011,011,011,011,012,012,012,013,013
DB 014,014,014,014,013,012,011,09,04,0,0,0,0,0,0,0,0,0,0,0,0,0,05,08,010,011,012,013,014,013,013,013
DB 012,011,011,010,010,010,010,09,09,010,010,010,010,011,011,012,013,013,013,014,013,012,011,010,08,05,0,0,0,0,0,0
DB 0,0,0,0,0,02,09,010,011,012,013,013,013,012,012,011,011,010,010,09,09,09,09,09,09,09,09,09,09,010,010,011
DB 011,012,012,013,013,013,012,011,010,09,02,0,0,0,0,0,0,0,0,0,01,07,010,011,012,012,012,012,012,011,011,011
DB 010,010,09,09,010,011,011,012,012,011,011,010,09,09,010,010,011,011,011,012,012,012,012,012,011,010,07,01,0,0,0,0
DB 0,0,0,0,06,09,010,011,011,012,012,012,011,011,010,010,09,09,010,012,014,016,016,017,017,016,016,014,012,010,09,09
DB 010,010,011,011,012,012,012,011,011,010,09,06,0,0,0,0,0,0,0,01,08,09,010,011,012,012,012,011,011,010,09,09
DB 09,09,012,015,017,018,017,017,017,017,018,017,015,012,09,09,09,09,010,011,011,012,012,012,011,010,09,08,01,0,0,0
DB 0,0,0,07,09,010,011,011,011,011,011,011,010,010,09,09,010,013,016,016,014,012,09,08,08,09,012,014,016,016,013,010
DB 09,09,010,010,011,011,011,011,011,011,010,09,07,0,0,0,0,0,01,07,09,010,011,011,011,011,011,011,010,09,09,09
DB 013,015,014,010,05,02,0,0,0,0,02,05,010,014,015,013,09,09,09,010,011,011,011,011,011,011,010,09,07,01,0,0
DB 0,0,06,08,09,010,011,011,011,011,011,010,09,09,09,012,014,012,05,0,0,0,0,0,0,0,0,0,0,05,012,014
DB 012,09,09,09,010,011,011,011,011,011,010,09,08,06,0,0,0,0,07,09,010,010,011,011,011,011,011,010,09,08,09,012
DB 09,03,0,0,0,0,0,0,0,0,0,0,0,0,03,09,012,09,08,09,010,011,011,011,011,011,010,010,09,07,0,0
DB 0,0,08,09,010,010,011,011,011,011,010,010,08,08,010,09,03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,03
DB 09,010,08,08,010,010,011,011,011,011,010,010,09,08,0,0,0,03,08,09,010,010,011,011,011,010,010,09,08,08,08,05
DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,05,08,08,08,09,010,010,011,011,011,010,010,09,08,03,0
DB 0,05,08,09,09,010,010,011,011,010,010,09,08,08,06,01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
DB 01,06,08,08,09,010,010,011,011,010,010,09,09,08,05,0,0,05,08,09,09,010,010,011,011,010,010,09,08,07,03,0
DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,03,07,08,09,010,010,011,011,010,010,09,09,08,05,0
DB 0,05,08,09,09,010,010,011,010,010,010,09,08,06,02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
DB 0,02,06,08,09,010,010,010,011,010,010,09,09,08,05,0,01,06,08,09,09,010,010,011,010,010,010,09,08,05,0,0
DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,05,08,09,010,010,010,011,010,010,09,09,08,06,01
DB 01,06,08,09,09,010,010,011,011,011,010,09,08,05,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
DB 0,0,05,08,09,010,011,011,011,010,010,09,09,08,06,01,02,06,08,09,09,010,010,011,011,010,010,09,08,06,0,0
DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,06,08,09,010,010,011,011,010,010,09,09,08,06,02
DB 02,06,08,09,09,010,010,011,011,010,010,09,08,06,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
DB 0,0,06,08,09,010,010,011,011,010,010,09,09,08,06,02,01,06,08,09,09,010,010,011,011,011,010,09,08,05,0,0
DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,05,08,09,010,011,011,011,010,010,09,09,08,06,01
DB 01,06,08,09,09,010,010,011,010,010,010,09,08,05,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
DB 0,0,05,08,09,010,010,010,011,010,010,09,09,08,06,01,0,05,08,09,09,010,010,011,010,010,010,09,08,06,02,0
DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,02,06,08,09,010,010,010,011,010,010,09,09,08,05,0
DB 0,05,08,09,09,010,010,011,011,010,010,09,08,07,03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
DB 0,03,07,08,09,010,010,011,011,010,010,09,09,08,05,0,0,05,08,09,09,010,010,011,011,010,010,09,08,08,06,01
DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,01,06,08,08,09,010,010,011,011,010,010,09,09,08,05,0
DB 0,03,08,09,010,010,011,011,011,010,010,09,08,08,08,05,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
DB 05,08,08,08,09,010,010,011,011,011,010,010,09,08,03,0,0,0,08,09,010,010,011,011,011,011,010,010,08,08,010,09
DB 03,0,0,0,0,0,0,0,0,0,0,0,0,0,0,03,09,010,08,08,010,010,011,011,011,011,010,010,09,08,0,0
DB 0,0,07,09,010,010,011,011,011,011,011,010,09,08,09,012,09,03,0,0,0,0,0,0,0,0,0,0,0,0,03,09
DB 012,09,08,09,010,011,011,011,011,011,010,010,09,07,0,0,0,0,06,08,09,010,011,011,011,011,011,010,09,09,09,012
DB 014,012,05,0,0,0,0,0,0,0,0,0,0,05,012,014,012,09,09,09,010,011,011,011,011,011,010,09,08,06,0,0
DB 0,0,01,07,09,010,011,011,011,011,011,011,010,09,09,09,013,015,014,09,05,02,0,0,0,0,02,05,09,014,015,013
DB 09,09,09,010,011,011,011,011,011,011,010,09,07,01,0,0,0,0,0,07,09,010,011,011,011,011,011,011,010,010,09,09
DB 010,013,016,016,014,012,09,08,08,09,012,014,016,016,013,010,09,09,010,010,011,011,011,011,011,011,010,09,07,0,0,0
DB 0,0,0,01,08,09,010,011,012,012,012,011,011,010,09,09,09,09,012,015,017,018,017,017,017,017,018,017,015,012,09,09
DB 09,09,010,011,011,012,012,012,011,010,09,08,01,0,0,0,0,0,0,0,06,09,010,011,011,012,012,012,011,011,010,010
DB 09,09,010,012,014,016,016,017,017,016,016,014,012,010,09,09,010,010,011,011,012,012,012,011,011,010,09,06,0,0,0,0
DB 0,0,0,0,01,07,010,011,012,012,012,012,012,011,011,011,010,010,09,09,010,011,011,012,012,011,011,010,09,09,010,010
DB 011,011,011,012,012,012,012,012,011,010,07,01,0,0,0,0,0,0,0,0,0,02,09,010,011,012,013,013,013,012,012,011
DB 011,010,010,09,09,09,09,09,09,09,09,09,09,010,010,011,011,012,012,013,013,013,012,011,010,09,02,0,0,0,0,0
DB 0,0,0,0,0,0,05,08,010,011,012,013,014,013,013,013,012,011,011,010,010,010,010,09,09,010,010,010,010,011,011,012
DB 013,013,013,014,013,012,011,010,08,05,0,0,0,0,0,0,0,0,0,0,0,0,0,04,09,011,012,013,014,014,014,014
DB 013,013,012,012,012,011,011,011,011,011,011,012,012,012,013,013,014,014,014,014,013,012,011,09,04,0,0,0,0,0,0,0
DB 0,0,0,0,0,0,0,0,04,08,011,012,014,015,015,016,015,015,014,014,013,013,013,013,013,013,013,013,014,014,015,015
DB 016,015,015,014,012,011,08,04,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,07,010,011,013,015,016
DB 016,016,016,016,016,016,016,015,015,016,016,016,016,016,016,016,016,015,013,011,010,07,0,0,0,0,0,0,0,0,0,0
DB 0,0,0,0,0,0,0,0,0,0,0,04,09,011,013,014,015,016,017,017,017,017,017,017,017,017,017,017,017,017,016,015
DB 014,013,011,09,04,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,04,09,011
DB 013,014,015,016,016,016,016,016,016,016,016,016,016,015,014,013,011,09,04,0,0,0,0,0,0,0,0,0,0,0,0,0
DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,01,06,08,011,012,013,013,013,013,013,013,013,013,012,011,08,06
DB 01,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
DB 0,0,0,02,05,07,08,08,08,08,07,05,02,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
DS_1 ENDS
; --- zweites Datensegment
DS_2 SEGMENT
VSCREEN DB 64000 DUP (0)
DS_2 ENDS
END HAUPT ; <- That's Ego me
|