420 lines
16 KiB
Plaintext
420 lines
16 KiB
Plaintext
![]() |
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Orange Cats Are Pretty.
|
|||
|
<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Author:Ghost
|
|||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Date Of Release:08/13/93
|
|||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Time Of Release:4:00:am
|
|||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Issue<EFBFBD>25<EFBFBD>Of<EFBFBD>OCAP<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
<EFBFBD>Dedicated<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>If you are offended by the topic
|
|||
|
To Freedome of speech, <20> <20><>listed below,delete this file.
|
|||
|
Freedom Of Press, And any
|
|||
|
other civil liberty we can exploit.
|
|||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĮThe Ghost Loader<65><72><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
Okay I just wanted to do a little article about my loader... Just want
|
|||
|
to show you what you can do in assembly... (in case you haven't noticed yet, a
|
|||
|
this is a programming issue not a funny one... so if you want laughs look at
|
|||
|
another issue of ocap...) Okay so now that I got that over with I'll begin. To
|
|||
|
start I'll say that my loader uses routines from 'The Draw 4.01' because I saw
|
|||
|
the routines and that they don't need to use ANSI.SYS to display the pictures.
|
|||
|
I didn't want to develop my own routines because this was a ONE HOUR only type
|
|||
|
of thing that I like doing to was time... Anyway at the end of the file there
|
|||
|
should be a debug script to make the two extra object files that we need to
|
|||
|
assemble this program... The source code is below and commented... you should
|
|||
|
be able to understand this... By the way you'll need TASM and TLINK 1.0 or
|
|||
|
later to assemble this...
|
|||
|
|
|||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Code Start <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
DOSSEG
|
|||
|
.MODEL SMALL ;Small model
|
|||
|
.STACK 256h ;Declare Stack Size
|
|||
|
.386 ;386 CODE
|
|||
|
|
|||
|
DATASEG
|
|||
|
;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
;Data Segment Start
|
|||
|
;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
EXTRN _GHOSTDATA1:BYTE ; Ŀ
|
|||
|
EXTRN _GHOSTDATA1_LENGTH:WORD ; <20> Set-up for external object files
|
|||
|
EXTRN _GHOSTDATA2:BYTE ; <20> (The Pictures)
|
|||
|
EXTRN _GHOSTDATA2_LENGTH:WORD ; <20><>
|
|||
|
|
|||
|
R DB ? ; Variable [R]
|
|||
|
CREDITS DB "-GHoST LoaDeR- Coded by GHoST",10,13,24h ; Credits Message
|
|||
|
|
|||
|
CODESEG
|
|||
|
;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
;Code Segment Start
|
|||
|
;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
UnCrunch Proc Near
|
|||
|
;THE DRAW's UnCrunch Routine
|
|||
|
|
|||
|
Push Si ; Ŀ
|
|||
|
Push Di ; <20>
|
|||
|
Push Ax ; <20> Save registers
|
|||
|
Push Bx ; <20>
|
|||
|
Push Cx ; <20>
|
|||
|
Push Dx ; <20><>
|
|||
|
Jcxz Done
|
|||
|
Mov Dx,Di
|
|||
|
Xor Ax,Ax
|
|||
|
Cld
|
|||
|
Loopa:
|
|||
|
Lodsb
|
|||
|
Cmp Al,32
|
|||
|
Jc ForeGround
|
|||
|
Stosw
|
|||
|
Next:
|
|||
|
Loop Loopa
|
|||
|
Jmp Short Done
|
|||
|
ForeGround:
|
|||
|
Cmp Al,16
|
|||
|
Jnc BackGround
|
|||
|
And Ah,0F0h
|
|||
|
Or Ah,Al
|
|||
|
Jmp Next
|
|||
|
BackGround:
|
|||
|
Cmp Al,24
|
|||
|
Jz NextLine
|
|||
|
Jnc FlashBitToggle
|
|||
|
Sub Al,16
|
|||
|
Add Al,Al
|
|||
|
Add Al,Al
|
|||
|
Add Al,Al
|
|||
|
Add Al,Al
|
|||
|
And Ah,8Fh
|
|||
|
Or Ah,Al
|
|||
|
Jmp Next
|
|||
|
NextLine:
|
|||
|
Add Dx,160
|
|||
|
Mov Di,Dx
|
|||
|
Jmp Next
|
|||
|
FlashBitToggle:
|
|||
|
Cmp Al,27
|
|||
|
Jc MultiOutput
|
|||
|
Jnz Next
|
|||
|
Xor Ah,128
|
|||
|
Jmp Next
|
|||
|
MultiOutput:
|
|||
|
Cmp Al,25
|
|||
|
Mov Bx,Cx
|
|||
|
Lodsb
|
|||
|
Mov Cl,Al
|
|||
|
Mov Al,32
|
|||
|
Jz StartOutput
|
|||
|
Lodsb
|
|||
|
Dec Bx
|
|||
|
StartOutput:
|
|||
|
Xor Ch,Ch
|
|||
|
Inc Cx
|
|||
|
Rep Stosw
|
|||
|
Mov Cx,Bx
|
|||
|
Dec Cx
|
|||
|
Loopnz Loopa
|
|||
|
Done:
|
|||
|
Pop Dx ; Ŀ
|
|||
|
Pop Cx ; <20>
|
|||
|
Pop Bx ; <20> Restore registers
|
|||
|
Pop Ax ; <20>
|
|||
|
Pop Di ; <20>
|
|||
|
Pop Si ; <20><>
|
|||
|
Ret ; Return to calling procedure/code
|
|||
|
|
|||
|
UnCrunch Endp
|
|||
|
|
|||
|
ScanKeys Proc Near
|
|||
|
Mov ah,11h ; Dos function check for key press
|
|||
|
Int 16h ; Do It!
|
|||
|
Jnz GetTheKey ; If the key was pressed then Check what key
|
|||
|
; was pressed...
|
|||
|
Clc ; If not then clear flag Z...
|
|||
|
Ret ; and return to place where this
|
|||
|
; routine was called from.
|
|||
|
GetTheKey:
|
|||
|
Mov ah,10h ; Dos function check key
|
|||
|
Int 16h ; Do It!
|
|||
|
Cmp al,27 ; Check Key Against Escape...
|
|||
|
Jne KeepGoing ; If so then jump keepgoing...
|
|||
|
Call EndProg ; If not call end program
|
|||
|
Ret ; Return to calling procedure/code
|
|||
|
|
|||
|
KeepGoing:
|
|||
|
Clc ; Clear Flags
|
|||
|
Ret ; Return to calling procedure/code
|
|||
|
|
|||
|
ScanKeys EndP
|
|||
|
|
|||
|
DoCycle Proc Near
|
|||
|
Mov Dx,3DAh ; Ŀ
|
|||
|
Want: In Al,Dx ; <20>
|
|||
|
Test Al,08h ; <20>
|
|||
|
Jz Want ; <20> Check for graphic re-scan...
|
|||
|
Rent: In Al,Dx ; <20>
|
|||
|
Test Al,08h ; <20>
|
|||
|
Jnz Rent ; <20><>
|
|||
|
Ret ; Return the calling procedure/code
|
|||
|
DoCycle ENDP
|
|||
|
|
|||
|
EndProg Proc Near
|
|||
|
Mov Ax,@data ; AX = DATA SEGMENT
|
|||
|
Mov Ds,Ax ; DS=AX(DATA SEGMENT)
|
|||
|
|
|||
|
Mov Si,offset _GHOSTDATA2 ; Ŀ
|
|||
|
Mov Ax,0B800h ; <20>
|
|||
|
Mov Es,Ax ; <20> Set up data and call
|
|||
|
Mov Di,0 ; <20> procedure UnCrunch
|
|||
|
Mov Cx,_GHOSTDATA2_LENGTH ; <20>
|
|||
|
Call UnCrunch ; <20><>
|
|||
|
|
|||
|
mov ah,0 ; Function Wait for Key Press...
|
|||
|
int 16h ; Do It!
|
|||
|
|
|||
|
mov ax,0003h ; Function set mode 80x25x16 (clear screen)
|
|||
|
int 10h ; Do It!
|
|||
|
|
|||
|
Mov Ah,9 ; Function display string...
|
|||
|
Mov Dx,offset Credits ; Set string address to offset Credits
|
|||
|
Int 21h ; Do It!
|
|||
|
|
|||
|
mov Ax,4C00h ; Function Exit to DOS
|
|||
|
int 21h ; Int 21h
|
|||
|
EndProg EndP
|
|||
|
|
|||
|
Start:
|
|||
|
;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
;Start Actual Code
|
|||
|
;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
mov ax,0003h ; Function set mode 80x25x16 (clear screen)
|
|||
|
int 10h ; Do It!
|
|||
|
|
|||
|
Mov Ax,@data ; AX = DATA SEGMENT
|
|||
|
Mov Ds,Ax ; DS=AX(DATA SEGMENT)
|
|||
|
|
|||
|
Mov Si,offset _GHOSTDATA1 ; Ŀ
|
|||
|
Mov Ax,0B800h ; <20>
|
|||
|
Mov Es,Ax ; <20> Call UnCrunch
|
|||
|
Mov Di,0 ; <20>
|
|||
|
Mov Cx,_GHOSTDATA1_LENGTH ; <20>
|
|||
|
Call UnCrunch ; <20><>
|
|||
|
|
|||
|
Mov Ax,@data ; AX = DATA SEGMENT
|
|||
|
Mov Ds,Ax ; DS=AX(DATA SEGMENT)
|
|||
|
|
|||
|
Mov Al,2 ; This activates the color palette on some
|
|||
|
Mov Dx,3C4h ; computers... Without this you the loader
|
|||
|
Out Dx,Al ; won't work on some systems...
|
|||
|
|
|||
|
Mov Al,7 ; Set color to change to 7.
|
|||
|
Mov Dx,3C8h ; Set address to poke 7.
|
|||
|
Out Dx,Al ; Do It!
|
|||
|
|
|||
|
Mov Al,0 ; Change color red yellow and blue...
|
|||
|
Mov Dx,3C9h ; Set address to poke 7...
|
|||
|
Out Dx,Al ; Do It (red)!
|
|||
|
Out Dx,Al ; Do It (yellow)!
|
|||
|
Out Dx,Al ; Do It (blue)!
|
|||
|
Repeat:
|
|||
|
|
|||
|
Mov [R], 0
|
|||
|
|
|||
|
Looper:
|
|||
|
Mov Al,7 ; Set color to change to 7.
|
|||
|
Mov Dx,3C8h ; Set address to poke 7.
|
|||
|
Out Dx,Al ; Do It!
|
|||
|
|
|||
|
Mov Al,[R] ; Number [R]
|
|||
|
Mov Dx,3C9h ; Address 3C9h
|
|||
|
|
|||
|
Out Dx,Al ; Red = R
|
|||
|
Out Dx,Al ; Yellow = R
|
|||
|
Out Dx,Al ; Blue = R
|
|||
|
|
|||
|
Call DoCycle ; Call DoCycle
|
|||
|
Inc [R] ; Increase [R]
|
|||
|
Cmp [R], 63 ; Compare [R] to 63
|
|||
|
Jle Looper ; If R not 63 goto looper
|
|||
|
|
|||
|
Call ScanKeys ; call scan keys
|
|||
|
|
|||
|
Mov [R], 63
|
|||
|
|
|||
|
Looper1:
|
|||
|
|
|||
|
Mov Al,7 ; Set color to change to 7
|
|||
|
Mov Dx,3C8h ; Set Address to poke [R] in to...
|
|||
|
Out Dx,Al ; Do It!
|
|||
|
|
|||
|
Mov Al,[R] ; Set color to [R]
|
|||
|
Mov Dx,3C9h ; Set Address to poke [R] in to...
|
|||
|
|
|||
|
Out Dx,Al ; Do It (RED)!
|
|||
|
Out Dx,Al ; Do It (Yellow)!
|
|||
|
Out Dx,Al ; Do It (Blue)!
|
|||
|
|
|||
|
Call DoCycle ; Call Scan Cycle
|
|||
|
Sub [R],1 ; Decrease
|
|||
|
Cmp [R],0 ; Compare [R] to 0
|
|||
|
|
|||
|
Jnle Looper1 ; If R is not less or equal to then jump
|
|||
|
; to looper1
|
|||
|
|
|||
|
Call ScanKeys ; Call scan keys
|
|||
|
Jmp Repeat ; Jump Repeat...
|
|||
|
|
|||
|
END Start
|
|||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Code End <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
Save the code as GHOST.ASM... You'll need the extra object files to make the
|
|||
|
picture of me... Or it won't work... Type in the script below and save it as
|
|||
|
OBJECTS.SCR for later use...
|
|||
|
|
|||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Debug Script Start <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
n GHOST1.OBJ
|
|||
|
e 0100 80 03 00 01 41 3B 88 15 00 00 00 54 68 65 44 72
|
|||
|
e 0110 61 77 20 4F 42 4A 20 46 69 6C 65 A0 01 78 96 14
|
|||
|
e 0120 00 00 04 44 41 54 41 06 44 47 52 4F 55 50 05 5F
|
|||
|
e 0130 44 41 54 41 E3 98 07 00 48 B6 02 04 02 01 5A 9A
|
|||
|
e 0140 04 00 03 FF 01 5F 90 52 00 00 01 11 5F 47 48 4F
|
|||
|
e 0150 53 54 44 41 54 41 31 5F 57 49 44 54 48 00 00 00
|
|||
|
e 0160 11 5F 47 48 4F 53 54 44 41 54 41 31 5F 44 45 50
|
|||
|
e 0170 54 48 02 00 00 12 5F 47 48 4F 53 54 44 41 54 41
|
|||
|
e 0180 31 5F 4C 45 4E 47 54 48 04 00 00 0B 5F 47 48 4F
|
|||
|
e 0190 53 54 44 41 54 41 31 06 00 00 42 A0 04 02 01 00
|
|||
|
e 01A0 00 50 00 16 00 B0 02 04 10 19 2C 07 DC DB DB 18
|
|||
|
e 01B0 19 26 DC DC 1A 03 DB DC DF 18 19 23 DC DB DB DF
|
|||
|
e 01C0 DB DB DC DF DB DB DC 18 19 22 1A 04 DB DC DF DB
|
|||
|
e 01D0 DB DC DF DB DB 20 DC DC 18 19 21 DB DB DC DF DF
|
|||
|
e 01E0 DB DB DB DC DF DF DF DC DC 1A 05 DB DC DC 18 19
|
|||
|
e 01F0 20 DB DB DF DC DB DB 1A 03 DC 1A 0E DB DC 18 19
|
|||
|
e 0200 1F DB DB 20 DB DB DB DF 20 1A 04 DB 20 DF 1A 0C
|
|||
|
e 0210 DB DC 18 19 1F DB 20 DB DB DB 20 20 1A 05 DB 20
|
|||
|
e 0220 20 1A 0E DB DC 18 19 1E DB 20 DB DB DB 19 02 1A
|
|||
|
e 0230 03 DB DF 19 02 1A 0F DB 18 19 1E DB 20 DB DB 19
|
|||
|
e 0240 04 DB DB 19 05 1A 0E DB 18 19 1E DB 20 DB DB 19
|
|||
|
e 0250 04 DB DB 19 05 1A 0E DB 18 19 1D DB DB 20 DB DB
|
|||
|
e 0260 DB DC 20 20 DC DB DB DC 19 03 1A 0D DB DF DF DC
|
|||
|
e 0270 18 03 49 27 6D 20 61 72 6F 75 6E 64 20 6D 6F 73
|
|||
|
e 0280 74 20 6F 66 20 74 68 65 20 74 69 6D 65 2E 20 07
|
|||
|
e 0290 1A 03 DB 20 1A 14 DB DF DF DB DB DB 20 DB DB 20
|
|||
|
e 02A0 DB 18 0F 1A 31 C4 BF 07 DB DB DB 20 DB DB 1A 03
|
|||
|
e 02B0 DC DB DB DB 20 DB 18 20 20 01 1A 03 DC 20 DC DC
|
|||
|
e 02C0 DC 19 04 DC DC 20 20 1A 06 DC 19 08 1A 0C DC 20
|
|||
|
e 02D0 20 0F B3 07 DB DB DF DC DC DF 1A 07 DB 20 DB DC
|
|||
|
e 02E0 DC 18 20 01 1A 05 DB DC DF DB DB 19 02 1A 03 DB
|
|||
|
e 02F0 DD 20 1A 06 DB DC 20 20 1A 06 DC 20 DF 1A 09 DB
|
|||
|
e 0300 20 0F B3 07 DB 20 1A 03 DB 00 17 DF 07 10 1A 07
|
|||
|
e 0310 DB DC DF DF DF DB DC DC DC 18 01 DB DB DB DF 20
|
|||
|
e 0320 20 DF DB DB 20 DB DD 20 DE 1A 03 DB DD 20 1A 07
|
|||
|
e 0330 DB 20 1A 07 DB DD 20 1A 08 DB DF 20 0F B3 20 07
|
|||
|
e 0340 DB 00 17 DF 07 10 DF 1A 0E DB DC DF DF DB DB DB
|
|||
|
e 0350 DC 18 01 DB DB DB 20 20 1A 03 DC DE 1A 07 DB 20
|
|||
|
e 0360 20 DE DB 20 20 1A 03 DB 20 1A 03 DB DC DC DC 20
|
|||
|
e 0370 20 DF 1A 04 DB DF 19 04 0F B3 20 17 20 20 07 10
|
|||
|
e 0380 DB 00 17 DF 07 10 1A 10 DB DC DC DF DB DB DC 18
|
|||
|
e 0390 20 01 DB DB DC DC DC DB DB DF DE DB DB DF DF 1A
|
|||
|
e 03A0 03 69 A0 BA 00 01 00 02 DB DD 20 20 1A 06 DB 20
|
|||
|
e 03B0 20 DF DF DF 1A 03 DB 20 20 DE 1A 04 DB 19 04 0F
|
|||
|
e 03C0 B3 07 DC DF DF DF 1A 14 DB DC DB DB DC 18 20 20
|
|||
|
e 03D0 01 1A 04 DF 20 DC DB DB DB DD 20 DE 1A 03 DB 20
|
|||
|
e 03E0 20 1A 04 DB DF 20 DC 1A 07 DB 20 20 1A 05 DB 19
|
|||
|
e 03F0 04 0F B3 07 1A 03 DB DC DF DF 1A 03 DB DF DF DF
|
|||
|
e 0400 1A 0E DB 18 19 08 01 DF DF DF 19 02 DF DF DF 20
|
|||
|
e 0410 DC DB DB DB DF DF 20 DC DC 1A 06 DB DF 20 20 DC
|
|||
|
e 0420 1A 04 DB DF 19 04 0F B3 07 1A 05 DB 11 DB 10 1A
|
|||
|
e 0430 03 DC DB DB DB DC DC DC DF DF 1A 08 DB DF 18 08
|
|||
|
e 0440 3C 43 6F 44 65 44 20 42 59 20 47 48 6F 53 54 3E
|
|||
|
e 0450 19 21 0F B3 07 1A 12 DB 20 20 1A 05 DF 18 B1 8A
|
|||
|
e 0460 02 00 00 74
|
|||
|
rcx
|
|||
|
364
|
|||
|
w
|
|||
|
n GHOST2.OBJ
|
|||
|
e 0100 80 03 00 01 41 3B 88 15 00 00 00 54 68 65 44 72
|
|||
|
e 0110 61 77 20 4F 42 4A 20 46 69 6C 65 A0 01 78 96 14
|
|||
|
e 0120 00 00 04 44 41 54 41 06 44 47 52 4F 55 50 05 5F
|
|||
|
e 0130 44 41 54 41 E3 98 07 00 48 B6 02 04 02 01 5A 9A
|
|||
|
e 0140 04 00 03 FF 01 5F 90 52 00 00 01 11 5F 47 48 4F
|
|||
|
e 0150 53 54 44 41 54 41 32 5F 57 49 44 54 48 00 00 00
|
|||
|
e 0160 11 5F 47 48 4F 53 54 44 41 54 41 32 5F 44 45 50
|
|||
|
e 0170 54 48 02 00 00 12 5F 47 48 4F 53 54 44 41 54 41
|
|||
|
e 0180 32 5F 4C 45 4E 47 54 48 04 00 00 0B 5F 47 48 4F
|
|||
|
e 0190 53 54 44 41 54 41 32 06 00 00 3E A0 04 02 01 00
|
|||
|
e 01A0 00 50 00 16 00 B0 02 04 10 19 2C 07 DC DB DB 18
|
|||
|
e 01B0 19 26 DC DC 1A 03 DB DC DF 18 19 23 DC DB DB DF
|
|||
|
e 01C0 DB DB DC DF DB DB DC 18 19 22 1A 04 DB DC DF DB
|
|||
|
e 01D0 DB DC DF DB DB 20 DC DC 18 19 21 DB DB DC DF DF
|
|||
|
e 01E0 DB DB DB DC DF DF DF DC DC 1A 05 DB DC DC 18 19
|
|||
|
e 01F0 20 DB DB DF DC DB DB 1A 03 DC 1A 0E DB DC 18 19
|
|||
|
e 0200 1F DB DB 20 DB DB DB DF 20 1A 04 DB 20 DF 1A 0C
|
|||
|
e 0210 DB DC 18 19 1F DB 20 DB DB DB 20 20 1A 05 DB 20
|
|||
|
e 0220 20 1A 0E DB DC 18 19 1E DB 20 DB DB DB 19 02 1A
|
|||
|
e 0230 03 DB DF 19 02 1A 0F DB 18 19 1E DB 20 DB DB 19
|
|||
|
e 0240 04 DB DB 19 05 1A 0E DB 18 19 1E DB 20 DB DB 19
|
|||
|
e 0250 04 DB DB 19 05 1A 0E DB 18 19 1D DB DB 20 DB DB
|
|||
|
e 0260 DB DC 20 20 DC DB DB DC 19 03 1A 0D DB DF DF DC
|
|||
|
e 0270 18 20 20 0C 5B 20 50 72 65 73 73 20 61 6E 79 20
|
|||
|
e 0280 6B 65 79 20 74 6F 20 45 78 69 74 20 5D 20 20 07
|
|||
|
e 0290 1A 03 DB 20 1A 14 DB DF DF DB DB DB 20 DB DB 20
|
|||
|
e 02A0 DB 18 0F 1A 31 C4 BF 07 DB DB DB 20 DB DB 1A 03
|
|||
|
e 02B0 DC DB DB DB 20 DB 18 20 20 01 1A 03 DC 20 DC DC
|
|||
|
e 02C0 DC 19 04 DC DC 20 20 1A 06 DC 19 08 1A 0C DC 20
|
|||
|
e 02D0 20 0F B3 07 DB DB DF DC DC DF 1A 07 DB 20 DB DC
|
|||
|
e 02E0 DC 18 20 01 1A 05 DB DC DF DB DB 19 02 1A 03 DB
|
|||
|
e 02F0 DD 20 1A 06 DB DC 20 20 1A 06 DC 20 DF 1A 09 DB
|
|||
|
e 0300 20 0F B3 07 DB 20 1A 03 DB 00 17 DF 07 10 1A 07
|
|||
|
e 0310 DB DC DF DF DF DB DC DC DC 18 01 DB DB DB DF 20
|
|||
|
e 0320 20 DF DB DB 20 DB DD 20 DE 1A 03 DB DD 20 1A 07
|
|||
|
e 0330 DB 20 1A 07 DB DD 20 1A 08 DB DF 20 0F B3 20 07
|
|||
|
e 0340 DB 00 17 DF 07 10 DF 1A 0E DB DC DF DF DB DB DB
|
|||
|
e 0350 DC 18 01 DB DB DB 20 20 1A 03 DC DE 1A 07 DB 20
|
|||
|
e 0360 20 DE DB 20 20 1A 03 DB 20 1A 03 DB DC DC DC 20
|
|||
|
e 0370 20 DF 1A 04 DB DF 19 04 0F B3 20 17 20 20 07 10
|
|||
|
e 0380 DB 00 17 DF 07 10 1A 10 DB DC DC DF DB DB DC 18
|
|||
|
e 0390 20 01 DB DB DC DC DC DB DB DF DE DB DB DF DF 1A
|
|||
|
e 03A0 03 29 A0 BA 00 01 00 02 DB DD 20 20 1A 06 DB 20
|
|||
|
e 03B0 20 DF DF DF 1A 03 DB 20 20 DE 1A 04 DB 19 04 0F
|
|||
|
e 03C0 B3 07 DC DF DF DF 1A 14 DB DC DB DB DC 18 20 20
|
|||
|
e 03D0 01 1A 04 DF 20 DC DB DB DB DD 20 DE 1A 03 DB 20
|
|||
|
e 03E0 20 1A 04 DB DF 20 DC 1A 07 DB 20 20 1A 05 DB 19
|
|||
|
e 03F0 04 0F B3 07 1A 03 DB DC DF DF 1A 03 DB DF DF DF
|
|||
|
e 0400 1A 0E DB 18 19 08 01 DF DF DF 19 02 DF DF DF 20
|
|||
|
e 0410 DC DB DB DB DF DF 20 DC DC 1A 06 DB DF 20 20 DC
|
|||
|
e 0420 1A 04 DB DF 19 04 0F B3 07 1A 05 DB 11 DB 10 1A
|
|||
|
e 0430 03 DC DB DB DB DC DC DC DF DF 1A 08 DB DF 18 08
|
|||
|
e 0440 3C 43 6F 44 65 44 20 42 59 20 47 48 6F 53 54 3E
|
|||
|
e 0450 19 21 0F B3 07 1A 12 DB 20 20 1A 05 DF 18 B1 8A
|
|||
|
e 0460 02 00 00 74
|
|||
|
rcx
|
|||
|
364
|
|||
|
w
|
|||
|
q
|
|||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Debug Script End <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
So there's my loader... 2 hours to comment it and 1 hour to make it still I
|
|||
|
was talking to Venom the whole time... (about what I wasn't paying attention-
|
|||
|
I can't program and talk at the same time so I pretty much pretended to listen
|
|||
|
for most of the call...) So now you will need to assemble it... You'll need to
|
|||
|
create the object file first by typing: DEBUG OBJECTS.SCR... That'll make your
|
|||
|
object files GHOST1.OBJ and GHOST2.OBJ. So now you're all set to start making
|
|||
|
the final program... Type TASM GHOST.ASM to make GHOST.OBJ and then type TLINK
|
|||
|
GHOST GHOST1 GHOST2,GHOST... You should now have GHOST.EXE... There it is, The
|
|||
|
GHoST Loader with the fading effect...
|
|||
|
|
|||
|
GHoST
|
|||
|
|
|||
|
P.S. I included GHOST.EXE incase you don't have TASM or can't assemble it
|
|||
|
for some reason...
|
|||
|
|
|||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ
|
|||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>For<EFBFBD>OCAP<EFBFBD>Support<EFBFBD>Call<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>
|
|||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>[WHQ](203)657-8237.........The Forlorn Hope!<21>ij
|
|||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ij
|
|||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>
|
|||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|