nosmart version t410 model large dataseg udataseg codeseg .stack 1000 startupcode PUBLIC _starroutine PUBLIC _starsnorth PUBLIC _sprite PUBLIC _testing PUBLIC _pushXY PUBLIC _popXY PUBLIC _maybeworking PUBLIC _nw PUBLIC _nwreturn PUBLIC _ne PUBLIC _nereturn PUBLIC _se PUBLIC _sereturn PUBLIC _sw PUBLIC _swreturn PUBLIC _triangle PUBLIC _verifyactualline PUBLIC _switch PUBLIC _recallprevioustocurrent PUBLIC _recallcurrenttoprevious PUBLIC _previousbuffer PUBLIC _currentbuffer PUBLIC _blockoutprevious PUBLIC _phase PUBLIC _rotate180r PUBLIC _rotate90r PUBLIC _defineA5000 PUBLIC _transfer5000to7000 PUBLIC _printGOD PUBLIC _printmomdad PUBLIC _printINRI PUBLIC _sisters PUBLIC _GOD PUBLIC _main PUBLIC _clrmain PUBLIC _plotxycd PUBLIC _gfx PUBLIC _txt PUBLIC _pause PUBLIC _transferA PUBLIC _transferB PUBLIC _transferC PUBLIC _transferD PUBLIC _transferato4 PUBLIC _xycdGOD PUBLIC _block PUBLIC _calcbx PUBLIC _prexycd PUBLIC _delay PUBLIC _tiles PUBLIC _checkINRIzship PUBLIC _checkBALLzship PUBLIC _bounceball PUBLIC _plotmsg PUBLIC _line PUBLIC _colorclear PUBLIC _plotxytox2y2 PUBLIC _tracetest PUBLIC _plottype PUBLIC _calcr PUBLIC _findx PUBLIC _findy PUBLIC _checkline PUBLIC _plottest PUBLIC _screenright PUBLIC _screenrightb PUBLIC _screendown PUBLIC _screenrightfrom4 PUBLIC _screenhalfing PUBLIC _rotate PUBLIC _clringbuffer PUBLIC _spiralout PUBLIC _clearendingscreen PUBLIC _calcdim PUBLIC _TienKNguyen _main PROC push ax push bx push cx push dx push ds push si push es push di call _gfx call _starsnorth mov al, 14 mov colorofscreen, al call _defineA5000 call _clrmain call _transferA call _transferC call _line call _transferB call _testing mov ax, 5 mov raybutton, ax mov ax, 3 mov msgswitch, ax mov ax, 0 mov mainscreen, ax call _plotmsg mov ax, 0 mov raybutton, ax mov ax, 1 mov msgswitch, ax mov ax, 0 mov mainscreen, ax call _plotmsg jmp skippedhooplab mov ax, 2 mov raybutton, ax mov ax, 0 mov msgswitch, ax mov ax, 1 mov mainscreen, ax call _plotmsg mov ax, 0 mov raybutton, ax skippedhooplab: mov ax, 0 mov msgswitch, ax mov ax, 0 mov mainscreen, ax call _plotmsg call _printGOD call _printINRI mov bx, 1 mov ax, 12 mov cx, 300 mov dx, 100 call _block call _transferA ;call _transferC mov ax, 2 mov raybutton, ax ;call _plottest mov ax, 0 mov raybutton, ax mov ax, 0 mov x1, ax mov ax, 0 mov y1, ax mov ax, 155 mov x2, ax mov ax, 100 mov y2, ax mov ax, 100 mov xlength, ax mov ax, 50 mov ylength, ax call _spiralout call _pause call _phase mov ax, 1 mov spintype, ax call _rotate mov ax, 0 mov spintype, ax call _rotate a: ;I am the creator of this program with the blessing of GOD and Jesus Christ from 0 A.D. ;My name is Tien Khoa Nguyen ;The Eternal End. call _checkINRIzship mov bx, shipbx mov cx, xship mov shipcx, cx mov dx, yship mov shipdx, dx mov ax, cship mov shipax, ax call _prexycd call _checkBALLzship call _bounceball mov cx, xball mov dx, yball mov ax, cball mov bx, bball call _prexycd phase2: mov cx, xship mov dx, yship mov ax, cship mov bx, shipbx call _transfer5000to7000 mov cx, xball mov dx, yball mov ax, cball mov bx, bball call _xycdGOD phase3: mov cx, xship mov dx, yship mov ax, cship mov bx, shipbx call _GOD mov cx, xball mov dx, yball mov ax, cball mov bx, bball call _GOD call _movingship polling: mov ah, 1 int 16h jnz keyed jmp a keyed: mov ah, 0 int 16h cmpa: cmp ah, 30 jne cmpd cmp al, 97 jne cmpd mov ax, leftvalue mov xdship, ax mov ax, stopvalue mov ydship, ax jmp donecmp cmpd: cmp ah, 32 jne cmpw cmp al, 100 jne cmpw mov ax, rightvalue mov xdship, ax mov ax, stopvalue mov ydship, ax jmp donecmp cmpw: cmp ah, 17 jne cmpds cmp al, 119 jne cmpds mov ax, stopvalue mov xdship, ax mov ax, upvalue mov ydship, ax jmp donecmp cmpds: cmp ah, 31 jne cmpcolor cmp al, 115 jne cmpcolor mov ax, stopvalue mov xdship, ax mov ax, downvalue mov ydship, ax jmp donecmp cmpcolor: cmp ah, 46 jne cmpspace cmp al, 99 jne cmpspace mov ax, 0 mov raybutton, ax call _tracetest mov ah, 0 int 16h mov ax, 1 mov raybutton, ax call _tracetest mov ax, 0 mov raybutton, ax jmp donecmp cmpspace: cmp ah, 57 jne cmpq cmp al, 32 jne cmpq mov ax, bship cmp ax, normal jne normalstatus mov ax, shield jmp updatestatus normalstatus: mov ax, normal updatestatus: mov bship, ax jmp donecmp cmpq: cmp ah, 16 jne donecmp cmp al, 113 jne donecmp jmp exitroutine donecmp: jmp a exitroutine: call _verifyactualline ;call _transferato4 ;call _screendown ;call _screenrightfrom4 ;call _pause puzzle: call _clearendingscreen mov ax, 2 mov msgswitch, ax call _plotmsg call _TienKNguyen call _triangle call _txt pop di pop es pop si pop ds pop dx pop cx pop bx pop ax mov ah, 4ch int 21h _main ENDP _rotate PROC push ax push bx push cx push dx push ds push si push es push di mov ax, spintype cmp ax, 0 je spinnormal0 cmp ax, 1 je spinhalf0 spinnormal0: jmp spinnormal spinhalf0: jmp spinhalf spinnormal: mov ax, 160 mov sourcecx, ax mov ax, 100 mov sourcedx, ax mov ax, 320 mov destinationcx, ax mov ax, 200 mov destinationdx, ax mov ax, 160 mov sourcecx2, ax mov ax, 100 mov sourcedx2, ax mov ax, 320 mov destinationcx2, ax mov ax, 199 mov destinationdx2, ax mov ax, 1 mov rotatev, ax mov ax, 1 mov rotatev2, ax jmp rotatingarbitrary spinhalf: mov ax, 160 mov sourcecx, ax mov ax, 100 mov sourcedx, ax mov ax, 320 mov destinationcx, ax mov ax, 200 mov destinationdx, ax mov ax, 160 mov sourcecx2, ax mov ax, 100 mov sourcedx2, ax mov ax, 0 mov destinationcx2, ax mov ax, 0 mov destinationdx2, ax mov ax, 1 mov rotatev, ax mov ax, 3 mov rotatev2, ax jmp rotatingarbitrary rotatingarbitrary: call _clringbuffer cmp spintype, 0 jne rotatingarbb mov ax, 3 mov raybutton, ax jmp skippedrotatingarbb rotatingarbb: mov ax, 5 mov raybutton, ax mov ax, 14 mov plaincolor, ax skippedrotatingarbb: mov ax, sourcecx mov x1, ax mov ax, sourcedx mov y1, ax mov ax, destinationcx mov x2, ax mov ax, destinationdx mov y2, ax call _plotxytox2y2 cmp spintype, 0 je rotatingarbc mov ax, 5 mov raybutton, ax mov ax, 10 mov plaincolor, ax jmp skippedrotatingarbc rotatingarbc: mov ax, 4 mov raybutton, ax skippedrotatingarbc: mov ax, sourcecx2 mov x1, ax mov ax, sourcedx2 mov y1, ax mov ax, destinationcx2 mov x2, ax mov ax, destinationdx2 mov y2, ax call _plotxytox2y2 mov ax, rotatev cmp ax, 1 je rotateup0 cmp ax, 2 je rotateleft0 cmp ax, 3 je rotatedown0 cmp ax, 4 je rotateright0 jmp exitrotate rotateup0: jmp rotateup rotateleft0: jmp rotateleft rotatedown0: jmp rotatedown rotateright0: jmp rotateright rotateup: mov ax, destinationdx dec ax mov destinationdx, ax cmp ax, 0 jz rotateupb jmp rotateupc rotateupb: mov ax, 2 mov rotatev, ax rotateupc: jmp rotatepart2 rotateleft: mov ax, destinationcx dec ax mov destinationcx, ax cmp ax, 0 jle rotateleftb jmp rotateleftc rotateleftb: mov ax, 3 mov rotatev, ax rotateleftc: jmp rotatepart2 rotatedown: mov ax, destinationdx inc ax mov destinationdx, ax cmp ax, 200 jge rotatedownb jmp rotatedownc rotatedownb: mov ax, 4 mov rotatev, ax rotatedownc: jmp rotatepart2 rotateright: mov ax, destinationcx inc ax mov destinationcx, ax cmp ax, 320 jge rotaterightb jmp rotaterightc rotaterightb: mov ax, 0 mov rotatev, ax rotaterightc: jmp rotatepart2 rotatepart2: mov ax, rotatev2 cmp ax, 1 je rotate2up0 cmp ax, 2 je rotate2left0 cmp ax, 3 je rotate2down0 cmp ax, 4 je rotate2right0 mov ax, 1 mov rotatev2, ax jmp rotate2up0 rotate2up0: jmp rotate2up rotate2left0: jmp rotate2left rotate2down0: jmp rotate2down rotate2right0: jmp rotate2right rotate2up: mov ax, destinationdx2 dec ax mov destinationdx2, ax cmp ax, 0 jz rotate2upb jmp rotate2upc rotate2upb: mov ax, 2 mov rotatev2, ax rotate2upc: jmp rotate2part2 rotate2part2: jmp rotatingarbitrary rotate2left: mov ax, destinationcx2 dec ax mov destinationcx2, ax cmp ax, 0 jle rotate2leftb jmp rotate2leftc rotate2leftb: mov ax, 3 mov rotatev2, ax rotate2leftc: jmp rotate2part2 rotate2down: mov ax, destinationdx2 inc ax mov destinationdx2, ax cmp ax, 200 jge rotate2downb jmp rotate2downc rotate2downb: mov ax, 4 mov rotatev2, ax rotate2downc: jmp rotate2part2 rotate2right: mov ax, destinationcx2 inc ax mov destinationcx2, ax cmp ax, 320 jge rotate2rightb jmp rotate2rightc rotate2rightb: mov ax, 1 mov rotatev2, ax rotate2rightc: jmp rotate2part2 exitrotate: mov ax, 0 mov raybutton, ax pop di pop es pop si pop ds pop dx pop cx pop bx pop ax ret spintype DW 0 rotatev DW 0 rotatev2 DW 0 sourcecx DW 160 sourcedx DW 100 destinationcx DW 320 destinationdx DW 200 sourcecx2 DW 160 sourcedx2 DW 100 destinationcx2 DW 0 destinationdx2 DW 0 _rotate ENDP _screenhalfing PROC push ax push bx push cx push dx push ds push si push es push di mov al, 12 mov ah, 0ch mov dx, 200 screensplitting: mov cx, 1 int 10h mov cx, 320 int 10h dec dx jnz screensplitting mov ax, SEG (0a000h:0) mov ds, ax mov ax, OFFSET (0a000h:0) mov si, ax mov ax, SEG (0a000h:0) mov es, ax mov ax, OFFSET (0a000h:0) mov di, ax mov ax, 318 mov scx, ax mov ax, 0 mov sdx, ax mov ax, 319 mov dcx, ax mov ax, 0 mov ddx, ax halfing00: mov bx, 320 halfing0: push bx halfing: mov cx, scx mov dx, sdx mov ax, dx mov dx, 0 mov bx, 320 clc mul bx clc adc ax, cx mov bx, ax mov al, byte ptr ds:[si+bx] push ax mov cx, dcx mov dx, ddx mov ax, dx mov dx, 0 mov bx, 320 clc mul bx clc adc ax, cx mov bx, ax pop ax mov byte ptr es:[si+bx], al mov cx, scx dec cx mov scx, cx mov cx, dcx dec cx mov dcx, cx cmp cx, 0 jnz halfing mov cx, 318 mov scx, cx inc cx mov dcx, cx pop bx dec bx jnz halfing0 mov dx, sdx inc dx inc dx mov sdx, dx mov ddx, dx cmp dx, 200 jge halfing00nj halfing00j: jmp halfing00 halfing00nj: mov ax, 1 mov scx, ax mov ax, 1 mov sdx, ax mov ax, 0 mov dcx, ax mov ax, 1 mov ddx, ax halfingb00: mov bx, 320 halfingb0: push bx halfingb: mov cx, scx mov dx, sdx mov ax, dx mov dx, 0 mov bx, 320 clc mul bx clc adc ax, cx mov bx, ax mov al, byte ptr ds:[si+bx] push ax mov cx, dcx mov dx, ddx mov ax, dx mov dx, 0 mov bx, 320 clc mul bx clc adc ax, cx mov bx, ax pop ax mov byte ptr es:[si+bx], al mov cx, scx inc cx mov scx, cx mov cx, dcx inc cx mov dcx, cx cmp cx, 320 jl halfingb mov cx, 1 mov scx, cx dec cx mov dcx, cx pop bx dec bx jnz halfingb0 mov dx, sdx inc dx inc dx mov sdx, dx mov ddx, dx cmp dx, 200 jl halfingb00j jmp halfingb00nj halfingb00j: jmp halfingb00 halfingb00nj: pop di pop es pop si pop ds pop dx pop cx pop bx pop ax ret _screenhalfing ENDP _plottest PROC push ax push bx push cx push dx push ds push si push es push di mov ax, 0 mov x1, ax mov ax, 0 mov y1, ax mov ax, 155 mov x2, ax mov ax, 100 mov y2, ax call _plotxytox2y2 mov ax, 155 mov x1, ax mov ax, 100 mov y1, ax mov ax, 300 mov x2, ax mov ax, 0 mov y2, ax call _plotxytox2y2 pop di pop es pop si pop ds pop dx pop cx pop bx pop ax ret _plottest ENDP _checkline PROC push ax push bx push cx push dx push ds push si push es push di mov bx, current123 call _prexycd call _xycdGOD call _GOD pop di pop es pop si pop ds pop dx pop cx pop bx pop ax ret xtemp1 DW 0 ytemp1 DW 0 xtemp2 DW 0 ytemp2 DW 0 xtemp DW 0 ytemp DW 0 _checkline ENDP _findx PROC push ax push bx push cx push dx push ds push si push es push di mov ax, y3 mov bx, x2 mov dx, 0 clc mul bx mov xmul, ax mov ax, xmul mov bx, y2 mov dx, 0 clc div bx mov xdiv, ax mov x3, ax pop di pop es pop si pop ds pop dx pop cx pop bx pop ax ret xdif DW 0 ydif DW 0 xmul DW 0 ymul DW 0 xdiv DW 0 ydiv DW 0 x3 DW 0 y3 DW 0 tempxyr1 DW 0 tempxyr2 DW 0 _findx ENDP _findy PROC push ax push bx push cx push dx push ds push si push es push di mov ax, x3 mov bx, y2 mov dx, 0 clc mul bx mov xmul, ax mov ax, xmul mov bx, x2 mov dx, 0 clc div bx mov xdiv, ax mov y3, ax pop di pop es pop si pop ds pop dx pop cx pop bx pop ax ret _findy ENDP _plottype PROC push ax push bx push cx push dx push ds push si push es push di mov vcolor, ax mov bx, raybutton cmp bx, 0 jne raynotnormal mov ax, SEG (05000h:0) mov es, ax mov ax, OFFSET (05000h:0) mov di, ax jmp raynormal raynotnormal: cmp bx, 2 je checkline0 cmp bx, 1 je revelation0 cmp bx, 3 je bufferring0 cmp bx, 4 je debufferring0 cmp bx, 5 je plain0 plain0: jmp plain checkline0: call _checkline jmp exitraybutton revelation0: jmp revelation bufferring0: jmp bufferring debufferring0: jmp debufferring plain: mov ax, plaincolor jmp bypassandprint revelation: mov ax, SEG (08000h:0) mov es, ax mov ax, OFFSET (08000h:0) mov di, ax jmp raynormal bufferring: mov ax, resultantlocationset cmp ax, 0 jne bufferringpart2 mov ax, 1 mov resultantlocationset, ax mov ax, 0 mov resultantlocation, ax bufferringpart2: mov ax, resultantlocation inc ax mov resultantlocation, ax mov ax, SEG (08000h:0000) mov myds, ax mov ax, OFFSET (08000h:0000) mov mysi, ax mov ax, SEG (04000h:0000) mov myes, ax mov ax, OFFSET (04000h:0000) mov mydi, ax mov es, myds mov di, mysi mov entryx, cx mov entryy, dx call _calcbx mov bx, resultantxy mov al, byte ptr es:[di+bx] mov es, myes mov di, mydi mov bx, resultantlocation mov byte ptr es:[di+bx], al jmp exitraybutton debufferring: mov ax, resultantlocationset cmp ax, 0 jne debufferringpart2 mov ax, 1 mov resultantlocationset, ax mov ax, 0 mov resultantlocation, ax debufferringpart2: mov ax, resultantlocation inc ax mov resultantlocation, ax mov ax, SEG (04000h:0000) mov myds, ax mov ax, OFFSET (04000h:0000) mov mysi, ax mov ax, SEG (0a000h:0000) mov myes, ax mov ax, OFFSET (0a000h:0000) mov mydi, ax mov es, myds mov di, mysi mov bx, resultantlocation mov al, byte ptr es:[di+bx] mov es, myes mov di, mydi mov entryx, cx mov entryy, dx call _calcbx mov bx, resultantxy mov byte ptr es:[di+bx], al jmp exitraybutton raynormal: mov entryx, cx mov entryy, dx call _calcbx mov bx, resultantxy mov al, byte ptr es:[di+bx] bypassandprint: cmp cx, 319 jg exitraybutton cmp dx, 200 jg exitraybutton mov ah, 0ch int 10h exitraybutton: pop di pop es pop si pop ds pop dx pop cx pop bx pop ax ret plaincolor DW 14 raybutton DW 0 vcolor DW 0 resultantlocation DW 0 resultantlocationset DW 0 _plottype ENDP _tracetest PROC push ax push bx push cx push dx push ds push si push es push di mov ax, 15 mov dotcolor, ax mov ax, 155 mov x1, ax mov ax, 100 mov y1, ax mov ax, xship clc adc ax, 32 mov JCx2, ax mov ax, yship clc adc ax, 32 mov JCy2, ax mov ax, xship mov x2, ax makeray0: mov ax, yship mov y2, ax makeray: mov ax, y2 inc ax mov y2, ax call _plotxytox2y2 mov bx, JCy2 cmp ax, bx jl makeray mov ax, x2 inc ax mov x2, ax mov bx, JCx2 cmp ax, bx jl makeray0 pop di pop es pop si pop ds pop dx pop cx pop bx pop ax ret JCy2 DW 0 JCx2 DW 0 _tracetest ENDP _plotxytox2y2 PROC push ax push bx push cx push dx push ds push si push es push di mov ax, 0 mov resultantlocationset, ax mov ax, x1 mov bx, x2 cmp ax, bx jl xlx1 jg xgx1 je xex1 jmp exitplotxytox2y2 xlx1: mov cx, 0 mov x1plus, cx clc sbb bx, ax mov x1x2, bx jmp yexam xgx1: mov cx, 1 mov x1plus, cx clc sbb ax, bx mov x1x2, ax jmp yexam xex1: mov cx, 2 mov x1plus, cx mov ax, 0 mov x1x2, ax jmp yexam yexam: mov ax, y1 mov bx, y2 cmp ax, bx jl yly1 jg ygy1 je yey1 jmp exitplotxytox2y2 yly1: mov cx, 0 mov y1plus, cx clc sbb bx, ax mov y1y2, bx jmp yexamend ygy1: mov cx, 1 mov y1plus, cx clc sbb ax, bx mov y1y2, ax jmp yexamend yey1: mov cx, 2 mov y1plus, cx mov ax, 0 mov y1y2, ax jmp yexamend yexamend: mov ax, x1x2 cmp ax, 0 je calculus0 mov bx, y1y2 cmp bx, 0 je calculus0 cmp ax, bx jl x1x2ly1y2 jg x1x2gy1y2 je x1x2ey1y2 jmp exitplotxytox2y2 calculus0: jmp calculus x1x2ly1y2: mov cx, 0 mov xgy, cx mov ax, y1y2 mov dx, 0 mov bx, x1x2 mov xym, bx clc div bx mov travelperone, ax mov xyr, dx mov dx, 0 mov xyw, dx jmp calculus x1x2gy1y2: mov cx, 1 mov xgy, cx mov ax, x1x2 mov dx, 0 mov bx, y1y2 mov xym, bx clc div bx mov travelperone, ax mov xyr, dx mov dx, 0 mov xyw, dx jmp calculus x1x2ey1y2: mov cx, 2 mov xgy, cx mov ax, 1 mov travelperone, ax mov ax, 0 mov xyr, ax mov ax, 0 mov xym, ax mov ax, 0 mov xyw, ax jmp calculus calculus: mov ax, x1plus cmp ax, 1 je leftsomewhere0 cmp ax, 0 je rightsomewhere0 cmp ax, 2 je upordown0 jmp exitplotxytox2y2 leftsomewhere0: jmp leftsomewhere rightsomewhere0: jmp rightsomewhere upordown0: jmp upordown leftsomewhere: mov ax, y1plus cmp ax, 0 je leftdown0 cmp ax, 1 je leftup0 cmp ax, 2 je justleft0 jmp exitplotxytox2y2 leftup0: jmp leftup leftdown0: jmp leftdown justleft0: jmp justleft rightsomewhere: mov ax, y1plus cmp ax, 0 je rightdown0 cmp ax, 1 je rightup0 cmp ax, 2 je justright0 jmp exitplotxytox2y2 rightup0: jmp rightup rightdown0: jmp rightdown justright0: jmp justright upordown: mov ax, y1plus cmp ax, 1 je justup0 cmp ax, 0 je justdown0 cmp ax, 2 je justdot0 jmp exitplotxytox2y2 justup0: jmp justup justdown0: jmp justdown justdot0: jmp justdot justdot: mov cx, x1 mov dx, y1 mov ax, dotcolor call _plottype jmp exitplotxytox2y2 justup: mov cx, x1 mov bx, 0 mov dx, y1 mov ax, dotcolor justupdot: call _plottype inc bx dec dx cmp bx, y1y2 jl justupdot call _plottype;***added jmp exitplotxytox2y2 rightup: mov ax, xgy cmp ax, 0 je xlessrightup0 cmp ax, 1 je xgreaterrightup0 cmp ax, 2 je equalrightup0 xlessrightup0: jmp xlessrightup xgreaterrightup0: jmp xgreaterrightup equalrightup0: jmp equalrightup xlessrightup: mov cx, x1 mov dx, y1 mov ax, dotcolor xlessrightup2: call _plottype mov bx, travelperone inc cx push bx push dx xlessrightup3: dec dx call _plottype dec bx jnz xlessrightup3 pop dx pop bx clc sbb dx, bx call _calcr clc sbb dx, bx mov bx, x2 cmp cx, bx jl xlessrightup2 call _plottype;***added jmp exitplotxytox2y2 xgreaterrightup: mov cx, x1 mov dx, y1 mov ax, dotcolor xgreaterrightup2: call _plottype mov bx, travelperone dec dx push bx push cx xgreaterrightup3: inc cx call _plottype dec bx jnz xgreaterrightup3 pop cx pop bx clc adc cx, bx call _calcr clc adc cx, bx mov bx, y2 cmp dx, bx jg xgreaterrightup2 jmp exitplotxytox2y2 equalrightup: mov cx, x1 mov dx, y1 mov ax, dotcolor equalrightup2: call _plottype inc cx dec dx mov bx, x2 cmp cx, bx jl equalrightup2 ;call _plottype;***added? jmp exitplotxytox2y2 rightdown: mov ax, xgy cmp ax, 0 je xlessrightdown0 cmp ax, 1 je xgreaterrightdown0 cmp ax, 2 je equalrightdown0 xlessrightdown0: jmp xlessrightdown xgreaterrightdown0: jmp xgreaterrightdown equalrightdown0: jmp equalrightdown xlessrightdown: mov cx, x1 mov dx, y1 mov ax, dotcolor xlessrightdown2: call _plottype mov bx, travelperone inc cx push bx push dx xlessrightdown3: inc dx call _plottype dec bx jnz xlessrightdown3 pop dx pop bx clc adc dx, bx call _calcr clc adc dx, bx mov bx, x2 cmp cx, bx jl xlessrightdown2 jmp exitplotxytox2y2 xgreaterrightdown: mov cx, x1 mov dx, y1 mov ax, dotcolor xgreaterrightdown2: call _plottype mov bx, travelperone inc dx push bx push cx xgreaterrightdown3: inc cx call _plottype dec bx jnz xgreaterrightdown3 pop cx pop bx clc adc cx, bx call _calcr clc adc cx, bx mov bx, y2 cmp dx, bx jl xgreaterrightdown2 jmp exitplotxytox2y2 equalrightdown: mov cx, x1 mov dx, y1 mov ax, dotcolor equalrightdown2: call _plottype inc cx inc dx mov bx, x2 cmp cx, bx jl equalrightdown2 jmp exitplotxytox2y2 justright: mov cx, x1 mov bx, 0 mov dx, y1 mov ax, dotcolor justrightdot: call _plottype inc bx inc cx cmp bx, x1x2 jl justrightdot jmp exitplotxytox2y2 leftup: mov ax, xgy cmp ax, 0 je xlessleftup0 cmp ax, 1 je xgreaterleftup0 cmp ax, 2 je equalleftup0 xlessleftup0: jmp xlessleftup xgreaterleftup0: jmp xgreaterleftup equalleftup0: jmp equalleftup xlessleftup: mov cx, x1 mov dx, y1 mov ax, dotcolor xlessleftup2: call _plottype mov bx, travelperone dec cx push bx push dx xlessleftup3: dec dx call _plottype dec bx jnz xlessleftup3 pop dx pop bx clc sbb dx, bx call _calcr clc sbb dx, bx mov bx, x2 cmp cx, bx jg xlessleftup2 call _plottype;***added jmp exitplotxytox2y2 xgreaterleftup: mov cx, x1 mov dx, y1 mov ax, dotcolor xgreaterleftup2: call _plottype mov bx, travelperone dec dx push bx push cx xgreaterleftup3: dec cx call _plottype dec bx jnz xgreaterleftup3 pop cx pop bx clc sbb cx, bx call _calcr clc sbb cx, bx mov bx, y2 cmp dx, bx jg xgreaterleftup2 call _plottype;***added jmp exitplotxytox2y2 equalleftup: mov cx, x1 mov dx, y1 mov ax, dotcolor equalleftup2: call _plottype dec cx dec dx mov bx, x2 cmp cx, bx jg equalleftup2 call _plottype;***added jmp exitplotxytox2y2 leftdown: mov ax, xgy cmp ax, 0 je xlessleftdown0 cmp ax, 1 je xgreaterleftdown0 cmp ax, 2 je equalleftdown0 xlessleftdown0: jmp xlessleftdown xgreaterleftdown0: jmp xgreaterleftdown equalleftdown0: jmp equalleftdown xlessleftdown: mov cx, x1 mov dx, y1 mov ax, dotcolor xlessleftdown2: call _plottype mov bx, travelperone dec cx push bx push dx xlessleftdown3: inc dx call _plottype dec bx jnz xlessleftdown3 pop dx pop bx clc adc dx, bx call _calcr clc adc dx, bx mov bx, x2 cmp cx, bx jg xlessleftdown2 call _plottype;***added jmp exitplotxytox2y2 xgreaterleftdown: mov cx, x1 mov dx, y1 mov ax, dotcolor xgreaterleftdown2: call _plottype mov bx, travelperone inc dx push bx push cx xgreaterleftdown3: dec cx call _plottype dec bx jnz xgreaterleftdown3 pop cx pop bx clc sbb cx, bx call _calcr clc sbb cx, bx mov bx, y2 cmp dx, bx jl xgreaterleftdown2 call _plottype;***added jmp exitplotxytox2y2 equalleftdown: mov cx, x1 mov dx, y1 mov ax, dotcolor equalleftdown2: call _plottype dec cx inc dx mov bx, x2 cmp cx, bx jg equalleftdown2 jmp exitplotxytox2y2 justleft: mov cx, x1 mov bx, 0 mov dx, y1 mov ax, dotcolor justleftdot: call _plottype inc bx dec cx cmp bx, x1x2 jl justleftdot call _plottype;***added jmp exitplotxytox2y2 justdown: mov cx, x1 mov bx, 0 mov dx, y1 mov ax, dotcolor justdowndot: call _plottype inc bx inc dx cmp bx, y1y2 jl justdowndot jmp exitplotxytox2y2 exitplotxytox2y2: pop di pop es pop si pop ds pop dx pop cx pop bx pop ax ret dotcolor DW 0 xgy DW 0 x1plus DW 0 y1plus DW 0 x1 DW 0 y1 DW 0 x2 DW 0 y2 DW 0 x1x2 DW 0 y1y2 DW 0 xyr DW 0 xym DW 0 xyw DW 0 travelperone DW 0 _plotxytox2y2 ENDP _calcr PROC push ax push bx push cx push dx push ds push si push es push di mov ax, xyr mov bx, 0 mov bret, bx mov cx, xyw mov dx, xym clc adc cx, ax mov xyw, cx cmp cx, dx jl exitcalcr mov bx, cx mov ax, dx clc sbb bx, ax mov xyw, bx mov bx, 1 mov bret, bx ;call _calcr ;clc ;sbb dx, bx exitcalcr: pop di pop es pop si pop ds pop dx pop cx pop bx pop ax mov bx, bret ret bret DW 0 _calcr ENDP _colorclear PROC push ax push bx push cx push dx push ds push si push es push di mov ax, colorlevel inc ax cmp ax, word ptr 15 jle leveling mov ax, word ptr 1 leveling: mov colorlevel, ax mov ah, 0ch mov dx, 200 leveling2: mov cx, 320 leveling1: int 10h dec cx jnz leveling1 mov cx, 320 dec dx jnz leveling2 pop di pop es pop si pop ds pop dx pop cx pop bx pop ax ret colorlevel DW 1 _colorclear ENDP _line PROC push ax push bx push cx push dx push ds push si push es push di mov ax, 13 mov cx, 320 mov dx, 200 mov bx, 0 continuingline: dec dx clc sbb cx, 2 call _plotxycd cmp dx, 180 jg continuingline mov dx, 200 mov cx, 0 continuingline1: dec dx clc adc cx, 2 call _plotxycd cmp dx, 180 jg continuingline1 mov dx, 0 mov cx, 0 continuingline2: inc dx clc adc cx, 2 call _plotxycd cmp dx, 20 jl continuingline2 mov dx, 0 mov cx, 320 continuingline3: inc dx clc sbb cx, 2 call _plotxycd cmp dx, 20 jl continuingline3 mov dx, 20 pre4: mov cx, 40 continuingline4: inc cx call _plotxycd cmp cx, (320-40) jl continuingline4 inc dx cmp dx, 180 jl pre4 pop di pop es pop si pop ds pop dx pop cx pop bx pop ax ret _line ENDP _movingship PROC push ax push bx push cx push dx push ds push si push es push di checkleft: mov ax, xdship cmp ax, leftvalue jne checkright mov ax, xship dec ax cmp ax, xleft jg doneleft mov ax, xleft doneleft: mov xship, ax jmp exitmoving checkright: cmp ax, rightvalue jne checkup mov ax, xship inc ax cmp ax, xright jl doneright mov ax, xright doneright: mov xship, ax jmp exitmoving checkup: mov ax, ydship cmp ax, upvalue jne checkdown mov ax, yship dec ax cmp ax, ytop jg doneup mov ax, ytop doneup: mov yship, ax jmp exitmoving checkdown: cmp ax, downvalue jne exitmoving mov ax, yship inc ax cmp ax, ybottom jl donedown mov ax, ybottom donedown: mov yship, ax exitmoving: pop di pop es pop si pop ds pop dx pop cx pop bx pop ax ret _movingship ENDP _bounceball PROC push ax push bx push cx push dx push ds push si push es push di mov ax, xdball cmp ax, word ptr 0 jne chkright mov ax, xball dec ax cmp ax, xleft jg donechkxd mov ax, word ptr 1 mov xdball, ax mov ax, xleft jmp donechkxd chkright: mov ax, xdball cmp ax, word ptr 1 jne donechkxd mov ax, xball inc ax cmp ax, xright jl donechkxd mov ax, word ptr 0 mov xdball, ax mov ax, xright donechkxd: mov xball, ax jmp chkyd chkyd: mov ax, ydball cmp ax, word ptr 0 jne chkdown mov ax, yball dec ax cmp ax, ytop jg endchkyd mov ax, word ptr 1 mov ydball, ax mov ax, ytop mov yball, ax mov ax, ytop jmp endchkyd chkdown: mov ax, ydball cmp ax, word ptr 1 jne endchkyd mov ax, yball inc ax cmp ax, ybottom jl endchkyd mov ax, word ptr 0 mov ydball, ax mov ax, ybottom endchkyd: mov yball, ax jmp donechkxyd donechkxyd: pop di pop es pop si pop ds pop dx pop cx pop bx pop ax ret _bounceball ENDP _clrmain PROC push ax push bx push cx push dx push ds push si push es push di mov ax, SEG (08000h:0) mov es, ax mov ax, OFFSET (08000h:0) mov di, ax mov cx, 64000 mov al, colorofscreen clearing: mov bx, cx mov byte ptr es:[di+bx], al loop clearing mov byte ptr es:[di], al pop di pop es pop si pop ds pop dx pop cx pop bx pop ax ret colorofscreen DB 14 _clrmain ENDP _tiles PROC push ax push bx push cx push dx push ds push si push es push di mov ax, tilecolor inc ax cmp ax, word ptr 15 jle normaltile mov ax, word ptr 1 normaltile: mov tilecolor, ax mov bx, 1 mov dx, 127 setblocks0: mov cx, 300 setblocks: call _block clc sbb cx, word ptr 20 cmp cx, word ptr 10 jg setblocks clc sbb dx, word ptr 100 cmp dx, word ptr 10 jg setblocks0 pop di pop es pop si pop dx pop dx pop cx pop bx pop ax ret _tiles ENDP _pause PROC push ax push bx push cx push dx push ds push si push es push di mov ah, 0 int 16h pop di pop es pop si pop ds pop dx pop cx pop bx pop ax ret _pause ENDP _delay PROC push ax push bx push cx push dx push ds push si push es push di mov cx, delayduration delayloop: nop nop nop loop delayloop pop di pop es pop si pop ds pop dx pop cx pop bx pop ax ret delayduration DW 300 _delay ENDP _plotxycd PROC push ax push bx push cx push dx push ds push si push es push di ;cx contains left/right ;dx contains up/down ;ax contains color ;bx contains what to print cmp bx, word ptr 0 je printpixel jmp printships printpixel: cmp cx, 319 jg bypassprintplotxycd cmp dx, 200 jg bypassprintplotxycd mov ah, 0ch int 10h bypassprintplotxycd: jmp exitplotxycd printships: mov xpos, cx mov ypos, dx mov cpos, ax mov bpos, bx cmp bx, word ptr 1 je ldship1 jmp exitplotxycd ldship1: mov ax, SEG ship mov es, ax mov ax, OFFSET ship mov di, ax mov bx, 0 lding: mov al, byte ptr es:[di+bx] inc bx cmp al, byte ptr 18 jne ch2 jmp exitplotxycd ch2: cmp al, byte ptr 17 jne ch3 inc dx mov cx, xpos jmp lding ch3: cmp al, byte ptr 0 jne ch4 inc cx jmp lding ch4: cmp al, byte ptr 16 jne ch5 mov ax, word ptr 0 ch5: cmp cx, 319 jg bypasslding cmp dx, 200 jg bypasslding mov ah, 0ch int 10h bypasslding: inc cx jmp lding exitplotxycd: pop di pop es pop si pop ds pop dx pop cx pop bx pop ax ret _plotxycd ENDP _xycdGOD PROC push ax push bx push cx push dx push ds push si push es push di mov sxpos, cx mov sypos, dx mov scpos, ax mov sbpos, bx mov ax, SEG (07000h:0) mov es, ax mov ax, OFFSET (07000h:0) mov di, ax cmp bx, word ptr 0 je pixel jmp ships pixel: mov entryx, cx mov entryy, dx call _calcbx mov bx, resultantxy mov ax, scpos mov byte ptr es:[di+bx], al jmp exitxycd ships: mov ax, SEG ship mov es, ax mov ax, OFFSET ship mov di, ax calibrate: mov al, byte ptr es:[di] inc di cmp al, 18 jne calibrate dec bx jnz calibrate mov shipes, es mov shipdi, di ldg: mov es, shipes mov di, shipdi mov al, byte ptr es:[di+bx] inc bx cmp al, byte ptr 18 jne c2 jmp exitxycd c2: cmp al, byte ptr 17 jne c3 inc dx mov cx, sxpos jmp ldg c3: cmp al, byte ptr 0 jne c4 inc cx jmp ldg c4: cmp al, byte ptr 16 jne c5 mov ax, word ptr 0 c5: mov s2cpos, ax mov s2xpos, cx mov s2ypos, dx mov s2bpos, bx mov entryx, cx mov entryy, dx call _calcbx mov bx, resultantxy mov ax, SEG (07000h:0) mov es, ax mov ax, OFFSET (07000h:0) mov di, ax mov ax, s2cpos mov byte ptr es:[di+bx], al mov ax, s2cpos mov cx, s2xpos mov dx, s2ypos mov bx, s2bpos inc cx jmp ldg exitxycd: pop di pop es pop si pop ds pop dx pop cx pop bx pop ax ret _xycdGOD ENDP _prexycd PROC push ax push bx push cx push dx push ds push si push es push di mov sxpos, cx mov sypos, dx mov scpos, ax mov sbpos, bx mov ax, SEG (08000h:0) mov myds2, ax mov ax, OFFSET (08000h:0) mov mysi2, ax mov ax, SEG (07000h:0) mov myes2, ax mov ax, OFFSET (07000h:0) mov mydi2, ax ;cx contains left/right ;dx contains up/down ;ax contains color ;bx contains what to print cmp bx, word ptr 0 je prepixel jmp preships prepixel: mov entryx, cx mov entryy, dx call _calcbx mov bx, resultantxy mov ax, scpos mov byte ptr es:[di+bx], al jmp exitprexycd preships: mov ax, SEG ship mov es, ax mov ax, OFFSET ship mov di, ax loadingit: mov al, byte ptr es:[di] inc di cmp al, 18 jne loadingit dec bx jnz loadingit mov shipes, es mov shipdi, di preldg: mov es, shipes mov di, shipdi mov al, byte ptr es:[di+bx] inc bx cmp al, byte ptr 18 jne prec2 jmp exitprexycd prec2: cmp al, byte ptr 17 jne prec3 inc dx mov cx, sxpos jmp preldg prec3: prec4: prec5: mov s2cpos, ax mov s2xpos, cx mov s2ypos, dx mov s2bpos, bx mov entryx, cx mov entryy, dx call _calcbx mov bx, resultantxy mov es, myds2 mov di, mysi2 mov al, byte ptr es:[di+bx] mov es, myes2 mov di, mydi2 mov byte ptr es:[di+bx], al mov ax, s2cpos mov cx, s2xpos mov dx, s2ypos mov bx, s2bpos inc cx jmp preldg exitprexycd: pop di pop es pop si pop ds pop dx pop cx pop bx pop ax ret _prexycd ENDP _GOD PROC push ax push bx push cx push dx push ds push si push es push di mov sxpos, cx mov sypos, dx mov scpos, ax mov sbpos, bx mov ax, SEG (07000h:0) mov myds2, ax mov ax, OFFSET (07000h:0) mov mysi2, ax mov ax, SEG (0a000h:0) mov myes2, ax mov ax, OFFSET (0a000h:0) mov mydi2, ax cmp bx, word ptr 0 je postGOD jmp postships postGOD: mov entryx, cx mov entryy, dx call _calcbx mov bx, resultantxy mov ax, scpos mov byte ptr es:[di+bx], al jmp exitpostxycd postships: mov ax, SEG ship mov es, ax mov ax, OFFSET ship mov di, ax postloading: mov al, byte ptr es:[di] inc di cmp al, 18 jne postloading dec bx jnz postloading mov shipes, es mov shipdi, di postldg: mov es, shipes mov di, shipdi mov al, byte ptr es:[di+bx] inc bx cmp al, byte ptr 18 jne postc2 jmp exitpostxycd postc2: cmp al, byte ptr 17 jne postc3 inc dx mov cx, sxpos jmp postldg postc3: postc4: postc5: mov s2cpos, ax mov s2xpos, cx mov s2ypos, dx mov s2bpos, bx mov entryx, cx mov entryy, dx call _calcbx mov bx, resultantxy mov es, myds2 mov di, mysi2 mov al, byte ptr es:[di+bx] mov es, myes2 mov di, mydi2 mov byte ptr es:[di+bx], al mov ax, s2cpos mov cx, s2xpos mov dx, s2ypos mov bx, s2bpos inc cx jmp postldg exitpostxycd: pop di pop es pop si pop ds pop dx pop cx pop bx pop ax ret _GOD ENDP _block PROC push ax push bx push cx push dx push ds push si push es push di mov sxpos, cx mov sypos, dx mov scpos, ax mov sbpos, bx cmp msgswitch, 0 je normal8000h00 cmp msgswitch, 1 je actualbuffer02 cmp msgswitch, 2 je directscreenprint0 normal8000h00: jmp normal8000h0 actualbuffer02: jmp actualbuffer2 directscreenprint0: jmp directscreenprint actualbuffer2: mov ax, SEG (05000h:0) mov es, ax mov ax, OFFSET (05000h:0) mov di, ax jmp skipped8000h0 directscreenprint: mov ax, SEG (0a000h:0) mov es, ax mov ax, OFFSET (0a000h:0) mov di, ax jmp skipped8000h0 normal8000h0: mov ax, SEG (08000h:0) mov es, ax mov ax, OFFSET (08000h:0) mov di, ax jmp skipped8000h0 skipped8000h0: cmp bx, word ptr 0 je pixblock jmp shipsblock pixblock: clc mov bx, word ptr 320 mov ax, dx mov dx, word ptr 0 mul bx clc adc ax, cx mov bx, ax mov ax, scpos mov byte ptr es:[di+bx], al jmp exitblock shipsblock: mov ax, SEG ship mov es, ax mov ax, OFFSET ship mov di, ax loadblock: mov al, byte ptr es:[di] inc di cmp al, 18 jne loadblock dec bx jnz loadblock mov shipes, es mov shipdi, di ldgblk: mov es, shipes mov di, shipdi mov al, byte ptr es:[di+bx] inc bx cmp al, byte ptr 18 jne cblk2 jmp exitblock cblk2: cmp al, byte ptr 17 jne cblk3 inc dx mov cx, sxpos jmp ldgblk cblk3: cmp al, byte ptr 0 jne cblk4 inc cx jmp ldgblk cblk4: cmp al, byte ptr 16 jne cblk5 mov ax, word ptr 0 cblk5: mov s2cpos, ax mov s2xpos, cx mov s2ypos, dx mov s2bpos, bx clc mov ax, dx mov dx, word ptr 0 mov bx, word ptr 320 mul bx clc adc ax, cx mov bx, ax cmp msgswitch, 0 je normal8000h cmp msgswitch, 1 je actualbuffer2b mov ax, SEG (0a000h:0) mov es, ax mov ax, OFFSET (0a000h:0) mov di, ax jmp skipped8000h actualbuffer2b: mov ax, SEG (05000h:0) mov es, ax mov ax, OFFSET (05000h:0) mov di, ax jmp skipped8000h normal8000h: mov ax, SEG (08000h:0) mov es, ax mov ax, OFFSET (08000h:0) mov di, ax jmp skipped8000h skipped8000h: mov ax, s2cpos cmp ax, 0 je spawn mov ax, s2cpos spawn: mov byte ptr es:[di+bx], al mov ax, s2cpos mov cx, s2xpos mov dx, s2ypos mov bx, s2bpos inc cx jmp ldgblk exitblock: pop di pop es pop si pop ds pop dx pop cx pop bx pop ax ret _block ENDP _gfx PROC push ax push bx push cx push dx push ds push si push es push di mov al, 19 mov ah, 0 int 10h pop di pop es pop si pop ds pop dx pop cx pop bx pop ax ret _gfx ENDP _txt PROC push ax push bx push cx push dx push ds push si push es push di mov al, 3 mov ah, 0 int 10h pop di pop es pop si pop ds pop dx pop cx pop bx pop ax ret _txt ENDP _transferB PROC push ax push bx push cx push dx push ds push si push es push di mov ax, SEG (0a000h:0000) mov myds2, ax mov ax, OFFSET (0a000h:0000) mov mysi2, ax mov ax, SEG (08000h:0000) mov myes2, ax mov ax, OFFSET (08000h:0000) mov mydi2, ax mov cx, word ptr 64000 repxfrB2: mov bx, cx mov es, myds2 mov di, mysi2 mov al, byte ptr es:[di+bx] mov es, myes2 mov di, mydi2 mov byte ptr es:[di+bx], al loop repxfrB2 mov es, myds2 mov di, mysi2 mov al, byte ptr es:[di] mov es, myes2 mov di, mydi2 mov byte ptr es:[di], al pop di pop es pop si pop ds pop dx pop cx pop bx pop ax ret _transferB ENDP _transferA PROC push ax push bx push cx push dx push ds push si push es push di mov ax, SEG (08000h:0000) mov myds2, ax mov ax, OFFSET (08000h:0000) mov mysi2, ax mov ax, SEG (07000h:0000) mov myes2, ax mov ax, OFFSET (07000h:0000) mov mydi2, ax mov cx, word ptr 64000 repxfrA2: mov bx, cx mov es, myds2 mov di, mysi2 mov al, byte ptr es:[di+bx] mov es, myes2 mov di, mydi2 mov byte ptr es:[di+bx], al loop repxfrA2 mov es, myds2 mov di, mysi2 mov al, byte ptr es:[di] mov es, myes2 mov di, mydi2 mov byte ptr es:[di], al pop di pop es pop si pop ds pop dx pop cx pop bx pop ax ret _transferA ENDP _transferC PROC push ax push bx push cx push dx push ds push si push es push di mov ax, SEG (07000h:0000) mov myds2, ax mov ax, OFFSET (07000h:0000) mov mysi2, ax mov ax, SEG (0a000h:0000) mov myes2, ax mov ax, OFFSET (0a000h:0000) mov mydi2, ax mov cx, word ptr 64000 repxfrC2: mov bx, cx mov es, myds2 mov di, mysi2 mov al, byte ptr es:[di+bx] mov es, myes2 mov di, mydi2 mov byte ptr es:[di+bx], al loop repxfrC2 mov es, myds2 mov di, mysi2 mov al, byte ptr es:[di] mov es, myes2 mov di, mydi2 mov byte ptr es:[di], al pop di pop es pop si pop ds pop dx pop cx pop bx pop ax ret _transferC ENDP _transferato4 PROC push ax push bx push cx push dx push ds push si push es push di mov ax, SEG (0a000h:0000) mov ds, ax mov ax, OFFSET (0a000h:0000) mov si, ax mov ax, SEG (04000h:0000) mov es, ax mov ax, OFFSET (04000h:0000) mov di, ax mov cx, word ptr 32000 cld repxfrato4: movsw loop repxfrato4 movsw pop di pop es pop si pop ds pop dx pop cx pop bx pop ax ret _transferato4 ENDP _bpoint PROC push ax push bx push cx push dx push ds push si push es push di mov cx, 320 mov dx, 200 mov al, 14 mov ah, 0ch int 10h pop di pop es pop si pop ds pop dx pop cx pop bx pop ax ret _bpoint ENDP _transferD PROC push ax push bx push cx push dx push ds push si push es push di mov ax, SEG (0a000h:0000) mov myds2, ax mov ax, OFFSET (0a000h:0000) mov mysi2, ax mov ax, SEG (07000h:0000) mov myes2, ax mov ax, OFFSET (07000h:0000) mov mydi2, ax mov cx, word ptr 64000 repxfrD2: mov bx, cx mov es, myds2 mov di, mysi2 mov al, byte ptr es:[di+bx] mov es, myes2 mov di, mydi2 mov byte ptr es:[di+bx], al loop repxfrD2 mov byte ptr es:[di], al pop di pop es pop si pop ds pop dx pop cx pop bx pop ax ret _transferD ENDP _checkINRIzship PROC push ax push bx push cx push dx mov ax, xINRI mov bx, xship mov cx, xdimINRI mov dx, xdimship clc adc ax, cx cmp bx, ax jg stable clc adc bx, dx mov ax, xINRI cmp bx, ax jl stable mov ax, yINRI mov bx, yship mov cx, ydimINRI mov dx, ydimship clc adc ax, cx cmp bx, ax jg stable clc adc bx, dx mov ax, yINRI cmp bx, ax jl stable mov bx, collide jmp active stable: mov bx, bship active: mov shipbx, bx pop dx pop cx pop bx pop ax ret _checkINRIzship ENDP _checkBALLzship PROC push ax push bx push cx push dx mov ax, xball mov bx, xship mov cx, xdimball mov dx, xdimship clc adc ax, cx cmp bx, ax jg stable2 clc adc bx, dx mov ax, xball cmp bx, ax jl stable2 mov ax, yball mov bx, yship mov cx, ydimball mov dx, ydimship clc adc ax, cx cmp bx, ax jg stable2 clc adc bx, dx mov ax, yball cmp bx, ax jl stable2 mov bx, collidestar mov bball, bx mov ax, xdball cmp ax, word ptr 1 jne xdreflect mov ax, word ptr 0 mov xdball, ax jmp ydreflect xdreflect: mov ax, word ptr 1 mov xdball, ax ydreflect: mov ax, ydball cmp ax, word ptr 1 jne ydreflect2 mov ax, word ptr 0 mov ydball, ax jmp endreflect ydreflect2: mov ax, word ptr 1 mov ydball, ax endreflect: jmp active2 stable2: mov bx, normalball mov bball, bx active2: pop dx pop cx pop bx pop ax ret _checkBALLzship ENDP _printGOD PROC push ax push bx push cx push dx mov cx, (320-57) mov dx, (200-12) mov ax, 14 mov bx, GOD10 call _block pop dx pop cx pop bx pop ax ret _printGOD ENDP _printmomdad PROC push ax push bx push cx push dx mov cx, 0 mov dx, 0 mov ax, 12 mov bx, 6 call _block pop dx pop cx pop bx pop ax ret _printmomdad ENDP _printINRI PROC push ax push bx push cx push dx mov cx, xINRI mov dx, yINRI mov ax, cINRI mov bx, bINRI call _block pop dx pop cx pop bx pop ax ret _printINRI ENDP _sisters PROC push ax push bx push cx push dx mov ax, 15 mov bx, thuyenthi mov cx, 155 mov dx, 100 call _block pop dx pop cx pop bx pop ax ret _sisters ENDP _defineA5000 PROC push ax push bx push cx push dx push ds push si push es push di mov ax, SEG (05000h:0) mov es, ax mov ax, OFFSET (05000h:0) mov di, ax Areplicate: mov ax, Adx mov bx, Abx clc mul bx mov bx, Acx clc adc ax, bx mov bx, ax mov ax, Aax mov byte ptr es:[di+bx], al mov ax, Acx inc ax mov Acx, ax cmp ax, word ptr 320 jl Areplicatejmp mov ax, Aax inc ax cmp ax, 1 jne colorcheck mov ax, 2 mov Aax, ax colorcheck: cmp ax, word ptr 16 jl updatecolor mov ax, word ptr 2 updatecolor: mov Aax, ax mov ax, 0 mov Acx, ax mov ax, Adx inc ax mov Adx, ax cmp ax, 200 jl Areplicatejmp jmp exit5000 Areplicatejmp: jmp Areplicate exit5000: pop di pop es pop si pop ds pop dx pop cx pop bx pop ax ret Aax DW 1 Abx DW 320 Acx DW 0 Adx DW 0 _defineA5000 ENDP _transfer5000to7000 PROC push ax push bx push cx push dx push ds push si push es push di mov sxpos, cx mov sypos, dx mov scpos, ax mov sbpos, bx mov ax, SEG (07000h:0) mov es, ax mov ax, OFFSET (07000h:0) mov di, ax cmp bx, word ptr 0 je pixel5000 jmp ships5000 pixel5000: mov entryx, cx mov entryy, dx call _calcbx mov bx, resultantxy mov ax, scpos mov byte ptr es:[di+bx], al jmp exitxycd5000 ships5000: mov ax, SEG ship mov es, ax mov ax, OFFSET ship mov di, ax calibrate5000: mov al, byte ptr es:[di] inc di cmp al, 18 jne calibrate5000 dec bx jnz calibrate5000 mov shipes, es mov shipdi, di ldg5000: mov es, shipes mov di, shipdi mov al, byte ptr es:[di+bx] inc bx cmp al, byte ptr 18 jne c25000 jmp exitxycd5000 c25000: cmp al, byte ptr 17 jne c35000 inc dx mov cx, sxpos jmp ldg5000 c35000: cmp al, byte ptr 0 jne c45000 inc cx jmp ldg5000 c45000: cmp al, byte ptr 19 je c55000 mov ah, 0 mov s2cpos, ax mov s2xpos, cx mov s2ypos, dx mov s2bpos, bx mov entryx, cx mov entryy, dx call _calcbx mov bx, resultantxy jmp solidcolor c55000: mov s2cpos, ax mov s2xpos, cx mov s2ypos, dx mov s2bpos, bx mov entryx, cx mov entryy, dx call _calcbx mov bx, resultantxy mov ax, SEG (05000h:0) mov es, ax mov ax, OFFSET (05000h:0) mov di, ax mov al, byte ptr es:[di+bx] mov s2cpos, ax solidcolor: mov ax, SEG (07000h:0) mov es, ax mov ax, OFFSET (07000h:0) mov di, ax mov ax, s2cpos mov byte ptr es:[di+bx], al mov ax, s2cpos mov cx, s2xpos mov dx, s2ypos mov bx, s2bpos inc cx jmp ldg5000 exitxycd5000: pop di pop es pop si pop ds pop dx pop cx pop bx pop ax ret shipes2 DW 0 shipdi2 DW 0 _transfer5000to7000 ENDP _screenright PROC push ax push bx push cx push dx push ds push si push es push di mov ax, SEG (0a000h:0) mov es, ax mov ax, OFFSET (0a000h:0) mov di, ax mov bx, 1 keepmoving00: push bx mov cx, 318 keepmoving0: mov dx, 199 keepmoving: mov entryx, cx mov entryy, dx call _calcbx mov bx, resultantxy mov al, byte ptr es:[di+bx] inc cx mov entryx, cx mov entryy, dx call _calcbx mov bx, resultantxy dec cx mov byte ptr es:[di+bx], al dec dx jnz keepmoving mov entryx, cx mov entryy, dx call _calcbx mov bx, resultantxy mov al, byte ptr es:[di+bx] inc cx mov entryx, cx mov entryy, dx call _calcbx mov bx, resultantxy dec cx mov byte ptr es:[di+bx], al dec cx jnz keepmoving0 mov dx, 199 bbb: mov entryx, cx mov entryy, dx call _calcbx mov bx, resultantxy mov al, byte ptr es:[di+bx] inc cx mov entryx, cx mov entryy, dx call _calcbx mov bx, resultantxy dec cx mov byte ptr es:[di+bx], al dec dx jnz bbb mov entryx, cx mov entryy, dx call _calcbx mov bx, resultantxy mov al, byte ptr es:[di+bx] inc cx mov entryx, cx mov entryy, dx call _calcbx mov bx, resultantxy dec cx mov byte ptr es:[di+bx], al pop bx dec bx jz bbb2 jmp keepmoving00 bbb2: pop di pop es pop si pop ds pop dx pop cx pop bx pop ax ret _screenright ENDP _screenrightb PROC push ax push bx push cx push dx push ds push si push es push di mov bx, 1 keepmovingb00: mov cx, 319 keepmovingb0: mov dx, 199 keepmovingb: mov ah, 0dh int 10h inc cx mov ah, 0ch int 10h dec cx dec dx jnz keepmovingb dec cx jnz keepmovingb0 dec bx jnz keepmovingb00 pop di pop es pop si pop ds pop dx pop cx pop bx pop ax ret _screenrightb ENDP _screendown PROC push ax push bx push cx push dx push ds push si push es push di mov ax, SEG (0a000h:64000-320) mov myds, ax mov ax, OFFSET (0a000h:64000-320) mov mysi, ax mov ax, SEG (0a000h:64000) mov myes, ax mov ax, OFFSET (0a000h:64000) mov mydi, ax mov bx, 200 std coolyma0: mov ds, myds mov si, mysi mov es, myes mov di, mydi mov cx, 32000 coolyma: movsw loop coolyma movsw dec bx jnz coolyma0 pop di pop es pop si pop ds pop dx pop cx pop bx pop ax ret _screendown ENDP _screenrightfrom4 PROC push ax push bx push cx push dx push ds push si push es push di mov ax, 0 mov dcx, ax mov ax, 199 mov ddx, ax mov ax, 319 mov scx, ax mov ax, 199 mov sdx, ax mov ax, SEG (04000h:0) mov ds, ax mov ax, OFFSET (04000h:0) mov si, ax mov ax, SEG (0a000h:0) mov es, ax mov ax, OFFSET (0a000h:0) mov di, ax transferringrightfrom4: mov cx, scx mov dx, sdx mov entryx, cx mov entryy, dx call _calcbx mov bx, resultantxy mov al, byte ptr ds:[si+bx] mov cx, dcx mov dx, ddx mov entryx, cx mov entryy, dx call _calcbx mov bx, resultantxy mov byte ptr es:[di+bx], al mov dx, sdx dec dx mov sdx, dx mov ddx, dx cmp dx, 0 jnz transferringrightfrom4 mov cx, scx mov dx, sdx mov entryx, cx mov entryy, dx call _calcbx mov bx, resultantxy mov al, byte ptr ds:[si+bx] mov cx, dcx mov dx, ddx mov entryx, cx mov entryy, dx call _calcbx mov bx, resultantxy mov byte ptr es:[di+bx], al ;call _screenrightb call _screenright mov dx, 199 mov sdx, dx mov ddx, dx mov cx, scx dec cx mov scx, cx cmp cx, 0 jz bbb3 jmp transferringrightfrom4 bbb3: pop di pop es pop si pop ds pop dx pop cx pop bx pop ax ret scx DW 0 sdx DW 0 dcx DW 0 ddx DW 0 _screenrightfrom4 ENDP _plotmsg PROC push ax push bx push cx push dx push ds push si push es push di cmp msgswitch, 0 je normalmsg0 cmp msgswitch, 1 je intromsg0 cmp msgswitch, 2 je finalmsg0 cmp msgswitch, 3 je pleasewaitmsg0 cmp msgswitch, 4 je relativesmsg0 normalmsg0: jmp normalmsg intromsg0: jmp intromsg finalmsg0: jmp finalmsg pleasewaitmsg0: jmp pleasewaitmsg relativesmsg0: jmp relativesmsg relativesmsg: mov ax, SEG msgrelatives mov es, ax mov ax, OFFSET msgrelatives mov di, ax jmp skippednormalmsg pleasewaitmsg: mov ax, SEG pleasewait mov es, ax mov ax, OFFSET pleasewait mov di, ax jmp skippednormalmsg intromsg: mov ax, SEG msgunderneath mov es, ax mov ax, OFFSET msgunderneath mov di, ax jmp skippednormalmsg finalmsg: mov ax, SEG final mov es, ax mov ax, OFFSET final mov di, ax jmp skippednormalmsg normalmsg: mov ax, SEG msg mov es, ax mov ax, OFFSET msg mov di, ax jmp skippednormalmsg skippednormalmsg: mov cx, 57 mov dx, word ptr 0 mov bx, word ptr 0 msging: mov al, byte ptr es:[di+bx] inc bx cmp al, 0 je exitmsg0 cmp al, 1 jne chkaftletnum mov cx, 57 clc adc dx, word ptr 7 jmp msging exitmsg0: jmp exitmsg chkaftletnum: cmp al, 2 jl chkletre cmp al, 15 jge chkletre push bx mov ah, 0 clc mov bx, aftletnum adc ax, bx mov bx, ax jmp printmain chkletre: cmp al, 65 jl chknumbre cmp al, (65+26) jge chknumbre jmp lprinting chknumbre: cmp al, 48 jl incr cmp al, (48+10) jge incr push bx mov ah, 0 clc sbb ax, word ptr 48 clc mov bx, numbre adc ax, bx mov bx, ax jmp printmain lprinting: push bx mov ah, 0 clc sbb ax, word ptr 65 clc mov bx, letre adc ax, bx mov bx, ax printmain: cmp mainscreen, 0 jne mainscreenwork mov ax, word ptr 15 call _block jmp completedmainscreen mainscreenwork: mov current123, bx mov ax, 320-12 mov x1, ax mov ax, 200-12 mov y1, ax mov x2, cx mov y2, dx mov ax, word ptr 15 call _plotxytox2y2 completedmainscreen: pop bx incr: clc adc cx, word ptr 7 jmp msging exitmsg: pop di pop es pop si pop ds pop dx pop cx pop bx pop ax ret current123 DW 0 mainscreen DW 0 msgswitch DW 0 esmsg DW 0 dimsg DW 0 pleasewait DB 1 DB 'PLEASE WAIT FOR GOD 0 A D INTRO',1 DB 'THANK YOU',1 DB 0 msg DB 1 DB 'CH',10,'A JESUS CHRIST',1 DB ' ',1 DB 'MOM H',5,6,'NG THI V',7,' LOTS OF LOVE',1 DB 'FOR ALWAYS BEING THERE ',1 DB 1 DB 'DAD NGUY',8,'N B',9,'NH TH',10,'Y YOU TOO ',1 DB 1 DB 'SIS NGUY',8,'N KHOA THUY',11,'N CONGRATS ',1 DB 1 DB 'SIS NGUY',8,'N KHOA THI CONGRATS ',1 DB 1 DB 'WIFE H',12,' TH',13,' NGA ',1 DB 1 DB 'DAUGHTER NGUY',8,'N KHOA TUY',14,'T ',1 DB 1 DB 'GRANDMA V',7,' TH',13,' C',2,'U 201608081430',1 DB 1 DB 'GRANDPA V',7,' V',3,'N TH',4,'NH',1 DB 1 DB 1 DB 'THANK MARY AND HOLY SPIRIT',1 DB 'NGUY',8,'N KHOA TI',14,'N',1 DB 1 DB 1 DB 'PLEASE USE KEY W A D S SPACE C Q',1 DB 0 final DB 'THANK YOU GOD 0 A D',1 DB 'MY NAME IS TIEN K NGUYEN',1 DB 1 DB 'I HAVE 4 MEMBERS IN MY FAMILY',1 DB 1 DB 1 DB 'DAD THUY B NGUYEN',1 DB 'MOM HUONG T VU',1 DB 1 DB 1 DB 1 DB 'YOUNGER SIS THI K NGUYEN',1 DB 'YOUNGEST SIS THUYEN K NGUYEN',1 DB 1 DB 1 DB 'PLEASE USE KEYS A D S W AND Q',1 DB 1 DB 'MOVING THE BLOCK AROUND MIXES',1 DB 1 DB 'THANK YOU WWW VETUSWARE ORG',1 DB 1 DB 1 DB 'THANK YOU TO THE REAL JESUS CHRIST',1 DB 'JESUS CHRIST FROM 0 A D',1 DB 1 DB 'THANK YOU MARY AND THE HOLY SPIRIT',1 DB 'I LUV U ALL EVERYONE ETC AND SUCH',1 DB 0 msgunderneath DB 'GOD 0 A D',1 DB 1 DB 'NGUYEN VU',1 DB 1 DB 'VIETNAM',1 DB 'USA',1 DB 1 DB 'XFINITYCOMCASTIVAN ADOBE MICROSOFT',1 DB 'OFFICEDEPOT BESTBUY KROGER WALMART',1 DB 'CBOARDCPROGRAMMING TARGET',1 DB 'QUADKO MRFLIBBLE PSEUDOCODER',1 DB 'GOODMAN AC NICK AND RICHARD',1 DB 'MCCULLOUGHMODELING LAFAYETTECOLLEGE',1 DB 'DAVIDBRACKEEN DONOHOS',1 DB 'CHESS WWWCHESSFORUMSORG',1 DB 'HOLYNAMEHIGHSCHOOL PENARGYLHIGHSCHOOL',1 DB 'TOSHIBA INTERNATIONAL CHRISTIE',1 DB 'NY TX PA HOLLYWOODCA NJ DE',1 DB 'IMAGEINTERNATIONAL LUCYKINGMODELING',1 DB 'DONATELLIMODELING DEBBIEWEISMAN',1 DB 'RFOBASICFREEFORUMS',1 DB 'MANPOWER ADECCO STAFFFORCE 7ELEVEN',1 DB 'SIR ALLEN PILGRIM AND SON',1 DB 'WELLSFARGO CENTRALCASTING',1 DB 'LEHIGH COUNTY COMMUNITY COLLEGE',1 DB 'PROGRAMMERSHEAVEN DANIWEB APPLE',1 DB 'HTTPSWWWVOGONSORG PELLESC BORLAND',1 DB 'DOSGAMES CLASSICDOSGAMES RELIANT',1 DB 0 msgrelatives DB 'CH',10,'A',1 DB 1 DB 'I DONT KNOW MANY PEOPLE',1 DB 'BUT I TRY TO DO THE RIGHT THING',1 DB 'MY REAL DAD ALWAYS SAYS TO',1 DB 'MY REAL MOM ALSO',1 DB 'AND MY TWO REAL SISTERS',1 DB 1 DB 'I AM NOT RICH',1 DB 'HOWEVER I AM HAPPY THANKS AD0',1 DB 1 DB ' INRI',1 DB 1 DB 'THE Q KEY USUALLY QUITS',1 DB 'WHILE KEYS A D S W MOVES',1 DB 'OPTIONAL KEYS ARE SPACE AND C',1 DB 1 DB 'I LOVE EVERYONE',1 DB 'ESPECIALLY GOD 0 AD',1 DB 'AND SECOND MY REAL PARENTS',1 DB 'THIRD IS MY REAL TWO REAL SISTERS',1 DB 'FOURTH MY REAL WIFE AND REAL KID',1 DB 0 _plotmsg ENDP _clearendingscreen PROC push ax push bx push cx push dx push ds push si push es push di mov ax, SEG (0a000h:0) mov es, ax mov ax, OFFSET (0a000h:0) mov di, ax mov cx, 64000 mov al, 14 clearing2: mov bx, cx mov byte ptr es:[di+bx], al loop clearing2 mov byte ptr es:[di], al pop di pop es pop si pop ds pop dx pop cx pop bx pop ax ret _clearendingscreen ENDP _rotate90r PROC push ax push bx push cx push dx push ds push si push es push di mov cx, x1 mov cxtemp, cx mov bx, xlength clc adc cx, bx mov xlentemp, cx mov dx, y1 mov dxtemp, dx mov bx, ylength clc adc dx, bx mov ylentemp, dx mov dx, dxtemp mov cx, x2 mov cxtemp2, cx mov dx, y2 mov dxtemp2, dx mov cx, xlength mov ylentemp2, cx mov dx, ylength mov xlentemp2, dx rotating: mov cx, cxtemp mov dx, dxtemp mov ah, 0dh int 10h mov cx, cxtemp2 mov dx, dxtemp2 cmp cx, 319 jg bypassprinttn cmp dx, 200 jg bypassprinttn mov ah, 0ch int 10h bypassprinttn: mov cx, cxtemp inc cx mov cxtemp, cx cmp cx, xlentemp jl rotatingc mov cx, x1 mov cxtemp, cx rotatingb: mov dx, dxtemp inc dx mov dxtemp, dx cmp dx, ylentemp jl rotatingc jmp exitrotating rotatingc: mov dx, dxtemp2 inc dx mov dxtemp2, dx mov dx, ylentemp2 dec dx mov ylentemp2, dx cmp dx, 0 jg rotatinge mov dx, y2 mov dxtemp2, dx mov dx, xlength mov ylentemp2, dx rotatingd: mov cx, cxtemp2 dec cx mov cxtemp2, cx mov cx, xlentemp2 dec cx mov xlentemp2, cx cmp cx, 0 je exitrotating rotatinge: jmp rotating exitrotating: pop di pop es pop si pop ds pop dx pop cx pop bx pop ax ret xlength DW 0 ylength DW 0 xlentemp DW 0 ylentemp DW 0 xlentemp2 DW 0 ylentemp2 DW 0 cxtemp DW 0 dxtemp DW 0 cxtemp2 DW 0 dxtemp2 DW 0 _rotate90r ENDP _rotate180r PROC push ax push bx push cx push dx push ds push si push es push di mov cx, x1 mov cxtemp, cx mov bx, xlength clc adc cx, bx mov xlentemp, cx mov dx, y1 mov dxtemp, dx mov bx, ylength clc adc dx, bx mov ylentemp, dx mov dx, dxtemp mov cx, x2 mov cxtemp2, cx mov dx, y2 mov dxtemp2, dx mov cx, xlength mov xlentemp2, cx mov dx, ylength mov ylentemp2, dx rotating180: mov cx, cxtemp mov dx, dxtemp mov ah, 0dh int 10h mov cx, cxtemp2 mov dx, dxtemp2 cmp cx, 319 jg bypassprinttn2 cmp dx, 200 jg bypassprinttn2 mov ah, 0ch int 10h bypassprinttn2: mov cx, cxtemp inc cx mov cxtemp, cx cmp cx, xlentemp jl rotatingc180 mov cx, x1 mov cxtemp, cx rotatingb180: mov dx, dxtemp inc dx mov dxtemp, dx cmp dx, ylentemp jl rotatingc180 jmp exitrotating180 rotatingc180: mov cx, cxtemp2 dec cx mov cxtemp2, cx mov cx, xlentemp2 dec cx mov xlentemp2, cx cmp cx, 0 jg rotatinge180 mov cx, x2 mov cxtemp2, cx mov cx, xlength mov xlentemp2, cx rotatingd180: mov dx, dxtemp2 dec dx mov dxtemp2, dx mov dx, ylentemp2 dec dx mov ylentemp2, dx cmp dx, 0 je exitrotating180 rotatinge180: jmp rotating180 exitrotating180: pop di pop es pop si pop ds pop dx pop cx pop bx pop ax ret _rotate180r ENDP _datastorage PROC GOD10 DW 9 thuyenthi DW 11 letre DW (1+12) numbre DW (1+12+26) aftletnum DW (1+12+26+9) tilecolor DW 12 xball DW 155 yball DW 100 cball DW 12 bball DW 7 xdimball DW 28 ydimball DW 24 xdball DW 1 ydball DW 0 normalball DW 7 collidestar DW 8 collide DW 5 xINRI DW 10 yINRI DW 100 cINRI DW 12 bINRI DW 4 xdimINRI DW 24 ydimINRI DW 5 shipax DW 0 shipbx DW 0 shipcx DW 0 shipdx DW 0 xship DW 15 yship DW 100 cship DW 14 bship DW 2 shield DW 3 normal DW 2 xdship DW 2 ydship DW 2 xleft DW 0 xright DW 320 ytop DW 0 ybottom DW 200 leftvalue DW 0 rightvalue DW 1 upvalue DW 0 downvalue DW 1 stopvalue DW 2 xdimship DW 30 ydimship DW 30 xpos DW 0 ypos DW 0 cpos DW 0 bpos DW 0 shipdi DW 0 shipes DW 0 sxpos DW 0 sypos DW 0 scpos DW 0 sbpos DW 0 s2xpos DW 0 s2ypos DW 0 s2cpos DW 0 s2bpos DW 0 myax DW 0 mybx DW 0 mycx DW 0 mydx DW 0 myds DW 0 mysi DW 0 myes DW 0 mydi DW 0 myes2 DW 0 mydi2 DW 0 myds2 DW 0 mysi2 DW 0 ship: DB 18 DB 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 17 DB 0 , 0, 0,12,12,12, 0, 0, 0, 0, 17 DB 0 , 0, 0, 0, 0,12, 0, 0, 0, 0, 17 DB 0 , 0, 0, 0, 0,12, 0, 0, 0, 0, 17 DB 0 , 0, 0, 0, 0,12, 0, 0, 0, 0, 17 DB 0 , 0, 0, 0, 0,12, 0, 0, 0, 0, 17 DB 0 , 0,12, 0, 0,12, 0, 0, 0, 0, 17 DB 0 , 0, 0,12,12, 0, 0, 0, 0, 0, 17 DB 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 17 DB 0 , 0, 0,12,12, 0, 0, 0, 0, 0, 17 DB 0 , 0,12, 0, 0,12, 0, 0, 0, 0, 17 DB 0 , 0,12, 0, 0, 0, 0, 0, 0, 0, 17 DB 0 , 0,12, 0, 0, 0, 0, 0, 0, 0, 17 DB 0 , 0, 0,12, 0, 0, 0, 0, 0, 0, 17 DB 0 , 0,12, 0, 0, 0, 0, 0, 0, 0, 17 DB 0 , 0,12, 0, 0, 0, 0, 0, 0, 0, 17 DB 0 , 0, 0,12,12,12, 0, 0, 0, 0, 17 DB 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 17 DB 0 , 0, 0,12,12, 0, 0, 0, 0, 0, 17 DB 0 , 0,12, 0, 0,12, 0, 0, 0, 0, 17 DB 0 , 0,12, 0,12, 0, 0, 0, 0, 0, 17 DB 0 , 0,12, 0, 0, 0, 0, 0, 0, 0, 17 DB 0 , 0, 0,12, 0, 0, 0, 0, 0, 0, 17 DB 0 , 0, 0, 0,12, 0, 0, 0, 0, 0, 17 DB 0 , 0, 0, 0, 0,12, 0, 0, 0, 0, 17 DB 0 , 0, 0,12,12, 0, 0, 0, 0, 0, 17 DB 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 17 DB 0 , 0,12, 0, 0,12, 0, 0, 0, 0, 17 DB 0 , 0,12, 0, 0,12, 0, 0, 0, 0, 17 DB 0 , 0,12, 0, 0,12, 0, 0, 0, 0, 17 DB 0 , 0, 0,12,12, 0,12, 0, 0, 0, 17 DB 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 17 DB 0 , 0, 0,12,12,12,12, 0, 0, 0, 17 DB 0 , 0,12, 0, 0, 0, 0, 0, 0, 0, 17 DB 0 , 0,12, 0, 0, 0, 0, 0, 0, 0, 17 DB 0 , 0,12, 0, 0, 0, 0, 0, 0, 0, 17 DB 0 , 0, 0,12,12, 0, 0, 0, 0, 0, 17 DB 0 , 0, 0, 0, 0,12, 0, 0, 0, 0, 17 DB 0 , 0, 0, 0, 0, 0,12, 0, 0, 0, 17 DB 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 17 DB 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 17 DB 0 , 0, 0, 0, 0, 0,12, 0, 0, 0, 17 DB 0 , 0, 0,12,12,12, 0, 0, 0, 0, 17 DB 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 17 DB 0 , 0, 0, 0,12,12, 0, 0, 0, 0, 17 DB 0 , 0, 0,12, 0, 0,12, 0, 0, 0, 17 DB 0 , 0, 0,12, 0, 0,12, 0, 0, 0, 17 DB 0 , 0, 0,12, 0, 0,12, 0, 0, 0, 17 DB 0 , 0, 0, 0,12, 0, 0,12, 0, 0, 17 DB 0 , 0, 0, 0,12, 0, 0,12, 0, 0, 17 DB 0 , 0, 0, 0,12, 0,12, 0, 0, 0, 17 DB 0 , 0, 0, 0, 0,12,12, 0, 0, 0, 17 DB 0 , 0, 0, 0, 0,12, 0, 0, 0, 0, 17 DB 0 , 0, 0, 0, 0,12, 0, 0, 0, 0, 17 DB 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 17 DB 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 17 DB 0 , 0, 0, 0, 0,12,12, 0, 0, 0, 17 DB 0 , 0, 0, 0,12, 0, 0,12, 0, 0, 17 DB 0 , 0, 0, 0, 0,12,12, 0, 0, 0, 17 DB 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 18 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 00, 00, 00, 10, 10, 10, 00, 00, 00, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 00, 00, 00, 10, 19, 10, 00, 00, 00, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 00, 00, 00, 10, 19, 10, 00, 00, 00, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 00, 00, 00, 10, 19, 10, 00, 00, 00, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 00, 00, 00, 10, 19, 10, 00, 00, 00, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 00, 00, 00, 10, 19, 10, 00, 00, 00, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 10, 10, 10, 10, 19, 10, 10, 10, 10, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 10, 19, 19, 19, 19, 19, 19, 19, 10, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 10, 19, 19, 19, 19, 19, 19, 19, 10, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 10, 19, 19, 19, 19, 19, 19, 19, 10, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 10, 10, 10, 10, 19, 10, 10, 10, 10, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 00, 00, 00, 10, 19, 10, 00, 00, 00, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 00, 00, 00, 10, 19, 10, 00, 00, 00, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 00, 00, 00, 10, 19, 10, 00, 00, 00, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 00, 00, 00, 10, 19, 10, 00, 00, 00, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 00, 00, 00, 10, 19, 10, 00, 00, 00, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 00, 00, 00, 10, 19, 10, 00, 00, 00, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 00, 00, 00, 10, 19, 10, 00, 00, 00, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 00, 00, 00, 10, 19, 10, 00, 00, 00, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 00, 00, 00, 10, 19, 10, 00, 00, 00, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 00, 00, 00, 10, 19, 10, 00, 00, 00, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 00, 00, 00, 10, 10, 10, 00, 00, 00, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 18 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 00, 10, 10, 10, 10, 10, 10, 00, 00, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 10 , 10, 00, 00, 00, 00, 00, 00, 10, 00, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 10, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 10, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 10, 00, 00 , 00, 00, 00, 10, 10, 10, 00, 00, 00, 10 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 10, 00, 00 , 00, 00, 00, 10, 10, 10, 00, 00, 00, 00 , 10, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 10, 00, 00, 00 , 00, 00, 00, 10, 10, 10, 00, 00, 00, 00 , 10, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 10, 00, 00, 00 , 00, 00, 00, 10, 10, 10, 00, 00, 00, 00 , 00, 10, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 10, 00, 00, 00 , 00, 00, 00, 10, 10, 10, 00, 00, 00, 00 , 00, 10, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 10, 00, 00, 00 , 00, 00, 00, 10, 10, 10, 00, 00, 00, 00 , 00, 10, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 10, 00, 00, 00 , 10, 10, 10, 10, 10, 10, 10, 10, 10, 00 , 00, 10, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 10, 00, 00, 00 , 10, 10, 10, 10, 10, 10, 10, 10, 10, 00 , 00, 10, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 10, 00, 00, 00 , 10, 10, 10, 10, 10, 10, 10, 10, 10, 00 , 00, 10, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 10, 00, 00, 00 , 10, 10, 10, 10, 10, 10, 10, 10, 10, 00 , 00, 10, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 10, 00, 00, 00 , 10, 10, 10, 10, 10, 10, 10, 10, 10, 00 , 00, 10, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 10, 00, 00, 00 , 00, 00, 00, 10, 10, 10, 00, 00, 00, 00 , 00, 10, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 10, 00, 00, 00 , 00, 00, 00, 10, 10, 10, 00, 00, 00, 00 , 00, 10, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 10, 00, 00, 00 , 00, 00, 00, 10, 10, 10, 00, 00, 00, 00 , 00, 10, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 10, 00, 00, 00 , 00, 00, 00, 10, 10, 10, 00, 00, 00, 00 , 00, 10, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 10, 00, 00, 00 , 00, 00, 00, 10, 10, 10, 00, 00, 00, 00 , 00, 10, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 10, 00, 00, 00 , 00, 00, 00, 10, 10, 10, 00, 00, 00, 00 , 00, 10, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 10, 00, 00 , 00, 00, 00, 10, 10, 10, 00, 00, 00, 00 , 00, 10, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 10, 00 , 00, 00, 00, 10, 10, 10, 00, 00, 00, 00 , 10, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 10, 00 , 00, 00, 00, 10, 10, 10, 00, 00, 00, 00 , 10, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 10 , 00, 00, 00, 10, 10, 10, 00, 00, 00, 10 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 10, 10, 00, 10, 10, 10, 00, 10, 10, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 18 DB 00, 12, 12, 12, 00, 00, 00, 12, 12, 00, 00, 00, 00 ,12, 12, 00, 00, 00, 00, 12, 12, 12, 00, 00, 17 DB 00, 00, 12, 00, 00, 00, 00, 12, 00, 12, 00, 00, 00 ,12, 00, 12, 00, 00, 00, 00, 12, 00, 00, 00, 17 DB 00, 00, 12, 00, 00, 00, 00, 12, 00, 12, 00, 00, 00 ,12, 12, 00, 00, 00, 00, 00, 12, 00, 00, 00, 17 DB 00, 00, 12, 00, 00, 00, 00, 12, 00, 12, 00, 00, 00 ,12, 00, 12, 00, 00, 00, 00, 12, 00, 00, 00, 17 DB 00, 12, 12, 12, 00, 14, 00, 12, 00, 12, 00, 14, 00 ,12, 00, 12, 00, 14, 00, 12, 12, 12, 00, 14, 18 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 00, 00, 00, 10, 10, 10, 00, 00, 00, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 00, 00, 00, 10, 00, 10, 00, 00, 00, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 00, 00, 00, 10, 00, 10, 00, 00, 00, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 00, 00, 00, 10, 00, 10, 00, 00, 00, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 00, 00, 00, 10, 00, 10, 00, 00, 00, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 00, 00, 00, 10, 07, 10, 00, 00, 00, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 10, 08, 10, 10, 08, 07, 10, 10, 08, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 08, 00, 08, 00, 07, 08, 00, 07, 10, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 10, 00, 00, 07, 07, 08, 08, 00, 10, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 10, 00, 00, 08, 08, 08, 00, 00, 10, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 10, 10, 10, 08, 08, 08, 10, 10, 10, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 00, 00, 00, 08, 08, 08, 00, 00, 00, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 00, 00, 00, 10, 08, 08, 00, 00, 00, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 00, 00, 00, 00, 07, 08, 00, 00, 00, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 00, 00, 00, 08, 07, 08, 00, 00, 00, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 00, 00, 00, 08, 07, 10, 00, 00, 00, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 00, 00, 00, 08, 07, 10, 00, 00, 00, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 00, 00, 00, 08, 07, 10, 00, 00, 00, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 00, 00, 00, 10, 08, 10, 00, 00, 00, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 00, 00, 00, 10, 08, 10, 00, 00, 00, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 00, 00, 00, 10, 08, 10, 00, 00, 00, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 00, 00, 00, 10, 10, 10, 00, 00, 00, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 18 DB 15, 00, 15, 00, 00, 00, 00, 15, 00, 00, 00 ,00, 15, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 15, 00, 15, 00, 00, 00, 00, 00, 00, 00, 00, 00, 15, 00, 15, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 15, 15, 15, 00, 15, 00, 15, 00, 00, 15, 15 ,15, 00, 00, 15, 15, 00, 00, 15, 15, 15, 00, 00, 00, 15, 15, 15, 00, 15, 00, 15, 00, 15, 15, 15, 00, 00, 00, 15, 00, 15, 00, 15, 00, 15, 00, 00, 00, 00, 00, 00, 00, 00, 00, 15, 00, 15, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 15, 00, 15, 00, 15, 15, 15, 00, 00, 15, 00 ,15, 00, 00, 15, 00, 15, 00, 15, 00, 15, 00, 00, 00, 00, 15, 00, 00, 15, 15, 15, 00, 00, 15, 00, 00, 00, 00, 15, 00, 15, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00, 00, 00, 00, 00, 00, 00, 00, 00, 15, 15 ,15, 00, 00, 15, 00, 15, 00, 15, 15, 15, 00, 00, 00, 00, 15, 00, 00, 15, 00, 15, 00, 15, 15, 15, 00, 00, 00, 00, 15, 00, 00, 15, 00, 00, 15, 00, 00, 00, 00, 00, 00, 00, 00, 00, 15, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 ,00, 00, 00, 00, 00, 00, 00, 00, 00, 15, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 15, 15, 15, 15, 00, 00, 00, 00, 00, 00, 00, 00, 15, 00, 15, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 15 ,00, 00, 00, 00, 00, 00, 00, 15, 15, 00, 00, 15, 15, 00, 00, 15, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00, 00, 00, 00, 00, 00, 00, 00, 00, 15, 00 ,00, 15, 00, 15, 00, 00, 00, 00, 00, 00, 00, 15, 00, 15, 00, 00, 15, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 15, 00, 00, 00, 00, 15, 15, 00, 15, 00, 15, 00, 15, 00, 15, 00, 15, 15, 15, 00, 15, 15, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 15, 15, 15, 00, 15, 00, 15, 00, 00, 00, 00 ,00, 00, 15, 00, 00, 00, 00, 00, 00, 00, 00, 15, 15, 00, 00, 00, 00, 00, 00, 15, 00, 15, 00, 00, 00, 00, 00, 15, 15, 00, 00, 15, 00, 00, 00, 15, 00, 15, 00, 00, 15, 00, 00, 15, 15, 00, 00, 15, 00, 15, 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00, 15, 00, 00, 15, 15, 15, 00, 15, 00, 15 ,00, 00, 15, 00, 00, 00, 00, 00, 00, 00, 00, 15, 00, 15, 00, 00, 15, 00, 15, 00, 15, 15, 15, 00, 00, 00, 00, 15, 00, 15, 00, 15, 15, 15, 00, 15, 00, 15, 00, 00, 15, 00, 00, 15, 00, 00, 00, 15, 00, 15, 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00, 15, 00, 00, 15, 00, 15, 00, 15, 15, 15 ,00, 00, 15, 00, 00, 00, 00, 00, 00, 00, 00, 15, 15, 00, 00, 00, 15, 00, 15, 00, 15, 15, 00, 15, 00, 00, 00, 15, 00, 15, 00, 00, 15, 15, 00, 00, 15, 15, 00, 00, 15, 00, 00, 15, 15, 15, 00, 15, 00, 15, 00, 00, 00, 00, 00, 00, 00, 00, 00, 18 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 05, 05, 05, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 05, 00, 00, 00, 05, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 05, 00, 00, 00, 15, 00, 05, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 05, 00, 00, 00, 00, 15, 05, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 05, 00, 00, 00, 00, 00, 05, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 05, 00, 00, 00, 05, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 05, 05, 05, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 18 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 00, 17 DB 00 , 00, 00, 00, 00, 00, 12, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 12, 12, 00, 17 DB 00 , 00, 00, 00, 00, 12, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 12, 00, 12, 00, 17 DB 00 , 00, 00, 00, 12, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 12, 00, 00, 12, 00, 17 DB 00 , 00, 00, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 00, 00, 00, 12, 00, 17 DB 00 , 00, 00, 12, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 12, 00, 00, 00, 12, 00, 17 DB 00 , 00, 00, 12, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 12, 00, 00, 00, 12, 00, 17 DB 00 , 00, 00, 12, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 12, 00, 00, 00, 12, 00, 17 DB 00 , 00, 00, 12, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 12, 00, 00, 00, 12, 00, 17 DB 00 , 00, 00, 12, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 10, 00, 00, 00, 00, 00, 12, 00, 00, 00, 12, 00, 17 DB 00 , 00, 00, 12, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 10, 00, 00, 00, 00, 00, 00, 12, 00, 00, 00, 12, 00, 17 DB 00 , 00, 00, 12, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 10, 00, 00, 00, 00, 00, 00, 00, 12, 00, 00, 00, 12, 00, 17 DB 00 , 00, 00, 12, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 12, 00, 00, 00, 12, 00, 17 DB 00 , 00, 00, 12, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 12, 00, 00, 00, 12, 00, 17 DB 00 , 00, 00, 12, 00, 00, 10, 10, 00, 10, 00, 10, 00, 10, 00, 10, 00, 10, 10, 00, 00, 00, 12, 00, 00, 00, 12, 00, 17 DB 00 , 00, 00, 12, 00, 10, 00, 00, 00, 10, 00, 10, 00, 10, 00, 10, 00, 10, 00, 10, 00, 00, 12, 00, 00, 00, 12, 00, 17 DB 00 , 00, 00, 12, 00, 10, 00, 00, 00, 10, 10, 10, 00, 10, 00, 10, 00, 10, 00, 10, 00, 00, 12, 00, 00, 00, 12, 00, 17 DB 00 , 00, 00, 12, 00, 10, 00, 00, 00, 10, 00, 10, 00, 10, 00, 10, 00, 10, 10, 10, 00, 00, 12, 00, 00, 12, 00, 00, 17 DB 00 , 00, 00, 12, 00, 00, 10, 10, 00, 10, 00, 10, 00, 00, 10, 10, 00, 10, 00, 10, 00, 00, 12, 00, 12, 00, 00, 00, 17 DB 00 , 00, 00, 12, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 12, 12, 00, 00, 00, 00, 17 DB 00 , 00, 00, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 18 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 14, 00, 14, 14, 14, 14, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 14, 00, 00, 00, 00, 17 DB 00 , 00, 14, 00, 14, 00, 00, 00, 14, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 14, 14, 00, 00, 00, 17 DB 00 , 00, 00, 14, 14, 00, 00, 00, 14, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 14, 14, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 14, 00, 00, 00, 14, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 14, 14, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 14, 00, 00, 00, 14, 00, 00, 00, 14, 14, 14, 00, 00, 00, 00, 00, 14, 00, 14, 14, 00, 00, 00, 17 DB 00 , 00, 00, 00, 14, 14, 00, 00, 00, 14, 00, 00, 14, 00, 00, 00, 14, 14, 00, 00, 14, 00, 00, 14, 14, 00, 00, 00, 17 DB 00 , 00, 00, 14, 00, 14, 14, 00, 14, 00, 00, 00, 14, 00, 00, 00, 14, 00, 14, 14, 14, 00, 00, 00, 14, 00, 00, 00, 17 DB 00 , 00, 00, 14, 14, 00, 00, 14, 14, 00, 00, 00, 14, 00, 00, 00, 14, 00, 00, 00, 14, 00, 00, 00, 14, 00, 00, 00, 17 DB 00 , 00, 00, 00, 14, 00, 00, 14, 00, 00, 00, 14, 00, 14, 00, 14, 00, 00, 00, 00, 14, 00, 00, 00, 14, 00, 14, 00, 17 DB 00 , 00, 00, 14, 00, 14, 14, 00, 14, 14, 14, 00, 00, 00, 14, 00, 00, 00, 00, 00, 00, 14, 14, 14, 00, 14, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 18 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 14, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 14, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 14, 14, 14, 00, 00, 00, 00, 17 DB 00 , 14, 14, 14, 14, 14, 14, 14, 00, 00, 17 DB 00 , 00, 00, 14, 14, 14, 00, 00, 00, 00, 17 DB 00 , 00, 00, 14, 14, 14, 00, 00, 00, 00, 17 DB 00 , 00, 14, 00, 00, 00, 14, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 18 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 14, 00, 00, 14, 00, 14, 00, 14, 00, 14, 14, 14, 00, 00, 14, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 14, 00, 14, 00, 00, 14, 00, 14, 00, 14, 00, 14, 00, 14, 00, 14, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 14, 14, 00, 00, 00, 14, 14, 14, 00, 14, 00, 14, 00, 14, 14, 14, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 14, 00, 14, 00, 00, 14, 00, 14, 00, 14, 00, 14, 00, 14, 00, 14, 00, 00, 00, 00, 14, 00, 00, 00, 00, 00, 00, 17 DB 00 , 14, 00, 00, 14, 00, 14, 00, 14, 00, 14, 14, 14, 00, 14, 00, 14, 00, 00, 00, 14, 00, 14, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 14, 00, 00, 14, 14, 14, 00, 14, 00, 14, 00, 14, 00, 14, 00, 14, 00, 14, 00, 14, 14, 14, 00, 14, 14, 00, 00, 17 DB 14 , 14, 00, 00, 00, 14, 00, 00, 14, 00, 14, 00, 14, 00, 14, 00, 14, 00, 14, 00, 14, 00, 00, 00, 14, 00, 14, 00, 17 DB 00 , 14, 00, 00, 00, 14, 00, 00, 14, 14, 14, 00, 14, 00, 14, 00, 14, 14, 14, 00, 14, 14, 00, 00, 14, 00, 14, 00, 17 DB 00 , 14, 00, 00, 00, 14, 00, 00, 14, 00, 14, 00, 14, 00, 14, 00, 00, 14, 00, 00, 14, 00, 00, 00, 14, 00, 14, 00, 17 DB 00 , 14, 00, 14, 00, 14, 00, 00, 14, 00, 14, 00, 14, 14, 14, 00, 00, 14, 00, 00, 14, 14, 14, 00, 14, 00, 14, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 14, 00, 00, 00, 00, 14, 14, 14, 00, 14, 00, 14, 00, 14, 14, 14, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 14 , 00, 14, 00, 00, 00, 00, 14, 00, 00, 14, 00, 14, 00, 00, 14, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 14, 00, 00, 00, 00, 14, 00, 00, 14, 14, 14, 00, 00, 14, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 14, 00, 00, 00, 00, 00, 14, 00, 00, 14, 00, 14, 00, 00, 14, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 14 , 14, 14, 00, 14, 00, 00, 14, 00, 00, 14, 00, 14, 00, 14, 14, 14, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 17 DB 00 , 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 18 DB 0,0,0,0,0,17 DB 0,0,0,0,0,17 DB 0,0,0,0,0,17 DB 0,0,0,0,0,17 DB 0,0,0,0,0,18 DB 0,0,0,0,0,17 DB 0,0,1,0,0,17 DB 0,1,0,1,0,17 DB 0,1,1,1,0,17 DB 0,1,0,1,0,17 DB 0,1,0,1,0,17 DB 0,0,0,0,0,18 DB 0,0,0,0,0,17 DB 0,1,1,0,0,17 DB 0,1,0,1,0,17 DB 0,1,1,0,0,17 DB 0,1,0,1,0,17 DB 0,1,1,0,0,17 DB 0,0,0,0,0,18 DB 0,0,0,0,0,17 DB 0,0,1,0,0,17 DB 0,1,0,1,0,17 DB 0,1,0,0,0,17 DB 0,1,0,1,0,17 DB 0,0,1,0,0,17 DB 0,0,0,0,0,18 DB 0,0,0,0,0,17 DB 0,1,1,0,0,17 DB 0,1,0,1,0,17 DB 0,1,0,1,0,17 DB 0,1,0,1,0,17 DB 0,1,1,0,0,17 DB 0,0,0,0,0,18 DB 0,0,0,0,0,17 DB 0,1,1,1,0,17 DB 0,1,0,0,0,17 DB 0,1,1,0,0,17 DB 0,1,0,0,0,17 DB 0,1,1,1,0,17 DB 0,0,0,0,0,18 DB 0,0,0,0,0,17 DB 0,1,1,1,0,17 DB 0,1,0,0,0,17 DB 0,1,1,0,0,17 DB 0,1,0,0,0,17 DB 0,1,0,0,0,17 DB 0,0,0,0,0,18 DB 0,0,0,0,0,17 DB 0,0,1,1,0,17 DB 0,1,0,0,0,17 DB 0,1,0,1,0,17 DB 0,1,0,1,0,17 DB 0,0,1,1,0,17 DB 0,0,0,0,0,18 DB 0,0,0,0,0,17 DB 0,1,0,1,0,17 DB 0,1,0,1,0,17 DB 0,1,1,1,0,17 DB 0,1,0,1,0,17 DB 0,1,0,1,0,17 DB 0,0,0,0,0,18 DB 0,0,0,0,0,17 DB 0,1,1,1,0,17 DB 0,0,1,0,0,17 DB 0,0,1,0,0,17 DB 0,0,1,0,0,17 DB 0,1,1,1,0,17 DB 0,0,0,0,0,18 DB 0,0,0,0,0,17 DB 0,0,1,1,0,17 DB 0,0,0,1,0,17 DB 0,0,0,1,0,17 DB 0,1,0,1,0,17 DB 0,0,1,0,0,17 DB 0,0,0,0,0,18 DB 0,0,0,0,0,17 DB 0,1,0,1,0,17 DB 0,1,0,1,0,17 DB 0,1,1,0,0,17 DB 0,1,0,1,0,17 DB 0,1,0,1,0,17 DB 0,0,0,0,0,18 DB 0,0,0,0,0,17 DB 0,1,0,0,0,17 DB 0,1,0,0,0,17 DB 0,1,0,0,0,17 DB 0,1,0,0,0,17 DB 0,1,1,1,0,17 DB 0,0,0,0,0,18 DB 0,0,0,0,0,0,0,17 DB 0,1,0,0,0,1,0,17 DB 0,1,1,0,1,1,0,17 DB 0,1,0,1,0,1,0,17 DB 0,1,0,0,0,1,0,17 DB 0,1,0,0,0,1,0,17 DB 0,0,0,0,0,0,0,18 DB 0,0,0,0,0,0,0,17 DB 0,1,0,0,0,1,0,17 DB 0,1,1,0,0,1,0,17 DB 0,1,0,1,0,1,0,17 DB 0,1,0,0,1,1,0,17 DB 0,1,0,0,0,1,0,17 DB 0,0,0,0,0,0,0,18 DB 0,0,0,0,0,0,0,17 DB 0,0,1,1,1,0,0,17 DB 0,1,0,0,0,1,0,17 DB 0,1,0,0,0,1,0,17 DB 0,1,0,0,0,1,0,17 DB 0,0,1,1,1,0,0,17 DB 0,0,0,0,0,0,0,18 DB 0,0,0,0,0,0,0,17 DB 0,1,1,1,1,0,0,17 DB 0,1,0,0,0,1,0,17 DB 0,1,1,1,1,0,0,17 DB 0,1,0,0,0,0,0,17 DB 0,1,0,0,0,0,0,17 DB 0,0,0,0,0,0,0,18 DB 0,0,0,0,0,0,0,17 DB 0,0,1,1,1,0,0,17 DB 0,1,0,0,0,1,0,17 DB 0,1,0,0,0,1,0,17 DB 0,0,1,1,1,0,0,17 DB 0,0,0,0,0,1,0,17 DB 0,0,0,0,0,0,0,18 DB 0,0,0,0,0,0,0,17 DB 0,1,1,1,1,0,0,17 DB 0,1,0,0,0,1,0,17 DB 0,1,0,0,0,1,0,17 DB 0,1,1,1,1,0,0,17 DB 0,1,0,0,0,1,0,17 DB 0,0,0,0,0,0,0,18 DB 0,0,0,0,0,0,0,17 DB 0,0,1,1,1,0,0,17 DB 0,1,0,0,0,0,0,17 DB 0,0,1,1,1,0,0,17 DB 0,0,0,0,0,1,0,17 DB 0,0,1,1,1,0,0,17 DB 0,0,0,0,0,0,0,18 DB 0,0,0,0,0,0,0,17 DB 0,1,1,1,1,1,0,17 DB 0,0,0,1,0,0,0,17 DB 0,0,0,1,0,0,0,17 DB 0,0,0,1,0,0,0,17 DB 0,0,0,1,0,0,0,17 DB 0,0,0,0,0,0,0,18 DB 0,0,0,0,0,0,0,17 DB 0,1,0,0,1,0,0,17 DB 0,1,0,0,1,0,0,17 DB 0,1,0,0,1,0,0,17 DB 0,1,0,0,1,0,0,17 DB 0,0,1,1,0,1,0,17 DB 0,0,0,0,0,0,0,18 DB 0,0,0,0,0,0,0,17 DB 0,1,0,0,0,1,0,17 DB 0,1,0,0,0,1,0,17 DB 0,1,0,0,0,1,0,17 DB 0,0,1,0,1,0,0,17 DB 0,0,0,1,0,0,0,17 DB 0,0,0,0,0,0,0,18 DB 0,0,0,0,0,0,0,17 DB 0,1,0,0,0,1,0,17 DB 0,1,0,0,0,1,0,17 DB 0,1,0,1,0,1,0,17 DB 0,1,0,1,0,1,0,17 DB 0,0,1,0,1,0,0,17 DB 0,0,0,0,0,0,0,18 DB 0,0,0,0,0,0,0,17 DB 0,1,0,0,0,1,0,17 DB 0,0,1,0,1,0,0,17 DB 0,0,0,1,0,0,0,17 DB 0,0,1,0,1,0,0,17 DB 0,1,0,0,0,1,0,17 DB 0,0,0,0,0,0,0,18 DB 0,0,0,0,0,0,0,17 DB 0,1,0,0,0,1,0,17 DB 0,0,1,0,1,0,0,17 DB 0,0,0,1,0,0,0,17 DB 0,0,0,1,0,0,0,17 DB 0,0,0,1,0,0,0,17 DB 0,0,0,0,0,0,0,18 DB 0,0,0,0,0,0,0,17 DB 0,1,1,1,1,1,0,17 DB 0,0,0,0,1,0,0,17 DB 0,0,0,1,0,0,0,17 DB 0,0,1,0,0,0,0,17 DB 0,1,1,1,1,1,0,17 DB 0,0,0,0,0,0,0,18 numbre0: DB 0,0,0,0,0,0,0,17 DB 0,0,0,1,0,0,0,17 DB 0,0,1,0,1,0,0,17 DB 0,0,1,0,1,0,0,17 DB 0,0,1,0,1,0,0,17 DB 0,0,0,1,0,0,0,17 DB 0,0,0,0,0,0,0,18 DB 0,0,0,0,0,17 DB 0,0,1,0,0,17 DB 0,1,1,0,0,17 DB 0,0,1,0,0,17 DB 0,0,1,0,0,17 DB 0,0,1,0,0,17 DB 0,0,0,0,0,18 DB 0,0,0,0,0,0,0,17 DB 0,0,1,1,1,0,0,17 DB 0,0,0,0,0,1,0,17 DB 0,0,0,1,1,0,0,17 DB 0,0,1,0,0,0,0,17 DB 0,1,1,1,1,1,0,17 DB 0,0,0,0,0,0,0,18 DB 0,0,0,0,0,0,0,17 DB 0,1,1,1,1,1,0,17 DB 0,0,0,0,1,0,0,17 DB 0,0,0,1,0,1,0,17 DB 0,1,0,0,0,1,0,17 DB 0,0,1,1,1,0,0,17 DB 0,0,0,0,0,0,0,18 DB 0,0,0,0,0,0,0,17 DB 0,0,0,0,1,0,0,17 DB 0,0,0,1,1,0,0,17 DB 0,0,1,0,1,0,0,17 DB 0,1,1,1,1,1,0,17 DB 0,0,0,0,1,0,0,17 DB 0,0,0,0,0,0,0,18 DB 0,0,0,0,0,0,0,17 DB 0,1,1,1,1,1,0,17 DB 0,1,0,0,0,0,0,17 DB 0,1,1,1,1,0,0,17 DB 0,0,0,0,1,0,0,17 DB 0,0,1,1,1,0,0,17 DB 0,0,0,0,0,0,0,18 DB 0,0,0,0,0,0,0,17 DB 0,0,1,1,1,0,0,17 DB 0,1,0,0,0,0,0,17 DB 0,1,1,1,1,0,0,17 DB 0,1,0,0,0,1,0,17 DB 0,0,1,1,1,0,0,17 DB 0,0,0,0,0,0,0,18 DB 0,0,0,0,0,0,17 DB 0,1,1,1,1,0,17 DB 0,0,0,1,0,0,17 DB 0,0,1,0,0,0,17 DB 0,0,1,0,0,0,17 DB 0,0,1,0,0,0,17 DB 0,0,0,0,0,0,18 DB 0,0,0,0,0,0,0,17 DB 0,0,1,1,1,0,0,17 DB 0,0,1,0,1,0,0,17 DB 0,0,1,1,1,0,0,17 DB 0,1,0,0,0,1,0,17 DB 0,0,1,1,1,0,0,17 DB 0,0,0,0,0,0,0,18 DB 0,0,0,0,0,0,0,17 DB 0,0,1,1,1,0,0,17 DB 0,1,0,0,0,1,0,17 DB 0,0,1,1,1,1,0,17 DB 0,0,0,0,0,1,0,17 DB 0,0,0,1,1,0,0,17 DB 0,0,0,0,0,0,0,18 DB 0,0,0,0,0,17 DB 0,0,0,0,0,17 DB 0,0,0,0,0,17 DB 0,0,0,0,0,17 DB 0,0,0,0,0,18 DB 0,0,0,0,0,0,0,0,17 DB 0,0,0,0,1,0,0,0,17 DB 0,0,1,0,0,1,0,0,17 DB 0,1,0,1,0,0,0,0,17 DB 0,0,0,0,0,0,0,0,17 DB 0,0,0,1,0,0,0,0,17 DB 0,0,1,0,1,0,0,0,17 DB 0,0,1,1,1,0,0,0,17 DB 0,0,1,0,1,0,0,0,17 DB 0,0,0,0,0,0,0,0,18 DB 0,0,0,0,0,0,0,0,17 DB 0,1,0,0,0,1,0,0,17 DB 0,0,1,1,1,0,0,0,17 DB 0,0,0,0,0,0,0,0,17 DB 0,0,0,1,0,0,0,0,17 DB 0,0,1,0,1,0,0,0,17 DB 0,0,1,1,1,0,0,0,17 DB 0,0,1,0,1,0,0,0,17 DB 0,0,0,0,0,0,0,0,18 DB 0,0,0,0,0,0,0,0,17 DB 0,0,1,0,0,0,0,0,17 DB 0,0,0,1,0,0,0,0,17 DB 0,0,0,0,0,0,0,0,17 DB 0,0,0,1,0,0,0,0,17 DB 0,0,1,0,1,0,0,0,17 DB 0,0,1,1,1,0,0,0,17 DB 0,0,1,0,1,0,0,0,17 DB 0,0,0,0,0,0,0,0,18 DB 0,0,0,0,0,0,0,17 DB 0,0,0,0,0,1,0,17 DB 0,1,0,0,1,0,0,17 DB 0,1,0,0,1,0,0,17 DB 0,1,0,0,1,0,0,17 DB 0,0,1,1,0,0,0,17 DB 0,0,0,0,0,0,0,18 DB 0,0,0,0,0,0,0,17 DB 0,0,0,0,0,1,0,17 DB 0,0,1,1,1,0,0,17 DB 0,1,0,0,0,1,0,17 DB 0,1,0,0,0,1,0,17 DB 0,0,1,1,1,0,0,17 DB 0,0,0,0,0,0,0,18 DB 0,0,0,0,0,0,0,17 DB 0,0,1,1,0,1,0,17 DB 0,1,0,0,1,0,0,17 DB 0,0,0,0,0,0,0,17 DB 0,1,0,0,0,1,0,17 DB 0,1,0,0,0,1,0,17 DB 0,0,1,1,1,0,0,17 DB 0,0,0,0,0,0,0,18 DB 0,0,0,0,0,0,0,17 DB 0,0,1,1,0,1,0,17 DB 0,1,0,0,1,0,0,17 DB 0,0,0,0,0,0,0,17 DB 0,0,0,1,0,0,0,17 DB 0,0,1,0,1,0,0,17 DB 0,1,0,0,0,1,0,17 DB 0,0,0,0,0,0,0,17 DB 0,1,1,1,1,1,0,17 DB 0,1,0,0,0,0,0,17 DB 0,1,1,1,1,0,0,17 DB 0,1,0,0,0,0,0,17 DB 0,1,1,1,1,1,0,17 DB 0,0,0,0,0,0,0,18 DB 0,0,0,0,0,0,17 DB 0,1,0,0,0,0,17 DB 0,0,1,0,0,0,17 DB 0,0,0,0,0,0,17 DB 0,0,0,1,0,0,17 DB 0,0,0,1,0,0,17 DB 0,0,1,1,1,0,17 DB 0,0,0,0,0,0,18 DB 0,0,0,0,0,0,0,17 DB 0,0,0,0,1,0,0,17 DB 0,0,0,1,0,0,0,17 DB 0,1,0,0,0,1,0,17 DB 0,1,0,0,0,1,0,17 DB 0,0,1,1,1,0,0,17 DB 0,0,0,0,0,0,0,18 DB 0,0,0,0,0,0,0,17 DB 0,0,0,0,1,0,0,17 DB 0,0,0,1,0,1,0,17 DB 0,0,0,0,0,0,0,17 DB 0,1,1,1,1,1,0,17 DB 0,1,0,0,0,0,0,17 DB 0,1,1,1,1,0,0,17 DB 0,1,0,0,0,0,0,17 DB 0,1,1,1,1,1,0,17 DB 0,0,0,0,0,0,0,18 DB 0,0,0,0,0,0,0,17 DB 0,0,0,0,1,0,0,17 DB 0,0,1,0,0,1,0,17 DB 0,1,0,1,0,0,0,17 DB 0,0,0,0,0,0,0,17 DB 0,0,1,1,1,0,0,17 DB 0,1,0,0,0,1,0,17 DB 0,1,0,0,0,1,0,17 DB 0,1,0,0,0,1,0,17 DB 0,0,1,1,1,0,0,17 DB 0,0,0,0,0,0,0,18 DB 0,0,0,0,0,17 DB 0,1,1,1,0,17 DB 0,0,1,0,0,17 DB 0,1,1,1,0,17 DB 0,0,0,0,0,17 DB 0,0,1,0,0,17 DB 0,0,0,0,0,18 DB 0,0,0,0,0,0,0,17 DB 0,0,0,0,0,1,0,17 DB 0,0,0,0,1,0,0,17 DB 0,0,0,1,0,0,0,17 DB 0,0,0,0,0,0,0,17 DB 0,0,0,1,0,0,0,17 DB 0,0,1,0,1,0,0,17 DB 0,0,0,0,0,0,0,17 DB 0,1,1,1,1,1,0,17 DB 0,1,0,0,0,0,0,17 DB 0,1,1,1,1,0,0,17 DB 0,1,0,0,0,0,0,17 DB 0,1,1,1,1,1,0,17 DB 0,0,0,0,0,0,0,18 DB 0,0,0,0,0,0,0,0,0,17 DB 0,0,0,0,0,0,0,0,0,17 DB 0,0,1,0,1,0,1,0,0,17 DB 0,0,0,0,1,0,0,0,0,17 DB 0,0,1,1,0,1,1,0,0,17 DB 0,0,0,0,1,0,0,0,0,17 DB 0,0,1,0,1,0,1,0,0,17 DB 0,0,0,0,0,0,0,0,0,17 DB 0,0,0,0,0,0,0,0,0,18 _datastorage ENDP _calcbx PROC push ax push bx push cx push dx push ds push si push es push di mov cx, entryx cmp cx, 320 jl bypasstn mov cx, 319 mov entryx, cx bypasstn: mov dx, entryy cmp dx, 200 jl bypasstn2 mov dx, 199 mov entryy, dx bypasstn2: mov ax, entryy mov dx, 0 mov bx, 320 clc mul bx mov cx, entryx clc adc ax, cx mov resultantxy, ax pop di pop es pop si pop ds pop dx pop cx pop bx pop ax ret entryx DW 0 entryy DW 0 resultantxy DW 0 _calcbx ENDP _clringbuffer PROC push ax push bx push cx push dx push ds push si push es push di mov ax, SEG (04000h:0) mov es, ax mov ax, OFFSET (04000h:0) mov di, ax mov cx, 1000 mov al, 13 clringbufferrpt: mov bx, cx mov byte ptr es:[di+bx], al loop clringbufferrpt pop di pop es pop si pop ds pop dx pop cx pop bx pop ax ret _clringbuffer ENDP _spiralout PROC push ax push bx push cx push dx push ds push si push es push di mov ax, SEG (05000h:0) mov es, ax mov ax, OFFSET (05000h:0) mov di, ax mov ah, 0ch mov cx, tempx mov dx, tempy spiraling: mov entryx, cx mov entryy, dx call _calcbx mov bx, resultantxy mov al, byte ptr es:[di+bx] call _delay int 10h inc cx cmp cx, tempxe jl spiraling spiralingb: mov entryx, cx mov entryy, dx call _calcbx mov bx, resultantxy mov al, byte ptr es:[di+bx] call _delay int 10h inc dx cmp dx, tempye jl spiralingb spiralingc: mov entryx, cx mov entryy, dx call _calcbx mov bx, resultantxy mov al, byte ptr es:[di+bx] call _delay int 10h dec cx cmp cx, tempxs jg spiralingc spiralingd: mov entryx, cx mov entryy, dx call _calcbx mov bx, resultantxy mov al, byte ptr es:[di+bx] call _delay int 10h dec dx cmp dx, tempys jg spiralingd inc dx mov bx, tempxs inc bx mov tempxs, bx cmp bx, 101 jl spiralz jmp exitspiraling spiralz: mov bx, tempxe dec bx mov tempxe, bx mov bx, tempys inc bx mov tempys, bx mov bx, tempye dec bx mov tempye, bx jmp spiraling exitspiraling: pop di pop es pop si pop ds pop dx pop cx pop bx pop ax ret tempx DW 0 tempxs DW 0 tempxe DW 320 tempy DW 0 tempys DW 0 tempye DW 200 _spiralout ENDP _phase PROC push ax push bx push cx push dx push ds push si push es push di mov dx, 50 mov cx, 320 mov al, 13 mov ah, 0ch repb1: int 10h loop repb1 mov bx, 50 repp1: mov ax, SEG (0a000h:320+160) mov ds, ax mov ax, OFFSET (0a000h:320+160) mov si, ax mov ax, SEG (0a000h:160) mov es, ax mov ax, OFFSET (0a000h:160) mov di, ax call _delay mov dx, 50 repc1: mov cx, 80 movswrep: movsw loop movswrep clc adc si, 160 clc adc di, 160 dec dx jnz repc1 dec bx jnz repp1 mov dx, 100 mov cx, 320 mov al, 13 mov ah, 0ch repb2: int 10h loop repb2 int 10h mov bx, 50 repp2: mov ax, SEG (0a000h:(320*50)+320) mov ds, ax mov ax, OFFSET (0a000h:(320*50)+320) mov si, ax mov ax, SEG (0a000h:(320*50)) mov es, ax mov ax, OFFSET (0a000h:(320*50)) mov di, ax call _delay mov cx, 160*50 movswrep2: movsw loop movswrep2 dec bx jnz repp2 mov dx, 150 mov cx, 320 mov al, 13 mov ah, 0ch repb3: int 10h loop repb3 int 10h mov bx, 50 repp3: mov ax, SEG (0a000h:(320*100)+320) mov ds, ax mov ax, OFFSET (0a000h:(320*100)+320) mov si, ax mov ax, SEG (0a000h:(320*100)) mov es, ax mov ax, OFFSET (0a000h:(320*100)) mov di, ax call _delay mov cx, 160*50 movswrep3: movsw loop movswrep3 dec bx jnz repp3 mov dx, 200 mov cx, 320 mov al, 13 mov ah, 0ch repb4: int 10h loop repb4 int 10h mov bx, 50 repp4: mov ax, SEG (0a000h:(320*150)+320) mov ds, ax mov ax, OFFSET (0a000h:(320*150)+320) mov si, ax mov ax, SEG (0a000h:(320*150)) mov es, ax mov ax, OFFSET (0a000h:(320*150)) mov di, ax call _delay mov cx, 160*50 movswrep4: movsw loop movswrep4 dec bx jnz repp4 pop di pop es pop si pop ds pop dx pop cx pop bx pop ax ret _phase ENDP _TienKNguyen PROC push ax push bx push cx push dx push ds push si push es push di call _calcdim call _blockoutprevious mov ax, 15 mov dimxstart, ax mov ax, 320-50 mov dimxend, ax mov ax, 35 mov dimystart, ax mov ax, 150 mov dimyend, ax bpolling: mov ah, 1 int 16h jnz bkeyed jmp bpolling bkeyed: mov ah, 0 int 16h bcmpa: cmp ah, 30 jne bcmpd cmp al, 97 jne bcmpd mov ax, currentx cmp ax, dimxstart jle skipbcmpa mov bx, xlen clc sbb ax, bx cmp ax, dimxstart jl skipbcmpa mov currentx, ax call _switch skipbcmpa: jmp bdonecmp bcmpd: cmp ah, 32 jne bcmpw cmp al, 100 jne bcmpw mov ax, currentx cmp ax, dimxend jge skipbcmpd mov bx, xlen clc adc ax, bx cmp ax, dimxend jg skipbcmpd mov currentx, ax call _switch skipbcmpd: jmp bdonecmp bcmpw: cmp ah, 17 jne bcmpds cmp al, 119 jne bcmpds mov ax, currenty cmp ax, dimystart jle skipbcmpw mov bx, ylen clc sbb ax, bx cmp ax, dimystart jl skipbcmpw mov currenty, ax call _switch skipbcmpw: jmp bdonecmp bcmpds: cmp ah, 31 jne bcmpcolor cmp al, 115 jne bcmpcolor mov ax, currenty cmp ax, dimyend jge skipbcmpds mov bx, ylen clc adc ax, bx cmp ax, dimyend jg skipbcmpds mov currenty, ax call _switch skipbcmpds: jmp bdonecmp bcmpcolor: cmp ah, 46 jne bcmpspace cmp al, 99 jne bcmpspace jmp bdonecmp bcmpspace: cmp ah, 57 jne bcmpq cmp al, 32 jne bcmpq call _autoshuffleboard jmp bdonecmp bcmpq: cmp ah, 16 jne bdonecmp cmp al, 113 jne bdonecmp jmp bexitroutine bdonecmp: jmp bpolling bexitroutine: pop di pop es pop si pop ds pop dx pop cx pop bx pop ax ret currentx DW 15 currenty DW 35 previousx DW 15 previousy DW 35 autokey DB 1,3,4,2,4,2,1,1,2,3,3,3,4,1,3,1,4,2,2,1,1,1,1,4,3,2,3,4,2,3,4,1,1,2,3,4 DB 3,3,3,3,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,3,4,2,4,4,4,1,2,3,4,4,3,2,1,2,3,4,3,3 DB 0 keyposition DW 0 _TienKNguyen ENDP _autoshuffleboard PROC push ax push bx push cx push dx push ds push si push es push di mov ax, SEG autokey mov es, ax mov ax, OFFSET autokey mov di, ax mov bx, 0 mov keyposition, bx continuingshuffle: mov bx, keyposition mov al, byte ptr es:[di+bx] inc bx mov keyposition, bx cmp al, 0 jne callingdirection jmp exitautoshuffle callingdirection: cmp al, 1 je shuffleright0 cmp al, 2 je shuffledown0 cmp al, 3 je shuffleup0 cmp al, 4 je shuffleleft0 jmp continuingshuffle shuffleright0: jmp shuffleright shuffledown0: jmp shuffledown shuffleup0: jmp shuffleup shuffleleft0: jmp shuffleleft shuffledown: mov ax, currenty cmp ax, dimyend jge skipccmpds mov bx, ylen clc adc ax, bx cmp ax, dimyend jg skipccmpds mov currenty, ax call _switch skipccmpds: jmp cdonecmp shuffleright: mov ax, currentx cmp ax, dimxend jge skipccmpd mov bx, xlen clc adc ax, bx cmp ax, dimxend jg skipccmpd mov currentx, ax call _switch skipccmpd: jmp cdonecmp shuffleleft: mov ax, currentx cmp ax, dimxstart jle skipccmpa mov bx, xlen clc sbb ax, bx cmp ax, dimxstart jl skipccmpa mov currentx, ax call _switch skipccmpa: jmp cdonecmp shuffleup: mov ax, currenty cmp ax, dimystart jle skipccmpw mov bx, ylen clc sbb ax, bx cmp ax, dimystart jl skipccmpw mov currenty, ax call _switch skipccmpw: jmp cdonecmp cdonecmp: jmp continuingshuffle exitautoshuffle: pop di pop es pop si pop ds pop dx pop cx pop bx pop ax ret _autoshuffleboard ENDP IGod0ADlovesTienKNguyenONLY DW 0 _switch PROC push ax push bx push cx push dx push ds push si push es push di call _previousbuffer call _currentbuffer call _recallprevioustocurrent call _recallcurrenttoprevious mov ax, currentx mov previousx, ax mov ax, currenty mov previousy, ax pop di pop es pop si pop ds pop dx pop cx pop bx pop ax ret _switch ENDP _previousbuffer PROC push ax push bx push cx push dx push ds push si push es push di mov ax, SEG (0a000h:0) mov ds, ax mov ax, OFFSET (0a000h:0) mov si, ax mov ax, SEG (04000h:0) mov es, ax mov ax, OFFSET (04000h:0) mov di, ax mov ax, previousx mov tempx, ax mov ax, xlen mov tempx2, ax mov ax, previousy mov tempy, ax mov ax, ylen mov tempy2, ax mov ax, 0 mov resultantxy, ax mov ah, 0dh mov cx, tempx mov dx, tempy unravelling: mov bx, resultantxy push bx mov entryx, cx mov entryy, dx call _calcbx mov bx, resultantxy mov al, byte ptr ds:[si+bx] pop bx mov resultantxy, bx mov bx, resultantxy inc bx mov resultantxy, bx mov byte ptr es:[di+bx], al inc cx mov bx, tempx2 dec bx mov tempx2, bx cmp bx, 0 jnz unravelling mov cx, previousx inc dx mov bx, xlen mov tempx2, bx mov bx, tempy2 dec bx mov tempy2, bx cmp bx, 0 jnz unravelling pop di pop es pop si pop ds pop dx pop cx pop bx pop ax ret tempx2 DW 0 tempy2 DW 0 _previousbuffer ENDP _currentbuffer PROC push ax push bx push cx push dx push ds push si push es push di mov ax, SEG (0a000h:0) mov ds, ax mov ax, OFFSET (0a000h:0) mov si, ax mov ax, SEG (04800h:0) mov es, ax mov ax, OFFSET (04800h:0) mov di, ax mov ax, currentx mov tempx, ax mov ax, xlen mov tempx2, ax mov ax, currenty mov tempy, ax mov ax, ylen mov tempy2, ax mov ax, 0 mov resultantxy, ax mov ah, 0dh mov cx, tempx mov dx, tempy unravellingcurrent: mov bx, resultantxy push bx mov entryx, cx mov entryy, dx call _calcbx mov bx, resultantxy mov al, byte ptr ds:[si+bx] pop bx mov resultantxy, bx mov bx, resultantxy inc bx mov resultantxy, bx mov byte ptr es:[di+bx], al inc cx mov bx, tempx2 dec bx mov tempx2, bx cmp bx, 0 jnz unravellingcurrent mov cx, currentx inc dx mov bx, xlen mov tempx2, bx mov bx, tempy2 dec bx mov tempy2, bx cmp bx, 0 jnz unravellingcurrent pop di pop es pop si pop ds pop dx pop cx pop bx pop ax ret _currentbuffer ENDP _calcdim PROC push ax push bx push cx push dx push ds push si push es push di mov ax, dimxstart mov bx, dimxend clc sbb bx, ax mov xlen, bx mov ax, dimystart mov bx, dimyend clc sbb bx, ax mov ylen, bx mov ax, xlen mov bx, nparts mov dx, 0 clc div bx mov xlen, ax mov ax, ylen mov bx, nparts mov dx, 0 clc div bx mov ylen, ax pop di pop es pop si pop ds pop dx pop cx pop bx pop ax ret dimxstart DW 0 dimxend DW 200 dimystart DW 0 dimyend DW 150 nparts DW 5 xlen DW 0 ylen DW 0 _calcdim ENDP _blockoutprevious PROC push ax push bx push cx push dx push ds push si push es push di mov ax, SEG (0a000h:0) mov es, ax mov ax, OFFSET (0a000h:0) mov di, ax mov ax, xlen mov tempx2, ax mov ax, ylen mov tempy2, ax mov cx, previousx mov dx, previousy mov al, 1 blockingoutprevious: push bx mov entryx, cx mov entryy, dx call _calcbx mov bx, resultantxy mov byte ptr es:[di+bx], al pop bx inc cx mov bx, tempx2 dec bx mov tempx2, bx cmp bx, 0 jg blockingoutprevious mov cx, previousx inc dx mov bx, xlen mov tempx2, bx mov bx, tempy2 dec bx mov tempy2, bx cmp bx, 0 jg blockingoutprevious pop di pop es pop si pop ds pop dx pop cx pop bx pop ax ret _blockoutprevious ENDP _recallprevioustocurrent PROC push ax push bx push cx push dx push ds push si push es push di mov ax, SEG (0a000h:0) mov ds, ax mov ax, OFFSET (0a000h:0) mov si, ax mov ax, SEG (04000h:0) mov es, ax mov ax, OFFSET (04000h:0) mov di, ax mov ax, currentx mov tempx, ax mov ax, xlen mov tempx2, ax mov ax, currenty mov tempy, ax mov ax, ylen mov tempy2, ax mov ax, 0 mov resultantxy, ax mov ah, 0ch mov cx, tempx mov dx, tempy unravellingcurrent2: mov bx, resultantxy inc bx mov resultantxy, bx mov al, byte ptr es:[di+bx] mov bx, resultantxy push bx mov entryx, cx mov entryy, dx call _calcbx mov bx, resultantxy mov byte ptr ds:[si+bx], al pop bx mov resultantxy, bx inc cx mov bx, tempx2 dec bx mov tempx2, bx cmp bx, 0 jnz unravellingcurrent2 mov cx, currentx inc dx mov bx, xlen mov tempx2, bx mov bx, tempy2 dec bx mov tempy2, bx cmp bx, 0 jnz unravellingcurrent2 pop di pop es pop si pop ds pop dx pop cx pop bx pop ax ret _recallprevioustocurrent ENDP _recallcurrenttoprevious PROC push ax push bx push cx push dx push ds push si push es push di mov ax, SEG (0a000h:0) mov ds, ax mov ax, OFFSET (0a000h:0) mov si, ax mov ax, SEG (04800h:0) mov es, ax mov ax, OFFSET (04800h:0) mov di, ax mov ax, previousx mov tempx, ax mov ax, xlen mov tempx2, ax mov ax, previousy mov tempy, ax mov ax, ylen mov tempy2, ax mov ax, 0 mov resultantxy, ax mov ah, 0ch mov cx, tempx mov dx, tempy unravellingprevious: mov bx, resultantxy inc bx mov resultantxy, bx mov al, byte ptr es:[di+bx] mov bx, resultantxy push bx mov entryx, cx mov entryy, dx call _calcbx mov bx, resultantxy mov byte ptr ds:[si+bx], al pop bx mov resultantxy, bx inc cx mov bx, tempx2 dec bx mov tempx2, bx cmp bx, 0 jnz unravellingprevious mov cx, previousx inc dx mov bx, xlen mov tempx2, bx mov bx, tempy2 dec bx mov tempy2, bx cmp bx, 0 jnz unravellingprevious pop di pop es pop si pop ds pop dx pop cx pop bx pop ax ret _recallcurrenttoprevious ENDP _verifyactualline PROC push ax push bx push cx push dx push ds push si push es push di mov ax, SEG (0a000h:0) mov es, ax mov ax, OFFSET (0a000h:0) mov di, ax mov ax, 160 mov centerx, ax mov ax, 100 mov centery, ax mov dx, warpy mov ax, centery clc adc dx, ax mov cx, warpx mov ax, centerx clc adc cx, ax push cx push dx mov bx, warpx mov ax, 2 mov dx, 0 clc mul bx mov bx, ax pop dx pop cx clearborder: push bx mov entryx, cx mov entryy, dx call _calcbx mov bx, resultantxy mov ax, warpcolor mov byte ptr es:[di+bx], al dec cx pop bx dec bx jnz clearborder mov dx, warpy mov ax, centery clc adc dx, ax mov cx, warpx mov ax, centerx clc adc cx, ax push cx push dx mov bx, warpy mov ax, 2 mov dx, 0 clc mul bx mov bx, ax pop dx pop cx clearborder2: push bx mov entryx, cx mov entryy, dx call _calcbx mov bx, resultantxy mov ax, warpcolor mov byte ptr es:[di+bx], al dec dx pop bx dec bx jnz clearborder2 mov dx, centery mov ax, warpy clc sbb dx, ax mov cx, centerx mov ax, warpx clc sbb cx, ax push cx push dx mov bx, warpy mov ax, 2 mov dx, 0 clc mul bx mov bx, ax inc bx pop dx pop cx clearborder3: push bx mov entryx, cx mov entryy, dx call _calcbx mov bx, resultantxy mov ax, warpcolor mov byte ptr es:[di+bx], al inc dx pop bx dec bx jnz clearborder3 mov dx, centery mov ax, warpy clc sbb dx, ax mov cx, centerx mov ax, warpx clc sbb cx, ax push cx push dx mov bx, warpx mov ax, 2 mov dx, 0 clc mul bx mov bx, ax inc bx pop dx pop cx clearborder4: push bx mov entryx, cx mov entryy, dx call _calcbx mov bx, resultantxy mov ax, warpcolor mov byte ptr es:[di+bx], al inc cx pop bx dec bx jnz clearborder4 ;call _pause jmp skipcover mov ax, warpcolor mov cx, 0 mov dx, warpbottom mov entryx, cx mov entryy, dx call _calcbx mov bx, resultantxy mov byte ptr es:[di+bx], al skipcover: mov bx, warpntimes movewholescreen: push bx mov ax, warpbegin mov x2, ax mov ax, warpy mov y2, ax verifyinglinea: mov cx, 1 verifyingline: push cx inc cx mov y3, cx call _findx push ax mov ax, x3 mov cx, centerx clc adc cx, ax mov dx, centery mov ax, y3 clc adc dx, ax pop ax mov entryx, cx mov entryy, dx call _calcbx mov bx, resultantxy mov al, byte ptr es:[di+bx] pop cx push cx mov y3, cx call _findx push ax mov ax, x3 mov cx, centerx clc adc cx, ax mov dx, centery mov ax, y3 clc adc dx, ax pop ax mov entryx, cx mov entryy, dx call _calcbx mov bx, resultantxy mov byte ptr es:[di+bx], al pop cx push cx inc cx mov y3, cx call _findx push ax mov ax, x3 mov cx, centerx clc adc cx, ax mov dx, centery mov ax, y3 clc sbb dx, ax pop ax mov entryx, cx mov entryy, dx call _calcbx mov bx, resultantxy mov al, byte ptr es:[di+bx] pop cx push cx mov y3, cx call _findx push ax mov ax, x3 mov cx, centerx clc adc cx, ax mov dx, centery mov ax, y3 clc sbb dx, ax pop ax mov entryx, cx mov entryy, dx call _calcbx mov bx, resultantxy mov byte ptr es:[di+bx], al pop cx push cx inc cx mov y3, cx call _findx push ax mov ax, x3 mov cx, centerx clc sbb cx, ax mov dx, centery mov ax, y3 clc sbb dx, ax pop ax mov entryx, cx mov entryy, dx call _calcbx mov bx, resultantxy mov al, byte ptr es:[di+bx] pop cx push cx mov y3, cx call _findx push ax mov ax, x3 mov cx, centerx clc sbb cx, ax mov dx, centery mov ax, y3 clc sbb dx, ax pop ax mov entryx, cx mov entryy, dx call _calcbx mov bx, resultantxy mov byte ptr es:[di+bx], al pop cx push cx inc cx mov y3, cx call _findx push ax mov ax, x3 mov cx, centerx clc sbb cx, ax mov dx, centery mov ax, y3 clc adc dx, ax pop ax mov entryx, cx mov entryy, dx call _calcbx mov bx, resultantxy mov al, byte ptr es:[di+bx] pop cx push cx mov y3, cx call _findx push ax mov ax, x3 mov cx, centerx clc sbb cx, ax mov dx, centery mov ax, y3 clc adc dx, ax pop ax mov entryx, cx mov entryy, dx call _calcbx mov bx, resultantxy mov byte ptr es:[di+bx], al pop cx inc cx cmp cx, warpy jge skipverifyingline jmp verifyingline skipverifyingline: mov ax, x2 inc ax mov x2, ax cmp ax, warpx jge skipverifyinglinea jmp verifyinglinea skipverifyinglinea: mov ax, warpx mov x2, ax mov ax, warpy mov y2, ax verifyinglineb: mov cx, 1 verifyingline2: push cx inc cx mov x3, cx call _findy push ax mov ax, x3 mov cx, centerx clc adc cx, ax mov dx, centery mov ax, y3 clc adc dx, ax pop ax mov entryx, cx mov entryy, dx call _calcbx mov bx, resultantxy mov al, byte ptr es:[di+bx] pop cx push cx mov x3, cx call _findy push ax mov ax, x3 mov cx, centerx clc adc cx, ax mov dx, centery mov ax, y3 clc adc dx, ax pop ax mov entryx, cx mov entryy, dx call _calcbx mov bx, resultantxy mov byte ptr es:[di+bx], al pop cx push cx inc cx mov x3, cx call _findy push ax mov ax, x3 mov cx, centerx clc sbb cx, ax mov dx, centery mov ax, y3 clc adc dx, ax pop ax mov entryx, cx mov entryy, dx call _calcbx mov bx, resultantxy mov al, byte ptr es:[di+bx] pop cx push cx mov x3, cx call _findy push ax mov ax, x3 mov cx, centerx clc sbb cx, ax mov dx, centery mov ax, y3 clc adc dx, ax pop ax mov entryx, cx mov entryy, dx call _calcbx mov bx, resultantxy mov byte ptr es:[di+bx], al pop cx push cx inc cx mov x3, cx call _findy push ax mov ax, x3 mov cx, centerx clc sbb cx, ax mov dx, centery mov ax, y3 clc sbb dx, ax pop ax mov entryx, cx mov entryy, dx call _calcbx mov bx, resultantxy mov al, byte ptr es:[di+bx] pop cx push cx mov x3, cx call _findy push ax mov ax, x3 mov cx, centerx clc sbb cx, ax mov dx, centery mov ax, y3 clc sbb dx, ax pop ax mov entryx, cx mov entryy, dx call _calcbx mov bx, resultantxy mov byte ptr es:[di+bx], al pop cx push cx inc cx mov x3, cx call _findy push ax mov ax, x3 mov cx, centerx clc adc cx, ax mov dx, centery mov ax, y3 clc sbb dx, ax pop ax mov entryx, cx mov entryy, dx call _calcbx mov bx, resultantxy mov al, byte ptr es:[di+bx] pop cx push cx mov x3, cx call _findy push ax mov ax, x3 mov cx, centerx clc adc cx, ax mov dx, centery mov ax, y3 clc sbb dx, ax pop ax mov entryx, cx mov entryy, dx call _calcbx mov bx, resultantxy mov byte ptr es:[di+bx], al pop cx inc cx cmp cx, warpx jge skipverifyingline2 jmp verifyingline2 skipverifyingline2: mov ax, y2 dec ax mov y2, ax cmp ax, 0 jle skipverifyinglineb jmp verifyinglineb skipverifyinglineb: pop bx dec bx jz exitwarp jmp movewholescreen exitwarp: pop di pop es pop si pop ds pop dx pop cx pop bx pop ax ret centerx DW 0 centery DW 0 shiftedcenter1 DW 0 shiftedcenter2 DW 0 warpbottom DW 99 warpright DW 99 warptop DW 1 warpbegin DW 1 warpx DW 25 warpy DW 25 warptempx DW 0 warptempy DW 0 warpcolor DW 13 warpntimes DW 25 _verifyactualline ENDP _triangle PROC push ax push bx push cx push dx push ds push si push es push di mov ax, SEG (0a000h:0) mov es, ax mov ax, OFFSET (0a000h:0) mov di, ax mov ax, 1 mov x2, ax mov ax, 200 mov y2, ax begintrianglefill: mov cx, 1 trianglefill: push cx mov y3, cx call _findx mov cx, x3 mov dx, y3 mov entryx, cx mov entryy, dx call _calcbx mov bx, resultantxy mov al, 12 mov byte ptr es:[di+bx], al pop cx inc cx cmp cx, 200 jl trianglefill mov ax, x2 inc ax mov x2, ax cmp ax, 320 jl begintrianglefill begintrianglefill2: mov cx, 1 trianglefill2: push cx mov x3, cx call _findy mov cx, x3 mov dx, y3 mov entryx, cx mov entryy, dx call _calcbx mov bx, resultantxy mov al, 14 mov byte ptr es:[di+bx], al pop cx inc cx cmp cx, 320 jl trianglefill2 mov ax, y2 dec ax mov y2, ax cmp ax, 0 jg begintrianglefill2 call _transferB mov ax, 1 mov xlen, ax mov ylen, ax dpolling: mov ah, 1 int 16h jnz dkeyed call _flying call _switchd jmp dpolling dkeyed: mov ah, 0 int 16h dcmpa: cmp ah, 30 jne dcmpd cmp al, 97 jne dcmpd mov ax, currentx cmp ax, dimxstart jle skipdcmpa mov bx, xlen clc sbb ax, bx cmp ax, dimxstart jl skipdcmpa mov currentx, ax ;call _switchd skipdcmpa: jmp ddonecmp dcmpd: cmp ah, 32 jne dcmpw cmp al, 100 jne dcmpw mov ax, currentx cmp ax, dimxend jge skipdcmpd mov bx, xlen clc adc ax, bx cmp ax, dimxend jg skipdcmpd mov currentx, ax ;call _switchd skipdcmpd: jmp ddonecmp dcmpw: cmp ah, 17 jne dcmpds cmp al, 119 jne dcmpds mov ax, currenty cmp ax, dimystart jle skipdcmpw mov bx, ylen clc sbb ax, bx cmp ax, dimystart jl skipdcmpw mov currenty, ax ;call _switchd skipdcmpw: jmp ddonecmp dcmpds: cmp ah, 31 jne dcmpcolor cmp al, 115 jne dcmpcolor mov ax, currenty cmp ax, dimyend jge skipdcmpds mov bx, ylen clc adc ax, bx cmp ax, dimyend jg skipdcmpds mov currenty, ax ;call _switchd skipdcmpds: jmp ddonecmp dcmpcolor: cmp ah, 46 jne dcmpspace cmp al, 99 jne dcmpspace jmp ddonecmp dcmpspace: cmp ah, 57 jne dcmpq cmp al, 32 jne dcmpq mov ax, setflying cmp ax, 1 je noflying mov ax, currentx mov tempxflying, ax mov ax, currenty mov tempyflying, ax mov ax, 1 mov setflying, ax noflying: jmp ddonecmp dcmpq: cmp ah, 16 jne ddonecmp cmp al, 113 jne ddonecmp jmp dexitroutine ddonecmp: jmp dpolling dexitroutine: pop di pop es pop si pop ds pop dx pop cx pop bx pop ax ret _triangle ENDP _flying PROC push ax push bx push cx push dx push ds push si push es push di goflying: mov ax, tempxflying inc ax mov tempxflying, ax cmp ax, 320 jl exitflying mov ax, 0 mov setflying, ax exitflying: pop di pop es pop si pop ds pop dx pop cx pop bx pop ax ret setflying DW 0 tempxflying DW 320 tempyflying DW 200 flyingbx DW 63 cflying DW 1 _flying ENDP _switchd PROC push ax push bx push cx push dx push ds push si push es push di mov bx, 5 mov shipbx, bx cmp setflying, 1 jne skipflying1 mov bx, flyingbx mov cx, tempxflying mov shipcx, cx mov dx, tempyflying mov shipdx, dx mov ax, cflying mov shipax, ax call _prexycd skipflying1: mov bx, shipbx mov cx, currentx mov shipcx, cx mov dx, currenty mov shipdx, dx mov ax, cship mov shipax, ax call _prexycd phase2d: cmp setflying, 1 jne skipflying2 mov bx, flyingbx mov cx, tempxflying mov dx, tempyflying mov ax, cflying call _transfer5000to7000 skipflying2: mov cx, currentx mov dx, currenty mov ax, cship mov bx, shipbx call _transfer5000to7000 phase3d: cmp setflying, 1 jne skipflying3 mov cx, tempxflying mov dx, tempyflying mov ax, cflying mov bx, flyingbx call _GOD skipflying3: mov cx, currentx mov dx, currenty mov ax, cship mov bx, shipbx call _GOD pop di pop es pop si pop ds pop dx pop cx pop bx pop ax ret _switchd ENDP _testing PROC push ax push bx push cx push dx push ds push si push es push di mov ax, 319 mov X1, ax mov ax, 199 mov Y1, ax mov ax, 0 mov X2, ax mov ax, 0 mov Y2, ax mov X3, 280 testrepeat: call _maybeworking mov ax, X3 mov current2x, ax mov ax, Y4 mov current2y, ax call _sprite mov ax, X3 dec ax mov X3, ax cmp ax, 0 jg testrepeat mov ax, 0 mov X1, ax mov ax, 0 mov Y1, ax mov ax, 150 mov X2, ax mov ax, 100 mov Y2, ax mov X3, 0 testrepeat2: call _maybeworking mov ax, X3 mov current2x, ax mov ax, Y4 mov current2y, ax call _sprite mov ax, X3 inc ax mov X3, ax cmp ax, 150 jl testrepeat2 mov ax, 150 mov X1, ax mov ax, 100 mov Y1, ax mov ax, 200 mov X2, ax mov ax, 24 mov Y2, ax mov X3, 150 testrepeat3: call _maybeworking mov ax, X3 mov current2x, ax mov ax, Y4 mov current2y, ax call _sprite mov ax, X3 inc ax mov X3, ax cmp ax, 200 jl testrepeat3 mov ax, 200 mov X1, ax mov ax, 24 mov Y1, ax mov ax, 0 mov X2, ax mov ax, 150 mov Y2, ax mov X3, 200 testrepeat4: call _maybeworking mov ax, X3 mov current2x, ax mov ax, Y4 mov current2y, ax call _sprite mov ax, X3 dec ax mov X3, ax cmp ax, 0 jg testrepeat4 mov ax, 0 mov X1, ax mov ax, 150 mov Y1, ax mov ax, 0 mov X2, ax mov ax, 100 mov Y2, ax mov Y3, 150 testrepeat5: call _maybeworking mov ax, X4 mov current2x, ax mov ax, Y3 mov current2y, ax call _sprite mov ax, Y3 dec ax mov Y3, ax cmp ax, 100 jg testrepeat5 mov ax, 0 mov X1, ax mov ax, 100 mov Y1, ax mov ax, 180 mov X2, ax mov ax, 100 mov Y2, ax mov X3, 0 testrepeat8: call _maybeworking mov ax, X3 mov current2x, ax mov ax, Y4 mov current2y, ax call _sprite mov ax, X3 inc ax mov X3, ax cmp ax, 180 jl testrepeat8 mov ax, 180 mov X1, ax mov ax, 100 mov Y1, ax mov ax, 180 mov X2, ax mov ax, 150 mov Y2, ax mov Y3, 100 testrepeat10: call _maybeworking mov ax, X4 mov current2x, ax mov ax, Y3 mov current2y, ax call _sprite mov ax, Y3 inc ax mov Y3, ax cmp ax, 150 jl testrepeat10 mov ax, 180 mov X1, ax mov ax, 150 mov Y1, ax mov ax, 150 mov X2, ax mov ax, 150 mov Y2, ax mov X3, 180 testrepeat12: call _maybeworking mov ax, X3 mov current2x, ax mov ax, Y4 mov current2y, ax call _sprite mov ax, X3 dec ax mov X3, ax cmp ax, 150 jg testrepeat12 pop di pop es pop si pop ds pop dx pop cx pop bx pop ax ret backupX1 DW 0 backupX2 DW 0 backupY1 DW 0 backupY2 DW 0 _testing ENDP _sprite PROC push ax push bx push cx push dx push ds push si push es push di mov bx, 5 mov shipbx, bx mov bx, shipbx mov cx, current2x mov shipcx, cx mov dx, current2y mov shipdx, dx mov ax, cship mov shipax, ax call _prexycd mov cx, current2x mov dx, current2y mov ax, cship mov bx, shipbx call _transfer5000to7000 mov cx, current2x mov dx, current2y mov ax, cship mov bx, shipbx call _GOD pop di pop es pop si pop ds pop dx pop cx pop bx pop ax ret current2x DW 0 current2y DW 0 _sprite ENDP _maybeworking PROC push ax push bx push cx push dx push ds push si push es push di call _pushXY mov ax, X1 mov bx, X2 cmp ax, bx je upordownordotpre jl eastorneorsepre jg westornworswpre upordownordotpre: jmp upordownordotjmp eastorneorsepre: jmp eastorneorsejmp westornworswpre: jmp westornworswjmp eastorneorsejmp: mov ax, Y1 mov bx, Y2 cmp ax, bx je eastpre jl sepre jg nepre eastpre: jmp eastjmp sepre: jmp sejmp nepre: jmp nejmp upordownordotjmp: mov ax, Y1 mov bx, Y2 cmp ax, bx je dotpre jl downpre jg uppre dotpre: jmp dotjmp downpre: jmp downjmp uppre: jmp upjmp westornworswjmp: mov ax, Y1 mov bx, Y2 cmp ax, bx je westpre jl swpre jg nwpre westpre: jmp westjmp swpre: jmp swjmp nwpre: jmp nwjmp nwjmp: call _popXY call _nw call _findy call _nwreturn mov ax, Y3 mov Y4, ax call _popXY call _nw call _findx call _nwreturn mov ax, X3 mov X4, ax jmp exitmaybework nejmp: call _popXY call _ne call _findy call _nereturn mov ax, Y3 mov Y4, ax call _popXY call _ne call _findx call _nereturn mov ax, X3 mov X4, ax jmp exitmaybework swjmp: call _popXY call _sw call _findy call _swreturn mov ax, Y3 mov Y4, ax call _popXY call _sw call _findx call _swreturn mov ax, X3 mov X4, ax jmp exitmaybework sejmp: call _popXY call _se call _findy call _sereturn mov ax, Y3 mov Y4, ax call _popXY call _se call _findx call _sereturn mov ax, X3 mov X4, ax jmp exitmaybework dotjmp: call _popXY mov ax, X2 mov X4, ax mov ax, Y2 mov Y4, ax jmp exitmaybework upjmp: mov ax, X2 mov X4, ax mov ax, Y3 mov Y4, ax jmp exitmaybework downjmp: mov ax, X2 mov X4, ax mov ax, Y3 mov Y4, ax jmp exitmaybework eastjmp: mov ax, Y2 mov Y4, ax mov ax, X3 mov X4, ax jmp exitmaybework westjmp: mov ax, Y2 mov Y4, ax mov ax, X3 mov X4, ax jmp exitmaybework exitmaybework: call _popXY pop di pop es pop si pop ds pop dx pop cx pop bx pop ax ret X4 DW 0 Y4 DW 0 _maybeworking ENDP _pushXY PROC push ax push bx push cx push dx push ds push si push es push di mov ax, X1 mov oldX1, ax mov ax, Y1 mov oldY1, ax mov ax, X2 mov oldX2, ax mov ax, Y2 mov oldY2, ax mov ax, X3 mov oldX3, ax mov ax, Y3 mov oldY3, ax pop di pop es pop si pop ds pop dx pop cx pop bx pop ax ret _pushXY ENDP _popXY PROC push ax push bx push cx push dx push ds push si push es push di mov ax, oldY3 mov Y3, ax mov ax, oldX3 mov X3, ax mov ax, oldY2 mov Y2, ax mov ax, oldX2 mov X2, ax mov ax, oldY1 mov Y1, ax mov ax, oldX1 mov X1, ax pop di pop es pop si pop ds pop dx pop cx pop bx pop ax ret _popXY ENDP _se PROC push ax push bx push cx push dx push ds push si push es push di mov ax, X1 mov backupX1, ax mov bx, X2 mov backupX2, bx clc sbb bx, ax mov X2, bx clc mov bx, X3 sbb bx, ax mov X3, bx mov ax, Y1 mov backupY1, ax mov bx, Y2 mov backupY2, bx clc sbb bx, ax mov Y2, bx clc mov bx, Y3 sbb bx, ax mov Y3, bx pop di pop es pop si pop ds pop dx pop cx pop bx pop ax ret oldX1 DW 0 oldX2 DW 0 oldX3 DW 0 oldY1 DW 0 oldY2 DW 0 oldY3 DW 0 _se ENDP _sereturn PROC push ax push bx push cx push dx push ds push si push es push di mov ax, X2 mov bx, backupX1 clc adc ax, bx mov X2, ax mov ax, backupX1 mov bx, X3 clc adc bx, ax mov X3, bx mov ax, backupY1 mov bx, Y3 clc adc bx, ax mov Y3, bx mov ax, Y2 mov bx, backupY1 clc adc ax, bx mov Y2, ax pop di pop es pop si pop ds pop dx pop cx pop bx pop ax ret _sereturn ENDP _sw PROC push ax push bx push cx push dx push ds push si push es push di mov ax, 319 mov mirrorX, ax mov ax, X1 mov bx, mirrorX clc sbb bx, ax mov backupX1, bx mov X2, ax clc adc ax, bx clc mov bx, mirrorX sbb bx, ax clc mov bx, X3 mov ax, backupX1 adc bx, ax mov ax, mirrorX clc sbb ax, bx mov X3, ax mov ax, Y1 mov backupY1, ax mov bx, Y2 mov backupY2, bx clc sbb bx, ax mov Y2, bx clc mov bx, Y3 sbb bx, ax mov Y3, bx pop di pop es pop si pop ds pop dx pop cx pop bx pop ax ret _sw ENDP _swreturn PROC push ax push bx push cx push dx push ds push si push es push di mov ax, mirrorX mov bx, X3 clc sbb ax, bx mov X3, ax mov ax, backupY1 mov bx, Y3 clc adc bx, ax mov Y3, bx pop di pop es pop si pop ds pop dx pop cx pop bx pop ax ret _swreturn ENDP _nw PROC push ax push bx push cx push dx push ds push si push es push di mov ax, 319 mov mirrorX, ax mov ax, X1 mov bx, mirrorX clc sbb bx, ax mov backupX1, bx mov ax, X2 mov bx, mirrorX clc sbb bx, ax mov ax, backupX1 clc sbb bx, ax mov X2, bx mov ax, X3 mov bx, mirrorX clc sbb bx, ax clc mov ax, backupX1 sbb bx, ax mov X3, bx mov ax, 199 mov mirrorY, ax mov ax, Y1 mov bx, mirrorY clc sbb bx, ax mov backupY1, bx mov ax, Y2 mov bx, mirrorY clc sbb bx, ax mov ax, backupY1 clc sbb bx, ax mov Y2, bx mov ax, Y3 mov bx, mirrorY clc sbb bx, ax clc mov ax, backupY1 sbb bx, ax mov Y3, bx pop di pop es pop si pop ds pop dx pop cx pop bx pop ax ret _nw ENDP _nwreturn PROC push ax push bx push cx push dx push ds push si push es push di mov ax, 319 mov mirrorX, ax clc mov ax, X3 mov bx, backupX1 adc bx, ax clc mov ax, mirrorX clc sbb ax, bx mov X3, ax mov ax, 199 mov mirrorY, ax clc mov ax, Y3 mov bx, backupY1 adc bx, ax clc mov ax, mirrorY clc sbb ax, bx mov Y3, ax pop di pop es pop si pop ds pop dx pop cx pop bx pop ax ret _nwreturn ENDP _ne PROC push ax push bx push cx push dx push ds push si push es push di mov ax, X1 mov backupX1, ax mov bx, X2 mov backupX2, ax clc sbb bx, ax mov X2, bx mov bx, X3 clc sbb bx, ax mov X3, bx mov ax, 199 mov mirrorY, ax mov ax, Y1 mov bx, mirrorY clc sbb bx, ax mov backupY1, bx mov ax, Y2 mov bx, mirrorY clc sbb bx, ax mov ax, backupY1 clc sbb bx, ax mov Y2, bx clc mov bx, Y3 mov ax, mirrorY sbb ax, bx mov Y3, ax pop di pop es pop si pop ds pop dx pop cx pop bx pop ax ret _ne ENDP _nereturn PROC push ax push bx push cx push dx push ds push si push es push di mov ax, backupX1 mov bx, X3 clc adc ax, bx mov X3, ax mov ax, Y3 mov bx, backupY1 clc adc ax, bx mov Y3, ax mov ax, mirrorY mov bx, Y3 clc sbb ax, bx mov Y3, ax pop di pop es pop si pop ds pop dx pop cx pop bx pop ax ret mirrorX DW 319 mirrorY DW 199 _nereturn ENDP _starsnorth PROC push ax push bx push cx push dx push ds push si push es push di mov al, 12 mov colorofscreen, al call _clrmain call _transferA call _transferC mov ax, 0 mov raybutton, ax mov ax, 4 mov msgswitch, ax mov ax, 0 mov mainscreen, ax call _plotmsg call _transferB mov ax, 300 mov delayduration, ax ;mov ax, SEG (0a000h:0) ;mov es, ax ;mov ax, OFFSET (0a000h:0) ;mov di, ax ;mov cx, 64000 ;mov al, 12 ;paintred: ;mov bx, cx ;mov byte ptr es:[di+bx], al ;loop paintred ;mov byte ptr es:[di], al mov ax, SEG gen mov es, ax mov ax, OFFSET gen mov di, ax mov bx, 0 mov cx, 1 mov dx, 10 setstarsposition: mov word ptr es:[di+bx], bx mov word ptr es:[di+bx+2], bx mov word ptr es:[di+bx+4], cx mov word ptr es:[di+bx+4+2], dx clc adc dx, 10 cmp dx, 80 jl continuesetting mov dx, 10 continuesetting: clc adc bx, 8 cmp bx, 200 jl setstarsposition mov ax, SEG geny mov es, ax mov ax, OFFSET geny mov di, ax mov bx, 0 mov cx, 1 mov dx, 10 setstarsyposition: mov word ptr es:[di+bx], bx mov word ptr es:[di+bx+2], bx mov word ptr es:[di+bx+4], cx mov word ptr es:[di+bx+4+2], dx clc adc dx, 10 cmp dx, 80 jl continueysetting mov dx, 10 continueysetting: clc adc bx, 8 cmp bx, 200 jl setstarsyposition mov ax, SEG gen12 mov es, ax mov ax, OFFSET gen12 mov di, ax mov bx, 0 mov cx, 1 mov dx, 10 setstarsposition12: mov word ptr es:[di+bx], bx mov word ptr es:[di+bx+2], bx mov word ptr es:[di+bx+4], cx mov word ptr es:[di+bx+4+2], dx clc adc dx, 10 cmp dx, 80 jl continuesetting12 mov dx, 10 continuesetting12: clc adc bx, 8 cmp bx, 200 jl setstarsposition12 mov ax, SEG gen3 mov es, ax mov ax, OFFSET gen3 mov di, ax mov bx, 0 mov cx, 1 mov dx, 10 setstarsposition3: mov word ptr es:[di+bx], bx mov word ptr es:[di+bx+2], bx mov word ptr es:[di+bx+4], cx mov word ptr es:[di+bx+4+2], dx clc adc dx, 10 cmp dx, 80 jl continuesetting3 mov dx, 10 continuesetting3: clc adc bx, 8 cmp bx, 200 jl setstarsposition3 mov ax, SEG gena mov es, ax mov ax, OFFSET gena mov di, ax mov bx, 0 mov cx, 1 mov dx, 10 setstarspositiona: mov word ptr es:[di+bx], bx mov word ptr es:[di+bx+2], bx mov word ptr es:[di+bx+4], cx mov word ptr es:[di+bx+4+2], dx clc adc dx, 10 cmp dx, 80 jl continuesettinga mov dx, 10 continuesettinga: clc adc bx, 8 cmp bx, 200 jl setstarspositiona mov ax, SEG genb mov es, ax mov ax, OFFSET genb mov di, ax mov bx, 0 mov cx, 1 mov dx, 10 setstarspositionb: mov word ptr es:[di+bx], bx mov word ptr es:[di+bx+2], bx mov word ptr es:[di+bx+4], cx mov word ptr es:[di+bx+4+2], dx clc adc dx, 10 cmp dx, 80 jl continuesettingb mov dx, 10 continuesettingb: clc adc bx, 8 cmp bx, 200 jl setstarspositionb mov ax, SEG genc mov es, ax mov ax, OFFSET genc mov di, ax mov bx, 0 mov cx, 1 mov dx, 10 setstarspositionc: mov word ptr es:[di+bx], bx mov word ptr es:[di+bx+2], bx mov word ptr es:[di+bx+4], cx mov word ptr es:[di+bx+4+2], dx clc adc dx, 10 cmp dx, 80 jl continuesettingc mov dx, 10 continuesettingc: clc adc bx, 8 cmp bx, 200 jl setstarspositionc mov ax, SEG gend mov es, ax mov ax, OFFSET gend mov di, ax mov bx, 0 mov cx, 1 mov dx, 10 setstarspositiond: mov word ptr es:[di+bx], bx mov word ptr es:[di+bx+2], bx mov word ptr es:[di+bx+4], cx mov word ptr es:[di+bx+4+2], dx clc adc dx, 10 cmp dx, 80 jl continuesettingd mov dx, 10 continuesettingd: clc adc bx, 8 cmp bx, 200 jl setstarspositiond flyingstars: mov ax, setskip1 mov bx, setskip2 mov cx, setskip3 mov dx, setskip4 clc adc ax, bx clc adc ax, cx clc adc ax, dx mov setskiphalf, ax mov ax, setskip5 mov bx, setskip7 mov cx, setskip8 mov dx, setskip10 clc adc ax, bx clc adc ax, cx clc adc ax, dx mov bx, setskiphalf clc adc ax, bx mov setskiphalf, ax mov ax, setskiphalf cmp ax, 200 jl regularhalf jmp skiphalf regularhalf: mov ax, nmoves inc ax mov nmoves, ax cmp ax, 10000 jl dohalf mov ax, 1 mov setskiphalf, ax dohalf: mov ax, SEG gen mov es, ax mov ax, OFFSET gen mov di, ax cmp setskip1, 25 jl flyloopskip1 jmp skip1a flyloopskip1: mov cx, 0 mov setskip1, cx flyloop: mov bx, cx mov ax, word ptr es:[di+bx+4] mov xstar2, ax mov ax, word ptr es:[di+bx+6] mov ystar2, ax mov ax, word ptr es:[di+bx+2] mov xstar1, ax mov ax, word ptr es:[di+bx] mov ystar1, ax cmp ystar1, 75 jne skip2016091601 mov ax, setskip1 inc ax mov setskip1, ax jmp skip2016091601b skip2016091601: call _starroutine mov ax, xstar2 mov word ptr es:[di+bx+4], ax mov ax, ystar2 mov word ptr es:[di+bx+6], ax mov ax, xstar1 mov word ptr es:[di+bx+2], ax mov ax, ystar1 mov word ptr es:[di+bx], ax skip2016091601b: clc adc cx, 8 cmp cx, 200 jl flyloop ;call _delay skip1a: mov ax, SEG geny mov es, ax mov ax, OFFSET geny mov di, ax cmp setskip2, 25 jl flyloopyskip2 jmp skip2a flyloopyskip2: mov cx, 0 mov setskip2, cx flyloopy: mov bx, cx mov ax, word ptr es:[di+bx+4] mov xstar2, ax mov ax, word ptr es:[di+bx+6] mov ystar2, ax mov ax, word ptr es:[di+bx+2] mov xstar1, ax mov ax, word ptr es:[di+bx] mov ystar1, ax cmp xstar1, 155 jne skip2016091602 mov ax, setskip2 inc ax mov setskip2, ax jmp skip2016091602b skip2016091602: call _stary mov ax, xstar2 mov word ptr es:[di+bx+4], ax mov ax, ystar2 mov word ptr es:[di+bx+6], ax mov ax, xstar1 mov word ptr es:[di+bx+2], ax mov ax, ystar1 mov word ptr es:[di+bx], ax skip2016091602b: clc adc cx, 8 cmp cx, 200 jl flyloopy ;call _delayy skip2a: mov ax, SEG gen12 mov es, ax mov ax, OFFSET gen12 mov di, ax cmp setskip3, 25 jl flyloop12skip3 jmp skip3a flyloop12skip3: mov cx, 0 mov setskip3, cx flyloop12: mov bx, cx mov ax, word ptr es:[di+bx+4] mov xstar2, ax mov ax, word ptr es:[di+bx+6] mov ystar2, ax mov ax, word ptr es:[di+bx+2] mov xstar1, ax mov ax, word ptr es:[di+bx] mov ystar1, ax cmp ystar1, 75 jg skip2016091603 mov ax, setskip3 inc ax mov setskip3, ax jmp skip2016091603b skip2016091603: call _star12 mov ax, xstar2 mov word ptr es:[di+bx+4], ax mov ax, ystar2 mov word ptr es:[di+bx+6], ax mov ax, xstar1 mov word ptr es:[di+bx+2], ax mov ax, ystar1 mov word ptr es:[di+bx], ax skip2016091603b: clc adc cx, 8 cmp cx, 200 jl flyloop12 ;call _delay12 skip3a: mov ax, SEG gen3 mov es, ax mov ax, OFFSET gen3 mov di, ax cmp setskip4, 25 jl flyloop3skip3 jmp skip4a flyloop3skip3: mov cx, 0 mov setskip4, cx flyloop3: mov bx, cx mov ax, word ptr es:[di+bx+4] mov xstar2, ax mov ax, word ptr es:[di+bx+6] mov ystar2, ax mov ax, word ptr es:[di+bx+2] mov xstar1, ax mov ax, word ptr es:[di+bx] mov ystar1, ax cmp xstar1, 155 jg skip2016091604 mov ax, setskip4 inc ax mov setskip4, ax jmp skip2016091604b skip2016091604: call _starx mov ax, xstar2 mov word ptr es:[di+bx+4], ax mov ax, ystar2 mov word ptr es:[di+bx+6], ax mov ax, xstar1 mov word ptr es:[di+bx+2], ax mov ax, ystar1 mov word ptr es:[di+bx], ax skip2016091604b: clc adc cx, 8 cmp cx, 200 jl flyloop3 ;call _delay3 skip4a: ;jmp skip1 mov ax, SEG gena mov es, ax mov ax, OFFSET gena mov di, ax cmp setskip5, 25 jl flyloopaskip5 jmp skip5a flyloopaskip5: mov cx, 0 mov setskip5, cx flyloopa: mov bx, cx mov ax, 0 mov set, ax mov ax, word ptr es:[di+bx+4] mov xstar2, ax cmp ax, 1 jne skipseta mov set, ax skipseta: mov ax, word ptr es:[di+bx+6] mov ystar2, ax mov ax, word ptr es:[di+bx+2] mov xstar1, ax mov ax, word ptr es:[di+bx] mov ystar1, ax cmp ystar1, 75 jne skip2016091605 mov ax, setskip5 inc ax mov setskip5, ax jmp skip2016091605b skip2016091605: call _starroutine mov ax, xstar2 mov word ptr es:[di+bx+4], ax mov ax, ystar2 mov word ptr es:[di+bx+6], ax mov ax, xstar1 mov word ptr es:[di+bx+2], ax mov ax, ystar1 mov word ptr es:[di+bx], ax mov ax, set cmp ax, 1 je resumeseta jmp completeda resumeseta: mov xstar2, ax mov ax, word ptr es:[di+bx+6] mov ystar2, ax mov ax, word ptr es:[di+bx+2] mov xstar1, ax mov ax, word ptr es:[di+bx] mov ystar1, ax call _stary mov ax, xstar2 mov word ptr es:[di+bx+4], ax mov ax, ystar2 mov word ptr es:[di+bx+6], ax mov ax, xstar1 mov word ptr es:[di+bx+2], ax mov ax, ystar1 mov word ptr es:[di+bx], ax completeda: skip2016091605b: clc adc cx, 8 cmp cx, 200 jge skipflyloopa jmp flyloopa skipflyloopa: ;call _delaya skip1: skip5a: ;jmp skip2 mov ax, SEG genb mov es, ax mov ax, OFFSET genb mov di, ax cmp setskip7, 25 jl flyloopbskip7 jmp skip7a flyloopbskip7: mov cx, 0 mov setskip7, cx flyloopb: mov bx, cx mov ax, 0 mov set, ax mov ax, word ptr es:[di+bx+4] mov xstar2, ax cmp ax, 1 jne skipsetb mov set, ax skipsetb: mov xstar2, ax mov ax, word ptr es:[di+bx+6] mov ystar2, ax mov ax, word ptr es:[di+bx+2] mov xstar1, ax mov ax, word ptr es:[di+bx] mov ystar1, ax cmp ystar1, 75 jne skip2016091607 mov ax, setskip7 inc ax mov setskip7, ax jmp skip2016091607b skip2016091607: call _starroutine mov ax, xstar2 mov word ptr es:[di+bx+4], ax mov ax, ystar2 mov word ptr es:[di+bx+6], ax mov ax, xstar1 mov word ptr es:[di+bx+2], ax mov ax, ystar1 mov word ptr es:[di+bx], ax mov ax, set cmp ax, 1 je resumesetb jmp completedb resumesetb: mov xstar2, ax mov ax, word ptr es:[di+bx+6] mov ystar2, ax mov ax, word ptr es:[di+bx+2] mov xstar1, ax mov ax, word ptr es:[di+bx] mov ystar1, ax call _starx mov ax, xstar2 mov word ptr es:[di+bx+4], ax mov ax, ystar2 mov word ptr es:[di+bx+6], ax mov ax, xstar1 mov word ptr es:[di+bx+2], ax mov ax, ystar1 mov word ptr es:[di+bx], ax completedb: skip2016091607b: clc adc cx, 8 cmp cx, 200 jge skipflyloopb jmp flyloopb skipflyloopb: ;call _delayb skip2: skip7a: ;jmp testing ;jmp skip4 mov ax, SEG genc mov es, ax mov ax, OFFSET genc mov di, ax cmp setskip8, 25 jl flyloopcskip8 jmp skip8a flyloopcskip8: mov cx, 0 mov setskip8, cx flyloopc: mov bx, cx mov ax, 0 mov set, ax mov ax, word ptr es:[di+bx+4] mov xstar2, ax cmp ax, 1 jne skipsetc mov set, ax skipsetc: mov xstar2, ax mov ax, word ptr es:[di+bx+6] mov ystar2, ax mov ax, word ptr es:[di+bx+2] mov xstar1, ax mov ax, word ptr es:[di+bx] mov ystar1, ax cmp ystar1, 75 jg skip2016091608 mov ax, setskip8 inc ax mov setskip8, ax jmp skip2016091608b skip2016091608: call _star12 mov ax, xstar2 mov word ptr es:[di+bx+4], ax mov ax, ystar2 mov word ptr es:[di+bx+6], ax mov ax, xstar1 mov word ptr es:[di+bx+2], ax mov ax, ystar1 mov word ptr es:[di+bx], ax mov ax, set cmp ax, 1 je resumesetc jmp completedc resumesetc: mov xstar2, ax mov ax, word ptr es:[di+bx+6] mov ystar2, ax mov ax, word ptr es:[di+bx+2] mov xstar1, ax mov ax, word ptr es:[di+bx] mov ystar1, ax ;call _starroutine call _starx mov ax, xstar2 mov word ptr es:[di+bx+4], ax mov ax, ystar2 mov word ptr es:[di+bx+6], ax mov ax, xstar1 mov word ptr es:[di+bx+2], ax mov ax, ystar1 mov word ptr es:[di+bx], ax completedc: skip2016091608b: clc adc cx, 8 cmp cx, 200 jge skipflyloopc jmp flyloopc skipflyloopc: ;call _delayc ;testing: skip4: skip8a: ;jmp skip3 mov ax, SEG gend mov es, ax mov ax, OFFSET gend mov di, ax cmp setskip10, 25 jl flyloopdskip jmp skip10a flyloopdskip: mov cx, 0 mov setskip10, cx flyloopd: mov bx, cx mov ax, 0 mov set, ax mov ax, word ptr es:[di+bx+4] mov xstar2, ax cmp ax, 1 jne skipsetd mov set, ax skipsetd: mov xstar2, ax mov ax, word ptr es:[di+bx+6] mov ystar2, ax mov ax, word ptr es:[di+bx+2] mov xstar1, ax mov ax, word ptr es:[di+bx] mov ystar1, ax cmp ystar1, 75 jg skip2016091610 mov ax, setskip10 inc ax mov setskip10, ax jmp skip2016091610b skip2016091610: call _star12 mov ax, xstar2 mov word ptr es:[di+bx+4], ax mov ax, ystar2 mov word ptr es:[di+bx+6], ax mov ax, xstar1 mov word ptr es:[di+bx+2], ax mov ax, ystar1 mov word ptr es:[di+bx], ax mov ax, set cmp ax, 1 je resumesetd jmp completedd resumesetd: mov xstar2, ax mov ax, word ptr es:[di+bx+6] mov ystar2, ax mov ax, word ptr es:[di+bx+2] mov xstar1, ax mov ax, word ptr es:[di+bx] mov ystar1, ax call _stary mov ax, xstar2 mov word ptr es:[di+bx+4], ax mov ax, ystar2 mov word ptr es:[di+bx+6], ax mov ax, xstar1 mov word ptr es:[di+bx+2], ax mov ax, ystar1 mov word ptr es:[di+bx], ax completedd: skip2016091610b: clc adc cx, 8 cmp cx, 200 jge skipflyloopd jmp flyloopd skipflyloopd: ;call _delayd skip3: skip10a: skiphalf: mov ah, 1 int 16h jnz keyedquit jmp donecmpstars keyedquit: mov ah, 0 int 16h cmp ah, 16 jne donecmpstars cmp al, 113 jne donecmpstars jmp exitstarsnorth donecmpstars: jmp flyingstars exitstarsnorth: pop di pop es pop si pop ds pop dx pop cx pop bx pop ax ret setskip1 DW 0 setskip2 DW 0 setskip3 DW 0 setskip4 DW 0 setskip5 DW 0 setskip6 DW 0 setskip7 DW 0 setskip8 DW 0 setskip9 DW 0 setskip10 DW 0 setskip11 DW 0 setskip12 DW 0 nmoves DW 0 setskiphalf DW 0 set DW 0 xstar1 DW 0 ystar1 DW 0 xstar2 DW 0 ystar2 DW 0 xstar3 DW 155 ystar3 DW 99 xstar5 DW 80 ystar5 DW 25 xstar7 DW 270 ystar7 DW 127 xstar8 DW 301 ystar8 DW 2 xstar10 DW 10 ystar10 DW 10 gen: DW 200 DUP(10) geny: DW 200 DUP(10) gen3: DW 200 DUP(10) gen12: DW 200 DUP(10) gena: DW 200 DUP(10) genb: DW 200 DUP(10) genc: DW 200 DUP(10) gend: DW 200 DUP(10) _starsnorth ENDP _starroutine PROC push ax push bx push cx push dx push ds push si push es push di mov ax, xstar2 dec ax mov xstar2, ax cmp ax, 0 je movestar jmp exitmovestar movestar: mov ax, ystar2 mov xstar2, ax mov cx, xstar1 mov dx, ystar1 mov entryx, cx mov entryy, dx call _calcbx mov bx, resultantxy mov ax, SEG (08000h:0) mov es, ax mov ax, OFFSET (08000h:0) mov di, ax mov al, byte ptr es:[di+bx] mov cx, SEG (0a000h:0) mov es, cx mov cx, OFFSET (0a000h:0) mov di, cx mov byte ptr es:[di+bx], al mov ax, ystar1 inc ax mov ystar1, ax cmp ax, 200 jl checkystar2 mov ax, 0 mov ystar1, ax mov ax, xstar1 clc adc ax, 10 mov xstar1, ax cmp ax, 320 jl checkystar2 mov ax, 0 mov xstar1, ax checkystar2: mov cx, xstar1 mov dx, ystar1 ;cmp cx, 0 ;jne Heaven1204 ;cmp dx, 0 ;jne Heaven1204 ;jmp exitHeaven1204 ;Heaven1204: ;cmp cx, 319 ;jne Heaven2404 ;cmp dx, 199 ;jne Heaven2404 ;jmp exitHeaven1204 ;exitHeaven1204: ;jmp exitmovestar ;Heaven2404: mov entryx, cx mov entryy, dx call _calcbx mov bx, resultantxy mov al, 14 mov byte ptr es:[di+bx], al exitmovestar: pop di pop es pop si pop ds pop dx pop cx pop bx pop ax ret _starroutine ENDP _stary PROC push ax push bx push cx push dx push ds push si push es push di mov ax, xstar2 dec ax mov xstar2, ax cmp ax, 0 je movestary jmp exitmovestary movestary: mov ax, ystar2 mov xstar2, ax mov cx, xstar1 mov dx, ystar1 mov entryx, cx mov entryy, dx call _calcbx mov bx, resultantxy mov ax, SEG (08000h:0) mov es, ax mov ax, OFFSET (08000h:0) mov di, ax mov al, byte ptr es:[di+bx] mov cx, SEG (0a000h:0) mov es, cx mov cx, OFFSET (0a000h:0) mov di, cx mov byte ptr es:[di+bx], al mov ax, xstar1 inc ax mov xstar1, ax cmp ax, 320 jl checkystary2 mov ax, 0 mov xstar1, ax mov ax, ystar1 clc adc ax, 10 mov ystar1, ax cmp ax, 200 jl checkystary2 mov ax, 0 mov ystar1, ax checkystary2: mov cx, xstar1 mov dx, ystar1 ;cmp cx, 0 ;jne Heaven1203 ;cmp dx, 0 ;jne Heaven1203 ;jmp exitHeaven1203 ;Heaven1203: ;cmp cx, 319 ;jne Heaven2403 ;cmp dx, 199 ;jne Heaven2403 ;jmp exitHeaven1203 ;exitHeaven1203: ;jmp exitmovestary ;Heaven2403: mov entryx, cx mov entryy, dx call _calcbx mov bx, resultantxy mov al, 14 mov byte ptr es:[di+bx], al exitmovestary: pop di pop es pop si pop ds pop dx pop cx pop bx pop ax ret _stary ENDP _star12 PROC push ax push bx push cx push dx push ds push si push es push di mov ax, xstar2 dec ax mov xstar2, ax cmp ax, 0 je movestar12 jmp exitmovestar12 movestar12: mov ax, ystar2 mov xstar2, ax mov cx, xstar1 mov dx, ystar1 mov entryx, cx mov entryy, dx call _calcbx mov bx, resultantxy mov ax, SEG (08000h:0) mov es, ax mov ax, OFFSET (08000h:0) mov di, ax mov al, byte ptr es:[di+bx] mov cx, SEG (0a000h:0) mov es, cx mov cx, OFFSET (0a000h:0) mov di, cx mov byte ptr es:[di+bx], al mov ax, ystar1 dec ax mov ystar1, ax cmp ax, 200 jl checkystar12 mov ax, 199 mov ystar1, ax mov ax, xstar1 clc sbb ax, 10 cmp ax, 320 jge okay3 mov xstar1, ax jmp checkystar12 okay3: mov ax, 319 mov xstar1, ax checkystar12: mov cx, xstar1 mov dx, ystar1 ;cmp cx, 0 ;jne Heaven1202 ;cmp dx, 0 ;jne Heaven1202 ;jmp exitHeaven1202 ;Heaven1202: ;cmp cx, 319 ;jne Heaven2402 ;cmp dx, 199 ;jne Heaven2402 ;jmp exitHeaven1202 ;exitHeaven1202: ;jmp exitmovestar12 ;Heaven2402: mov entryx, cx mov entryy, dx call _calcbx mov bx, resultantxy mov al, 14 mov byte ptr es:[di+bx], al exitmovestar12: pop di pop es pop si pop ds pop dx pop cx pop bx pop ax ret _star12 ENDP _starx PROC push ax push bx push cx push dx push ds push si push es push di mov ax, xstar2 dec ax mov xstar2, ax cmp ax, 0 je movestarx12 jmp exitmovestarx12 movestarx12: mov ax, ystar2 mov xstar2, ax mov cx, xstar1 mov dx, ystar1 mov entryx, cx mov entryy, dx call _calcbx mov bx, resultantxy mov ax, SEG (08000h:0) mov es, ax mov ax, OFFSET (08000h:0) mov di, ax mov al, byte ptr es:[di+bx] mov cx, SEG (0a000h:0) mov es, cx mov cx, OFFSET (0a000h:0) mov di, cx mov byte ptr es:[di+bx], al mov ax, xstar1 dec ax cmp ax, 320 jge okay1 mov xstar1, ax jmp checkystarx12 okay1: mov ax, 319 mov xstar1, ax mov ax, ystar1 clc sbb ax, 10 cmp ax, 200 jge okay2 mov ystar1, ax jmp checkystarx12 okay2: mov ax, 199 mov ystar1, ax checkystarx12: mov cx, xstar1 mov dx, ystar1 ;cmp cx, 0 ;jne Heaven12 ;cmp dx, 0 ;jne Heaven12 ;jmp exitHeaven ;Heaven12: ;cmp cx, 319 ;jne Heaven24 ;cmp dx, 199 ;jne Heaven24 ;jmp exitHeaven ;exitHeaven: ;jmp exitmovestarx12 ;Heaven24: mov entryx, cx mov entryy, dx call _calcbx mov bx, resultantxy mov al, 14 mov byte ptr es:[di+bx], al exitmovestarx12: pop di pop es pop si pop ds pop dx pop cx pop bx pop ax ret _starx ENDP end