ÜÛÛÛÛÛÛÛÝÄÜÜÜÜÜÜÜÜÜÜÄÄÄÄÄÄÜÛÛÛÜÄÞÛÛÛÛÛÛ Orange Cats Are Pretty. Û ÄÄÄÄÄÛÛÄÛÛÄÄÄÄÄÄÄÄßÜÄÄÜÛÛÄÄÄÛ ÛÝÄÄÄÄÞÛÝÄÄ Author:Ghost ÛÝÄÄÄÄÄÛÛÄÞÛÄÄÄÄÄÄÄÄÄÄÄÜÛÛÄÄÄÄÛÝÞÛÄÄÄÄÄÛÄÄÄÄÄÄÄÄÄDate Of Release:08/13/93 ÛÝÄÄÄÄÄÞÛÄÄÛÝÄÄÄÄÄÄÄÄÜÛÛÛÜÜÄÄÄÞÝÞÛÜÜÜßßÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄTime Of Release:4:00:am ÛÛÄÄÄÄÄÞÛÄÄÞÛÄÄÄÄÄÄÜÛÛÛßÄÜÄßßÜÛÄÞÛÝÄÄÄÄÄÄÄÄÄÄÄÂÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ÛÛÄÄÄÄÄÄÛÄÄÄÛÜÄÄÄÜÛÛÛÛÄÄÛÝÄÄÄÄÞÛÞÛÛÄÄÄÄÄÄIssue´25³OfÄOCAPÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ÞÛÛÛÛÛÛÛßÄÄÄÞÛÜÜÛÛÛÛÛÜÜÜÛÄÄÄÄÄÄÛÝÛÛÄÄÄÄÄÄÄÄÄÄÄÁÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÜÛÛÛÛÝÄÄÄÄÝÄÄÄÄÄÞÛÞÛ ùDedicatedù ßßßßß Ý ÛÞÛÝIf you are offended by the topic To Freedome of speech, Ý ßÝlisted below,delete this file. Freedom Of Press, And any other civil liberty we can exploit. ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ®The Ghost Loader¯ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ 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... ÄÄÄÄÄÄÄÄÄÄÄÄÄ Code Start ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ DOSSEG .MODEL SMALL ;Small model .STACK 256h ;Declare Stack Size .386 ;386 CODE DATASEG ;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ;Data Segment Start ;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ EXTRN _GHOSTDATA1:BYTE ; Ä¿ EXTRN _GHOSTDATA1_LENGTH:WORD ; ³ Set-up for external object files EXTRN _GHOSTDATA2:BYTE ; ³ (The Pictures) EXTRN _GHOSTDATA2_LENGTH:WORD ; ÄÙ R DB ? ; Variable [R] CREDITS DB "-GHoST LoaDeR- Coded by GHoST",10,13,24h ; Credits Message CODESEG ;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ;Code Segment Start ;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ UnCrunch Proc Near ;THE DRAW's UnCrunch Routine Push Si ; Ä¿ Push Di ; ³ Push Ax ; ³ Save registers Push Bx ; ³ Push Cx ; ³ Push Dx ; ÄÙ 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 ; ³ Pop Bx ; ³ Restore registers Pop Ax ; ³ Pop Di ; ³ Pop Si ; ÄÙ 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 ; ³ Test Al,08h ; ³ Jz Want ; ³ Check for graphic re-scan... Rent: In Al,Dx ; ³ Test Al,08h ; ³ Jnz Rent ; ÄÙ 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 ; ³ Mov Es,Ax ; ³ Set up data and call Mov Di,0 ; ³ procedure UnCrunch Mov Cx,_GHOSTDATA2_LENGTH ; ³ Call UnCrunch ; ÄÙ 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: ;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ;Start Actual Code ;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ 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 ; ³ Mov Es,Ax ; ³ Call UnCrunch Mov Di,0 ; ³ Mov Cx,_GHOSTDATA1_LENGTH ; ³ Call UnCrunch ; ÄÙ 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 ÄÄÄÄÄÄÄÄÄÄÄÄÄ Code End ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ 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... ÄÄÄÄÄÄÄÄÄÄÄÄÄ Debug Script Start ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ 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 ÄÄÄÄÄÄÄÄÄÄÄÄÄ Debug Script End ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ 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... ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ÄÜßßßßÛÞÛßßßßÜÄÛßßßßÛÄÛßßßßÜÄÄÄÄÄÄÄÄÄÄÄÄÄForÄOCAPÄSupportÄCallÄÄÄÄÄÄÄÄÄÄÄ ³ ³ÛÍÍÍÍÍÛÞÛÍÍÍÍÍÍÛÄÍÍÍÛ ÛÜÜÜÜßÍÍÍ[WHQ](203)657-8237.........The Forlorn Hope!Íij ³ÛÍÍÍÍÍÛÞÛÍÍÍÍÍÍÛßßßßÛÍÛÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍij ³ÛÜÜÜÜßÄÞÛÜÜÜÜßÄÛÄÄÄÄÛÄÛÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ