.286

SEG_A   SEGMENT
        
                ASSUME CS:SEG_A, DS:SEG_A, ES:SEG_A

                ORG     100h

VMODE = 13H

I_M     PROC FAR

                INCLUDE INC\START.ASM
                INCLUDE INC\QUITNC.ASM

                MOV     AH,12H
                MOV     BL,10H
                INT     10H
                CMP     BH,10H
                JZ      NOVGA
                PUSH    CS
                POP     ES
                LEA     DI,INIT
                XOR     BX,BX
                MOV     AX,1B00H
                INT     10H
                CMP     AL,1BH
                JNZ     NOVGA
                LES     DI,DWORD PTR [DI]
                MOV     AL,ES:[DI+2]
                AND     AL,8
                JNZ     ISVGA
NOVGA:          LEA     DX,SH1
                JMP     VVEGE
SH1             DB      'Video Graphics Adapter required'
                DB      13,10,'$'                                        
SH2             DB      'File not found'
                DB      13,10,'$'

ISVGA:
                CMP     BYTE PTR DS:[5DH],'1'
                JC      YECFG
                CMP     BYTE PTR DS:[5DH],'9'+1
                JC      NOCFG
YECFG:          LEA     DX,FCFG
                MOV     AX,3D00H
                INT     21H
                JC      NOCFG
                MOV     BX,AX
                MOV     DX,5DH
                MOV     CX,3
                MOV     AH,3FH
                INT     21H
                MOV     AH,3EH
                INT     21H

NOCFG:          MOV     AL,0FDH
                OUT     21H,AL

                MOV     AL,BYTE PTR DS:[5DH]
                CMP     AL,'1'
                JC      NPARA2
                CMP     AL,'9'+1
                JC      PARA2
NPARA2:
                LEA     DX,TEXT1
                MOV     AH,9
                INT     21H
                XOR     AH,AH
                INT     16H
PARA2:          CMP     AL,'4'
                JZ      CSEND
                MOV     BYTE PTR KUSS[1],0FCH
                CMP     AL,'1'
                JZ      STRT1
                MOV     OUTPRT,22CH
                CMP     AL,'3'
                JZ      STRT1
                MOV     OUTPRT,378H
STRT1:
                MOV     AL,BYTE PTR DS:[5EH]
                CMP     AL,'1'
                JC      NPARA3
                CMP     AL,'9'+1
                JC      PARA3
NPARA3:
                LEA     DX,TEXT2
                MOV     AH,9
                INT     21H
                XOR     AH,AH
                INT     16H
PARA3:          SUB     AL,'1'
                CMP     OUTPRT,22CH
                JNZ     SZ11
                CMP     AL,2
                JNC     SZ12
SZ11:           CMP     AL,4
                JC      SZAMOK
SZ12:           MOV     AL,1
SZAMOK:         CBW
                SHL     AX,2
                LEA     SI,SPDTAB
                ADD     SI,AX
                LODSW
                MOV     SPDUP,AX
                LODSW
                MOV     SPDDWN,AX
CSEND:          JMP     TEXAT

SPDTAB          DW     2,3, 1,1, 4,3, 5,3

TEXT1:          DB      10,10,13,'Select sound device:',10,13
                DB      '1> PC speaker    2> LPT1    3> SB 220h'
                DB      '    4> No sound$'
TEXT2:          DB      10,10,13,'Select playing frequency:',10,13
                DB      '1> 8Mhz     2> 12Mhz     3> 16Mhz     4> 20Mhz$'

FCFG            DB      'ABADDON.CFG',0
                                         
SH0:
 DB '                 Üßßß ÜßßßÜ ÛÜ  Û ßßÛßß ÜßßßÜ Üßßß ßßÛßß Üßßß',10,13
 DB '                 Û    Û   Û Û Û Û   Û   ÛÜÜÜÛ Û      Û    ßßßÜ',10,13
 DB 'Ú-=ð=-=ð=-=ð=-=ð=ßÜÜÜ-ßÜÜÜßðÛ-=ßÛ-=ðÛ-=ðÛ-=ðÛ-ßÜÜÜ=ð=Û=ð=ßÜÜÜß=ð=-=ð=-=ð=-=ð=Ä¿ '
 DB 'À-=ð=-=ð=Ä¿                     Ú-=ð=-=ð=-=ð=Ä¿                     Ú-=ð=-=ð=ÄÙ '
 DB ' ³        ³ Nothing Face of Abd ³             ³  Bandee of Abaddon  ³        ³  '
 DB ' ³        ³ Gy“r 4. P.O.Box 19. ³             ³  Gy“r£jbar t, 9081  ³        ³  '
 DB ' ³        ³    9004  HUNGARY    ³             ³ Veres P.23. HUNGARY ³        ³  '
 DB ' ³        ³     (96)23-395      ³             ³      (96)55-440     ³        ³  '
 DB 'Ú-=ð=-=ð=ÄÙ                     À-=ð=-=ð=-=ð=ÄÙ                     À-=ð=-=ð=Ä¿ '
 DB 'À-=ð=-=ð=-=ð=-=ð=-=ð=-=ð=-=ð=-=ð=-=ð=-=ð=-=ð=-=ð=-=ð=-=ð=-=ð=-=ð=-=ð=-=ð=-=ð=ÄÙ '
 DB ' ³         ÛÜ ÜÛ Ûßßß ÛÜ ÜÛ ÛßßßÜ Ûßßß ÛßßßÜ    Û    ßÛß Üßßß  ßßÛßß         ³  '
 DB ' ³         Û ß Û Ûßß  Û ß Û ÛßßßÜ Ûßß  ÛßßßÜ    Û     Û   ßßßÜ   Û           ³  '
 DB ' ³  ÚÄÄÄÄÄÄÛÄÄ¿Û ÛÜÜÜ Û ÚÄÛÄÛÜÜÜßÄÛÜÜÜ Û   ÛÚÄÄÄÛÜÜÜÄÜÛÜ ßÜÜÜß  ÚÛÄÄÄÄÄÄÄÄ¿  ³  '
 DB 'Ú-=ð³ ABADDON ³ð=-=ð=-=ð³ ABADDON ³ð=-=ð=-=ð³ ABADDON ³ð=-=ð=-=ð³ ABADDON ³ð=Ä¿ '
 DB '³³ÚÄÙ SWAPPER ÀÄ¿     ÚÄÙ  CODER  ÀÄ¿     ÚÄÙ ZAK-MAN ÀÄ¿     ÚÄÙ GFX-MAN ÀÄ¿³³ '
 DB 'ÀÄÙ             ÀÄÄÄÄÄÙ             ÀÄÄÄÄÄÙ             ÀÄÄÄÄÄÙ             ÀÄÙ '
 DB 'ÚÄ¿ ,,,,,,,,,,, ÚÄÄÄÄÄ¿ ,,,,,,,,,,, ÚÄÄÄÄÄ¿ ,,,,,,,,,,, ÚÄÄÄÄÄ¿ ,,,,,,,,,,, ÚÄ¿ '
 DB '³³³ NothingFace ³     ³   TomCat    ³     ³     EBM     ³     ³    Ninja    ³³³ '
 DB "ÀÄÙ ''''''''''' ÀÄÄÄÄÄÙ ''''''''''' ÀÄÄÄÄÄÙ ''''''''''' ÀÄÄÄÄÄÙ ''''''''''' ÀÄÙ "
 DB 'ÚÄ¿ ,,,,,,,,,,, ÚÄÄÄÄÄ¿ ,,,,,,,,,,, ÚÄÄÄÄÄ¿ ,,,,,,,,,,, ÚÄÄÄÄÄ¿ ,,,,,,,,,,, ÚÄ¿ '
 DB '³³³   Bandee    ³     ³   G.O.D.    ³     ³  Valentine  ³     ³  InnocenT   ³³³ '
 DB "ÀÄÙ ''''''''''' ÀÄÄÄÄÄÙ ''''''''''' ÀÄÄÄÄÄÙ ''''''''''' ÀÄÄÄÄÄÙ ''''''''''' ÀÄÙ "
 DB 'ÚÄ¿             ÚÄÄÄÄÄ¿             ÚÄÄÄÄÄ¿             ÚÄÄÄÄÄ¿             ÚÄ¿ '
 DB 'ÀÙÀÄÄÄÄÄÄÄÄÄÄÄÄÄÙ     ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÙ     ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÙ     ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÙÀÙ$'

TEXAT:
                       mov     ax,ds
                       mov     es,ax
                       lea     si,logtabo
                       lea     di,logtab
                       mov     cx,256
portstp1:              lodsb                         ; counting the new logtab
                       mul     byte ptr [spddwn]     ; ( it depends on
                       div     byte ptr [spdup]      ;   the playing frq.)
                       shl     ah,1
                       cmp     al,ah
                       adc     al,0
                       stosb
                       loop    portstp1
                       mov     al,64h
                       mul     byte ptr [spddwn]     ; counting the new
                       div     byte ptr [spdup]      ; calling frq. of int8
                       shl     ah,1
                       cmp     al,ah
                       adc     al,0
                       mov     [intspd],al
                       mov     ax,2ee0h
                       mul     [spdup]
                       div     [spddwn]              ; counting the new
                       shl     dx,1                  ; notefrq. constant
                       cmp     ax,dx
                       adc     ax,0
                       mov     [plspd],ax

                       cmp     [outprt],22ch
                       jne     portstp5
                       mov     dx,226h
                       mov     al,1
                       out     dx,al
                       mov     cx,100
portstp2:              loop    portstp2
                       xor     al,al
                       out     dx,al
                       mov     cx,100
                       mov     dx,22ah
portstp3:              in      al,dx
                       cmp     al,0aah
                       je      portstp4
                       loop    portstp3
portstp4:              mov     dx,22ch
                       mov     al,0d1h
                       out     dx,al
portstp5:
                       mov     al,34h                ; set timer 0 chan.
                       out     43h,al                ; for interrupts
                       mov     al,[intspd]
                       out     40h,al
                       xor     al,al
                       out     40h,al
                       mov     al,90h                ; set timer 2nd chan.
                       out     43h,al
                       in      al,61h
                       or      al,3                  ; switch on the speaker
                       out     61h,al

                INCLUDE INC\ELTOL.ASM
                INCLUDE INC\START2.ASM
                INCLUDE INC\START3.ASM

                CALL    SCLS

                LEA     SI,SZOVIND
EXOROL:         XOR     BYTE PTR [SI],123
                INC     SI
                CMP     SI,OFFSET SZOVEND
                JNZ     EXOROL

                LEA     DX,FNAME
                MOV     AX,3D00H
                INT     21H
                JNC     FILEVAN
                LEA     DX,SH2
                JMP     WEGE
FILEVAN:        MOV     WORD PTR FILESZAM[1],AX

KUSS:           MOV     AL,0FDH
                OUT     21H,AL

                LEA     SI,KEP6BIT
                CALL    ABA
                CALL    BEZIZI
                LEA     DI,KEP6BIT
                CALL    DARK

                LEA     SI,KEP6BIT+22330
                CALL    ABA
                CALL    BEZIZI
                LEA     DI,KEP6BIT+22330
                CALL    DARK

                LEA     SI,KEP6BIT+22330+6932
                CALL    ABA

                PUSH    0A000H
                POP     ES
                MOV     AX,CS
                ADD     AX,1000H
                MOV     DS,AX
                MOV     SI,50*320
                MOV     CX,250
AGAIN:          PUSH    CX
                CALL    RASTER
                CMP     CX,60
                JC      NOSZOV
                CMP     CX,210
                JNC     NOSZOV
                MOV     DI,SI
                MOV     CX,160
                REP     MOVSW
NOSZOV:         PUSH    SI
                XOR     AL,AL
HHHH:           MOV     BP,OFFSET SINUS
                XOR     SI,SI
                MOV     DI,SI
                MOV     BX,3200H
HULL0:          MOV     DX,320
HULL1:          ADD     BL,[BP]
                JC      CARRY
                TEST    BL,128
                JZ      NULLA
                AND     BL,127
CARRY:          ADC     SI,0
                LODSB
NULLA:          STOSB
                INC     BP
                CMP     BP,OFFSET SINUS+320
                JC      HULL2
                LEA     BP,SINUS
HULL2:          DEC     DX
                JNZ     HULL1
                INC     BP
                CMP     BP,OFFSET SINUS+320
                JC      HULL3
                MOV     BP,OFFSET SINUS
HULL3:          DEC     BH
                JNZ     HULL0
                SUB     WORD PTR CS:HHHH[1],5
                CMP     WORD PTR CS:HHHH[1],OFFSET SINUS
                JNC     HULL4
                ADD     WORD PTR CS:HHHH[1],320
HULL4:          POP     SI
                POP     CX
                LOOP    AGAIN
                PUSH    CS
                POP     DS
                
                LEA     DI,KEP6BIT+22330+6932
                CALL    DARK

                XOR     AX,AX
                MOV     ES,AX
                MOV     AL,ES:[417H]
                AND     BYTE PTR ES:[417H],11110000B
                NOT     AL
                AND     AL,02H
                JZ      VVVVV
                CALL    PIC
                MOV     WORD PTR TEXTPOINT[1],OFFSET DIGITT
                JMP     CHEAT
VVVVV:          MOV     AX,CS
                ADD     AX,1000H
                MOV     ES,AX
                XOR     AX,AX
                MOV     DI,AX
                MOV     CX,32000
                REP     STOSW
VVVV:
                CALL    PIC
                MOV     DX,3C8H
                XOR     AX,AX
                OUT     DX,AL
                INC     DX
                MOV     CX,64
GRAY1:          SHL     AL,1
                ADD     AL,AH
                SHR     AL,2
                OUT     DX,AL
                MOV     AL,AH
                OUT     DX,AL
                OUT     DX,AL
                INC     AH
                LOOP    GRAY1
                XOR     AX,AX
                MOV     CX,64
GRAY4:          MOV     AL,AH
                OUT     DX,AL
                OUT     DX,AL
                SHL     AL,1
                ADD     AL,AH
                SHR     AL,2
                OUT     DX,AL
                INC     AH
                LOOP    GRAY4
                MOV     CX,64
GRAY2:          MOV     AL,63
                OUT     DX,AL
                OUT     DX,AL
                XOR     AL,AL
                OUT     DX,AL
                LOOP    GRAY2
                MOV     CX,64
GRAY3:          MOV     AL,47
                OUT     DX,AL
                OUT     DX,AL
                XOR     AL,AL
                OUT     DX,AL
                LOOP    GRAY3

TELJES:         MOV     AX,0
                INC     WORD PTR TELJES[1]
                PUSH    CS
                POP     ES
                MOV     DI,AX
                AND     DI,1111000000B
                ADD     DI,OFFSET MINTA
                XOR     BX,BX
                AND     AL,63
TELJES1:        MOV     CX,8
TELJES2:        SCASB
                JZ      MEGVAN
                ADD     BX,40
                LOOP    TELJES2
                ADD     BX,7680
                JMP     TELJES1
MEGVAN:
                PUSH    AX
                CALL    PERDIT
                POP     AX
                CMP     AL,63
                JC      TELJES

                MOV     DX,3C8H
ACOD:           MOV     AX,64
                OUT     DX,AL
                INC     DX
                MOV     CX,32
GRAY5:          MOV     AL,AH
                OUT     DX,AL
                OUT     DX,AL
                OUT     DX,AL
                OUT     DX,AL
                OUT     DX,AL
                OUT     DX,AL
                INC     AH
                LOOP    GRAY5

                CALL    SCROLL
CHEAT:          XOR     BYTE PTR PCOD,1
                XOR     BYTE PTR ACOD[1],64
                XOR     BYTE PTR KCOD[1],64
                XOR     WORD PTR BCOD[1],4040H
                JMP     VVVV

PIC:            LEA     DX,KEP6BIT
                MOV     SI,DX
                MOV     BX,WORD PTR FILESZAM[1]
                MOV     CX,48000
                MOV     AH,3FH
;                MOV     AL,BYTE PTR KUSS[1]
;                AND     AL,11111011B
;                OUT     21H,AL
                INT     21H
                CMP     AX,CX
;                MOV     AL,BYTE PTR KUSS[1]
;                OUT     21H,AL
                JNZ     VEGE
                MOV     AX,CS
                ADD     AX,1000H
SELSEG:         ADD     AX,1000H
                XOR     WORD PTR SELSEG[1],1000H
                MOV     ES,AX
                XOR     DI,DI
                MOV     CX,16000
ATPAK:          LODSB
                MOV     BH,AL
                LODSW
                SHR     AX,1
                RCR     BX,1
                SHR     AX,1
                RCR     BX,1
                SHR     AL,1
                RCR     BX,1
                SHR     AL,1
                RCR     BX,1
                SHR     BX,2
                SHR     BL,2
                XCHG    AL,AH
                STOSW
                MOV     AX,BX
                XCHG    AL,AH
                STOSW
                LOOP    ATPAK
                RETN

BIRQ:           PUSH    AX
                MOV     AL,20H
                OUT     20H,AL
                IN      AL,60H
                CMP     AL,1
                JZ      VEGE
                POP     AX
                IRET
VEGE:
                MOV     AX,CS
                MOV     DS,AX
                MOV     ES,AX
                LEA     DI,INIT
                LEA     SI,INIT
                LEA     BX,INIT
                MOV     CX,768
                MOV     DX,3C7H
                XOR     AX,AX
                OUT     DX,AX
                INC     DX
                INC     DX
                REP     INSB
                LEA     SI,INIT
                MOV     CX,768
SZAND:          AND     BYTE PTR [SI],63
                INC     SI
                LOOP    SZAND
                LEA     DI,INIT

DORK:           MOV     BX,64
DORK0:          MOV     SI,DI
                MOV     CX,768
DORK1:          CMP     BYTE PTR [SI],0
                JZ      DORK2
                DEC     BYTE PTR [SI]
DORK2:          INC     SI
                LOOP    DORK1
                CALL    RASTER
                CALL    RASTER
                MOV     SI,DI
                XOR     AL,AL
                MOV     DX,3C8H
                OUT     DX,AL
                MOV     CX,768
                INC     DX
        REP     OUTSB
                MOV     C1VOL,BL
                MOV     C2VOL,BL
                MOV     C3VOL,BL
                MOV     C4VOL,BL
                DEC     BX
                JNZ     DORK0

                MOV     AL,0FFH
                OUT     21H,AL
FILESZAM:       MOV     BX,0
                MOV     AH,3EH
;                MOV     AL,BYTE PTR KUSS[1]
;                AND     AL,11111011B
;                OUT     21H,AL
                INT     21H
                LEA     DX,SH0
WEGE:           PUSH    DX
                XOR     AX,AX
                MOV     ES,AX
KEY1:           MOV     AX,0
                MOV     ES:[24H],AX
KEY2:           MOV     AX,0
                MOV     ES:[26H],AX
TIM1:           MOV     AX,0
                MOV     ES:[20H],AX
TIM2:           MOV     AX,0
                MOV     ES:[22H],AX
                mov     al,34h
                out     43h,al
                xor     al,al
                out     40h,al
                out     40h,al
                mov     al,0b6h
                out     43h,al
                mov     ax,533h
                out     42h,al
                mov     al,ah
                out     42h,al
                in      al,61h
                and     al,not 3
                out     61h,al
OLDMODE:        MOV     AX,1
                INT     10H
                POP     DX
VVEGE:          PUSH    CS
                POP     DS
                MOV     AH,9
                INT     21H
MMASK:          MOV     AL,0B8H
                OUT     21H,AL
                INT     20H

                INCLUDE INC\STM8.ASM
                INCLUDE INC\RASTER.ASM
                INCLUDE INC\SCLS.ASM

ABA:            PUSH    SI
                MOV     AX,CS
                ADD     AX,1000H
                MOV     ES,AX
                ADD     SI,768
                XOR     DI,DI
                MOV     CX,DI
PUT1:           CMP     DI,64000
                JNC     ABAVEG
                LODSB
                TEST    AL,80H
                JZ      PUT2
                NEG     AL
                MOV     CL,AL
                INC     CX
                LODSB
        REP     STOSB
                JMP     PUT1
PUT2:           MOV     CL,AL
                INC     CX
        REP     MOVSB
                JMP     PUT1
ABAVEG:         POP     SI
                CALL    RASTER
                XOR     AL,AL
                MOV     DX,3C8H
                OUT     DX,AL
                MOV     CX,768
                INC     DX
        REP     OUTSB
                RETN

DARK:           MOV     BX,64
DARK0:          MOV     SI,DI
                MOV     CX,768
DARK1:          CMP     BYTE PTR [SI],0
                JZ      DARK2
                DEC     BYTE PTR [SI]
DARK2:          INC     SI
                LOOP    DARK1
                CALL    RASTER
                CALL    RASTER
                MOV     SI,DI
                XOR     AL,AL
                MOV     DX,3C8H
                OUT     DX,AL
                MOV     CX,768
                INC     DX
        REP     OUTSB
                DEC     BX
                JNZ     DARK0
                XOR     AX,AX
                MOV     DI,AX
                MOV     CX,32000
                REP     STOSW
                RETN

SZEL = 40

PERDIT:
                PUSH    0A000H
                POP     ES
                MOV     AX,CS
                ADD     AX,1000H
                MOV     DS,AX
                MOV     AH,15
                MOV     CL,5

KC1:            MOV     CH,25
                MOV     DI,BX
                MOV     SI,BX
                MOV     BP,BX
                ADD     BP,320*24
                CALL    RASTER
                CALL    RASTER
BC1:            PUSH    CX
                AND     CH,AH
PCOD:           JNZ     JOK
                MOV     CX,SZEL/2
                MOV     DX,DS
                ADD     DX,1000H
                MOV     DS,DX
                XCHG    DI,BP
                PUSH    SI
                NEG     SI
                ADD     SI,BX
                LEA     SI,[BX+SI+7680]
        REP     MOVSW
                POP     SI
                ADD     SI,320
                SUB     DI,320+SZEL
                XCHG    DI,BP
                SUB     DX,1000H
                MOV     DS,DX
                JMP     KBC
JOK:            MOV     CX,SZEL
JOK2:           LODSB
                OR      AL,40H
                STOSB
                LOOP    JOK2
                ADD     DI,320-SZEL
                ADD     SI,320-SZEL
KBC:            POP     CX
                DEC     CH
                JNZ     BC1
                SHR     AH,1
                LOOP    KC1
                PUSH    CS
                POP     DS
                RETN

SCROLL:         PUSH    CS
                POP     ES
                LEA     DI,KEP6BIT
                MOV     CX,512*8
BCOD:           MOV     AX,0
                REP     STOSW
FAZIS:          MOV     BP,0
                INC     BYTE PTR FAZIS[1]
                CALL    RASTER
                MOV     AX,0A000H
                MOV     ES,AX
                MOV     DS,AX
                ADD     BP,OFFSET KEP6BIT
                PUSH    BP
                MOV     DI,51232
                MOV     CL,16
SCIK1:          MOV     CH,128
                MOV     SI,DI
SCIK2:          LODSW
                AND     AX,3F3FH
                OR      AX,[BP]
                STOSW
                INC     BP
                INC     BP
                DEC     CH
                JNZ     SCIK2
                ADD     DI,64
                ADD     BP,256
                LOOP    SCIK1
                MOV     AX,CS
                MOV     DS,AX
                MOV     ES,AX
                POP     BX
TEXTPOINT:      LEA     BP,CHEATT
TEXTAGAIN:      MOV     AL,[BP]
                MOV     AH,BYTE PTR FAZIS[1]
                AND     AL,127
                SUB     AL,32
                JNC     NOSPACE
                XOR     AL,AL
                AND     AH,7
                JNZ     SPACE
                INC     BYTE PTR [BP]
                JMP     SPACE
NOSPACE:        AND     AH,7
                JNZ     SPACE
                INC     BP
                MOV     WORD PTR TEXTPOINT[1],BP
SPACE:          CBW
                SHL     AX,5
                LEA     SI,CHARSET
                ADD     SI,AX
                MOV     CX,16
SCIK3:          LODSB
                INC     SI
                ROL     WORD PTR [SI-2],2
                AND     AL,192
                TEST    AL,128
                JNZ     KTOV
KCOD:           XOR     AL,0
KTOV:           MOV     [BX],AL
                MOV     [BX+256],AL
                ADD     BX,512
                LOOP    SCIK3
                MOV     AL,BYTE PTR FAZIS[1]
                AND     AL,7
                JNZ     SCRTOV
                TEST    BYTE PTR [BP-1],128
                JNZ     SCREND
SCRTOV:         JMP     FAZIS
SCREND:         RETN

BEZIZI:
                MOV     BYTE PTR MDH[1],5
                MOV     BYTE PTR SDL[1],32
                MOV     BYTE PTR SDI[2],32
                MOV     BYTE PTR SCX[1],16
                MOV     BYTE PTR SBX[2],64
                MOV     WORD PTR SSI[2],10240
                MOV     BYTE PTR KCIK2[1],32
                MOV     BYTE PTR NDH[1],5
                MOV     BYTE PTR CDL[1],64
                MOV     BYTE PTR CCX[1],32
                MOV     BYTE PTR CBX[2],64
                MOV     WORD PTR CSI[2],20480

                MOV     AX,CS
                ADD     AX,1000H
                MOV     DS,AX
                PUSH    0A000H
                POP     ES

                XOR     DI,DI
                MOV     SI,DI
                CALL    RASTER
                MOV     BP,3
FF1:            CALL    CDL
                DEC     BP
                JNZ     FF1
                MOV     DL,8
                CALL    KCIK

                XOR     DI,DI
                MOV     SI,DI
                PUSH    DS
                POP     BP
                PUSH    CS
                POP     DS
                CALL    ATCOD2
                MOV     BP,3
FF2:            CALL    SDL
                CALL    CDL
                DEC     BP
                JNZ     FF2
                MOV     DL,8
                CALL    KCIK2

                XOR     DI,DI
                MOV     SI,DI
                CALL    ATCOD
                MOV     BP,6
FF3:            CALL    SDL
                CALL    CDL
                DEC     BP
                JNZ     FF3
                MOV     DL,8
                CALL    KCIK2

                XOR     DI,DI
                MOV     SI,DI
                CALL    ATCOD
                MOV     BP,12
FF4:            CALL    SDL
                CALL    CDL
                DEC     BP
                JNZ     FF4
                MOV     DL,8
                CALL    KCIK2

                XOR     DI,DI
                MOV     SI,DI
                CALL    ATCOD
                MOV     BP,25
FF5:            CALL    SDL
                CALL    CDL
                DEC     BP
                JNZ     FF5

                XOR     DI,DI
                MOV     SI,DI
                CALL    ATCOD
                MOV     BP,50
FF6:            CALL    SDL
                CALL    CDL
                DEC     BP
                JNZ     FF6

                XOR     DI,DI
                MOV     SI,DI
                CALL    KIV
                MOV     BX,100
MCIK:           MOV     CX,160
VCIK:           CMPSB
                MOVSB
                LOOP    VCIK
                MOV     CX,160
                REP     MOVSW
                DEC     BX
                JNZ     MCIK
                PUSH    CS
                POP     DS
                MOV     CX,250
VAR5:           CALL    RASTER
                LOOP    VAR5
                RETN

CDL:            MOV     DL,64
KCIK:           XOR     BX,BX
NDH:            MOV     DH,5
BCIK:           MOV     AL,[BX+SI]
                MOV     AH,AL
CCX:            MOV     CX,32
                REP     STOSW
CBX:            ADD     BX,64
                DEC     DH
                JNZ     BCIK
                DEC     DX
                JNZ     KCIK
CSI:            ADD     SI,20480
                RETN

SDL:            MOV     DL,32
KCIK2:          MOV     BX,32
MDH:            MOV     DH,5
BCIK2:          MOV     AL,[BX+SI]
                MOV     AH,AL
SDI:            ADD     DI,32
SCX:            MOV     CX,16
                REP     STOSW
SBX:            ADD     BX,64
                DEC     DH
                JNZ     BCIK2
                DEC     DX
                JNZ     KCIK2
SSI:            ADD     SI,10240
                RETN

ATCOD:          PUSH    DS
                POP     BP
                PUSH    CS
                POP     DS
                SHL     BYTE PTR MDH[1],1
                SHR     BYTE PTR SDL[1],1
                SHR     BYTE PTR SDI[2],1
                SHR     BYTE PTR SCX[1],1
                SHR     BYTE PTR SBX[2],1
                SHR     WORD PTR SSI[2],1
                SHR     BYTE PTR KCIK2[1],1
ATCOD2:         SHL     BYTE PTR NDH[1],1
                SHR     BYTE PTR CDL[1],1
                SHR     BYTE PTR CCX[1],1
                SHR     BYTE PTR CBX[2],1
                SHR     WORD PTR CSI[2],1
                PUSH    BP
                POP     DS
KIV:            MOV     CX,8
KIVAR:          CALL    RASTER
                LOOP    KIVAR
                RETN
MINTA:
        DB      00,01,02,03,04,05,06,07
        DB      27,28,29,30,31,32,33,08
        DB      26,47,48,49,50,51,34,09
        DB      25,46,59,60,61,52,35,10
        DB      24,45,58,63,62,53,36,11
        DB      23,44,57,56,55,54,37,12
        DB      22,43,42,41,40,39,38,13
        DB      21,20,19,18,17,16,15,14

        DB      06,21,23,43,45,57,59,63
        DB      08,04,19,25,41,47,55,61
        DB      32,10,02,17,27,39,49,53
        DB      34,30,12,00,15,29,37,51
        DB      50,36,28,14,01,13,31,35
        DB      52,48,38,26,16,03,11,33
        DB      60,54,46,40,24,18,05,09
        DB      62,58,56,44,42,22,20,07

        DB      00,63,02,61,04,59,06,57
        DB      55,08,53,10,51,12,49,14
        DB      16,47,18,45,20,43,22,41
        DB      39,24,37,26,35,28,33,30
        DB      32,31,34,29,36,27,38,25
        DB      23,40,21,42,19,44,17,46
        DB      48,15,50,13,52,11,54,09
        DB      07,56,05,58,03,60,01,62

        DB      30,58,35,10,62,32,49,42
        DB      41,01,51,31,16,45,03,23
        DB      63,22,17,00,40,26,59,36
        DB      11,34,25,20,06,53,15,44
        DB      29,61,02,38,09,33,50,04
        DB      57,12,21,54,19,48,24,56
        DB      07,39,46,13,52,05,43,27
        DB      47,08,18,55,28,60,37,14

        DB      49,50,51,52,53,54,55,56
        DB      48,25,26,27,28,29,30,57
        DB      47,24,09,10,11,12,31,58
        DB      46,23,08,01,02,13,32,59
        DB      45,22,07,00,03,14,33,60
        DB      44,21,06,05,04,15,34,61
        DB      43,20,19,18,17,16,35,62
        DB      42,41,40,39,38,37,36,63

        DB      49,47,17,15,00,30,32,62
        DB      51,45,19,13,02,28,34,60
        DB      53,43,21,11,04,26,36,58
        DB      55,41,23,09,06,24,38,56
        DB      57,39,25,07,08,22,40,54
        DB      59,37,27,05,10,20,42,52
        DB      61,35,29,03,12,18,44,50
        DB      63,33,31,01,14,16,46,48

        DB      00,01,02,03,04,05,06,07
        DB      32,33,34,35,36,37,38,39
        DB      08,09,10,11,12,13,14,15
        DB      40,41,42,43,44,45,46,47
        DB      16,17,18,19,20,21,22,23
        DB      48,49,50,51,52,53,54,55
        DB      24,25,26,27,28,29,30,31
        DB      56,57,58,59,60,61,62,63

        DB      48,50,52,54,56,58,60,62
        DB      46,44,42,40,38,36,34,32
        DB      25,23,21,19,12,10,08,30
        DB      27,05,03,17,14,00,06,28
        DB      29,07,01,15,16,02,04,26
        DB      31,09,11,13,18,20,22,24
        DB      33,35,37,39,41,43,45,47
        DB      63,61,59,57,55,53,51,49

        DB      63,48,47,32,31,16,15,00
        DB      62,49,46,33,30,17,14,01
        DB      61,50,45,34,29,18,13,02
        DB      60,51,44,35,28,19,12,03
        DB      59,52,43,36,27,20,11,04
        DB      58,53,42,37,26,21,10,05
        DB      57,54,41,38,25,22,09,06
        DB      56,55,40,39,24,23,08,07

        DB      35,21,20,10,09,03,02,00
        DB      36,34,22,19,11,08,04,01
        DB      48,37,33,23,18,12,07,05
        DB      49,47,38,32,24,17,13,06
        DB      57,50,46,39,31,25,16,14
        DB      58,56,51,45,40,30,26,15
        DB      62,59,55,52,44,41,29,27
        DB      63,61,60,54,53,43,42,28

        DB      35,36,48,49,57,58,62,63
        DB      21,34,37,47,50,56,59,61
        DB      20,22,33,38,46,51,55,60
        DB      10,19,23,32,39,45,52,54
        DB      09,11,18,24,31,40,44,53
        DB      03,08,12,17,25,30,41,43
        DB      02,04,07,13,16,26,29,42
        DB      00,01,05,06,14,15,27,28

        DB      60,28,61,29,62,30,63,31
        DB      24,56,25,57,26,58,27,59
        DB      52,20,53,21,54,22,55,23
        DB      16,48,17,49,18,50,19,51
        DB      44,12,45,13,46,14,47,15
        DB      08,40,09,41,10,42,11,43
        DB      36,04,37,05,38,06,39,07
        DB      00,32,01,33,02,34,03,35

        DB      07,06,05,04,03,02,01,00
        DB      08,09,10,11,12,13,14,15
        DB      23,22,21,20,19,18,17,16
        DB      24,25,26,27,28,29,30,31
        DB      39,38,37,36,35,34,33,32
        DB      40,41,42,43,44,45,46,47
        DB      55,54,53,52,51,50,49,48
        DB      56,57,58,59,60,61,62,63

        DB      04,05,06,07,08,09,10,11
        DB      31,44,45,46,47,48,49,12
        DB      30,63,32,33,34,35,50,13
        DB      29,62,43,00,01,36,51,14
        DB      28,61,42,03,02,37,52,15
        DB      27,60,41,40,39,38,53,16
        DB      26,59,58,57,56,55,54,17
        DB      25,24,23,22,21,20,19,18

        DB      00,62,05,57,14,48,27,35
        DB      61,04,56,13,47,26,34,42
        DB      03,55,12,46,25,33,41,20
        DB      54,11,45,24,32,40,19,53
        DB      10,44,23,31,39,18,52,09
        DB      43,22,30,38,17,51,08,60
        DB      21,29,37,16,50,07,59,02
        DB      28,36,15,49,06,58,01,63

        DB      00,02,04,06,07,05,03,01
        DB      08,10,12,14,15,13,11,09
        DB      16,18,20,22,23,21,19,17
        DB      24,26,28,30,31,29,27,25
        DB      32,34,36,38,39,37,35,33
        DB      40,42,44,46,47,45,43,41
        DB      48,50,52,54,55,53,51,49
        DB      56,58,60,62,63,61,59,57

SINUS:
 DB 129,131,132,133,134,136,137,138,139,140,142,143,144,145,147,148,149,150,151
 DB 152,154,155,156,157,158,159,160,161,163,164,165,166,167,168,169,170,171,171
 DB 172,173,174,175,176,177,177,178,179,180,181,181,182,183,183,184,184,185,186
 DB 186,187,187,188,188,188,189,189,190,190,190,191,191,191,191,191,192,192,192
 DB 192,192,192,192,192,192,192,192,192,192,191,191,191,191,191,190,190,190,189
 DB 189,188,188,188,187,187,186,186,185,184,184,183,183,182,181,181,180,179,178
 DB 177,177,176,175,174,173,172,171,171,170,169,168,167,166,165,164,163,161,160
 DB 159,158,157,156,155,154,152,151,150,149,148,147,145,144,143,142,140,139,138
 DB 137,136,134,133,132,131,129,128,127,125,124,123,122,120,119,118,117,116,114
 DB 113,112,111,109,108,107,106,105,104,102,101,100,99,98,97,96,95,93,92,91,90
 DB 89,88,87,86,85,85,84,83,82,81,80,79,79,78,77,76,75,75,74,73,73,72,72,71,70
 DB 70,69,69,68,68,68,67,67,66,66,66,65,65,65,65,65,64,64,64,64,64,64,64,64,64
 DB 64,64,64,64,65,65,65,65,65,66,66,66,67,67,68,68,68,69,69,70,70,71,72,72,73
 DB 73,74,75,75,76,77,78,79,79,80,81,82,83,84,85,85,86,87,88,89,90,91,92,93,95
 DB 96,97,98,99,100,101,102,104,105,106,107,108,109,111,112,113,114,116,117,118
 DB 119,120,122,123,124,125,127,128

CHARSET         DB      32 DUP (0)
                DB      58*32 DUP (0)

SZOVIND:
CHEATT  DB      'WELCOME TO THE CHEAT PART      HERE COMES THE CREDITS:   '
        DB      'ORIGINAL MUSIC BY VALENTINE   REMIXED BY EBM   '
        DB      'MODULE PLAYER BY G.O.D.   '
        DB      'TITLE GFX BY NINJA   CHARSET BY INNOCENT   '
        DB      'DESIGN, DIGI, TEXT, MAIN CODE AND SOME GFX BY TOMCAT     '
        DB      'MANY THANKS TO DIGIT#LTECHNIKA   '
        DB      'GREETINGS GOES TO:   ABSOLUTE, ABYSS, CRIMINAL GANG, DEANIMA,'
        DB      ' MAJIC 12, PLANET ORGAN, TSI   SPECIAL GREETINGS TO:   '
        DB      'ADT, ATYA $S POKO, B#NO, DADA, ERN0, HOJAS, JONES, MAXWOOD, '
        DB      'MIKE, LUKO, ROY BATTY, STEVE, S''TI, TAO   THIS SLIDE SHOW IS'
        DB      ' DEDICATED TO ALL MEMBERS WHO TOOK PART IN ABADDON COMPUTER '
        DB      'PARADEY   CONTACT US  -FOR MORE ABADDON WAREZ:   ABADDON-HQ  '
        DB      ' GY<R 4.   P.O.BOX 19.   9004   HUNGARY  -FOR HOT STUFFZ:   '
        DB      'BANDEE OF ABADDON   GY<R=JBAR#T   VERES P. 23.   9081   '
        DB      'HUNGARY    THAT IS ALL FOR TODAY   THIS STUFF RELASED AT THE '
        DB      'ABADDON PARTY 2 ON THE 14TH OF NOVEMBER IN 1992    '
        DB      'C H I A O ...',128
DIGITT  DB 'IME IMRE A CLIPPER &RD&GE (DIT WORKER).',128
 DB '"$S ITT T$NYLEG NINCS EGY AMIGA SE ?" (ADT/ABS).',128
 DB 'ISTEN MONDTA LEGYEN VET$LKED< $S L<N (LOGO DRAWING COMPO).',128
 DB 'RAKO-S K#RTYAV#R A FIATALOK K#RTYAV#RA (V#R A LA PLANET ORGAN).',128
 DB 'CAN I KICK IT ? (PO HOM#LYBAN).',128
 DB 'TEO OF DEANIMA FELV$SI A MAGASS#GOT AZ EREDM$NYJELZ< T#BL#RA.',128
 DB 'TSI A CS=CSOK FEL$ T&R.',128
 DB 'MINDENKI UGORJA #T AMIT $P@TETT (COVOX P$TER).',128
 DB 'DADA JUMPING...',128
 DB 'DADA LANDING...',128
 DB '"HURR# #LL A V#R !" (3D STUDIO MESTERE)...',128
 DB 'SORRY CSAK #LLT...',128
 DB 'A NAGY TANYA AVAGY ADT A SZINTI GYILKOS.',128
 DB 'AZT#N J&TT A SZ@V#SOK SZ@V#SA (PETROFF/ABS).',128
 DB 'SZ''RCS&G&TT ITT MINDENKI:  GERY/ORGAN...',128
 DB 'B#NO/ORGAN...  NA DE MIT SZ@VTOK FI=K ?',128
 DB 'JA PERSZE, NAFT#T.',128
 DB '"HA-HA EZT J%L KITAL#LTAM, DE MI LEGYEN AZ UTOLS% ROUND ?" (NINJA/ABD).',128
 DB '"RAJZOLJUNK FASZT !!!" (PETROFF/ABS).',128
 DB 'KUKI BY GERY...',128
 DB 'PETROFF F$LE RONGYOS UBORKA.',128
 DB '"HI#BA, NEM VAGYOK M>V$SZ." (DADA/TSI).',128
 DB 'VERSENYEN KIV''L K&NNY> (L#SD SCANNER 3.X).',128
 DB '"EH, M$G EZT A BAZI LEMEZT SEM BIRTUK ELTAL#LNI" (LUKO OF DEANIMA).',128
 DB 'THE HISTORICAL SHAKING HAND - "B$KE, B$KE LEGYEN B$KE M#R." (DADA UND KAPOR).',128
 DB '$S EGY M#SIK K$ZFOG#S, AVAGY...',128
 DB '...HOGYAN FACSARJUNK SZ$T EGY S#RGABARACKOT.',128
 DB 'M$G N$H#NY FACE:  "MI VAN BAZZZD MEG TE VAGY IT A BAKTER ?!" (GERY/ORGAN).',128
 DB '"MINDHAL#LIG ZENE..." (EBM/ABD).',128
 DB 'K$SZ''L A MUSIC DISK VAL 1. MOTT%:  MORE AND MORE AND TECHNOCOOL.',128
 DB 'A GONDOLKOD% (SELE INNOCENT.DBF) ALIAS KAROL. DE MI LEHET A KEZ$BEN ?',128
 DB 'H#T EZ$RT CSILLOGNAK =GY A SZEMEI.',128
 DB '"GYERE VELEM CICAFI=, MUTATOK VALAMI SZ$PET" (ERN0/ABS).',128
 DB '"TETSZIK EZ A COPY PARTY, MI IS RENDEZ''NK EGY ILYET." (T%TH ATYA - L#MA WORKER).',128
 DB '"SZIASZTOK FIATALOK ! TOMBOLJATOK ! SZINPADON AZ EJNYE-BEJNYE !!!"',128
 DB '"MEGN$ZEM M#R MIT B''TYK&LNEK A FI=K" (TAO - DIT WORKER).',128
 DB '"NA ADOK $N NEKTEK BULIT !!!" AVAGY "KAPHATN#NK K$T AUTOGRAMOT ?"',128
 DB '=RISTEN ! EZ M#R A 39. K$P, PEDIG M$G MENNYI TOP-MOMENTET DIGIZHETN$K. (TOMCAT/ABD).',128
 DB 'A K$PEK AZ ALDRAM VIDEO PRINTER PR%BA PANELJ$VEL K$SZ''LTEK.',30
 DB 'EZ A K$SZ''L< PC-CARD EL<JEGYEZHET< N#LAM, TOMCATN$L.',28
 DB 'MINDEN J% HA A V$GE J% !    IRJATOK A K&V. CIMEKRE !    NA CS######...',128
SZOVEND:

FSONG           DB      'MUSIC.DAT',0
FNAME           DB      'PICTURES.DAT',0

KEP6BIT         DB      22330+6932+17126 DUP (0)

INIT:           MOV     DI,100H
                MOV     [DI],35EBH
                MOV     BYTE PTR [DI+2],13

                LEA     SI,SZOVIND
IXOROL:         XOR     BYTE PTR [SI],123
                INC     SI
                CMP     SI,OFFSET SZOVEND
                JNZ     IXOROL

                LEA     DX,FABA1
                MOV     AX,3D00H
                INT     21H
                MOV     BX,AX
                MOV     CX,22330
                LEA     DX,KEP6BIT
                MOV     AH,3FH
                INT     21H
                MOV     AH,3EH
                INT     21H

                LEA     DX,FABA2
                MOV     AX,3D00H
                INT     21H
                MOV     BX,AX
                MOV     CX,6932
                LEA     DX,KEP6BIT
                ADD     DX,22330
                MOV     AH,3FH
                INT     21H
                MOV     AH,3EH
                INT     21H

                LEA     DX,FABA3
                MOV     AX,3D00H
                INT     21H
                MOV     BX,AX
                MOV     CX,17126
                LEA     DX,KEP6BIT
                ADD     DX,22330+6932
                MOV     AH,3FH
                INT     21H
                MOV     AH,3EH
                INT     21H

                LEA     DX,FCHAR
                MOV     AX,3D00H
                INT     21H
                MOV     BX,AX
                MOV     CX,58*32
                LEA     DX,CHARSET+32
                MOV     AH,3FH
                INT     21H
                MOV     AH,3EH
                INT     21H

                MOV     AH,3CH
                MOV     DX,OFFSET FCIM0
                XOR     CX,CX
                INT     21H
                MOV     BX,AX
                MOV     AH,40H
                MOV     DX,100H
                MOV     CX,OFFSET INIT-256
                INT     21H
                MOV     AH,3EH
                INT     21H

                INT     20H

FCIM0:          DB      'ASS1.COM',0
FABA1           DB      'ABADDON.ABA',0
FABA2           DB      'PRESENTS.ABA',0
FABA3           DB      'SS.ABA',0
FCHAR           DB      'KAROL1.FNT',0

I_M     ENDP

SEG_A           ENDS

END START
