home *** CD-ROM | disk | FTP | other *** search
/ CD-X 1 / cdx_01.iso / demodisc / tyrant / fsky / fsky.asm < prev    next >
Encoding:
Assembly Source File  |  1994-06-09  |  7.0 KB  |  390 lines

  1. P286
  2. jumps                                   
  3.  
  4. Extrn   Char:Far
  5.  
  6. _Code   segment para public 'Code'
  7. assume  cs:_Code, ds:_Code, es:_Code, ss:_Stack
  8.  
  9. ProgStart:
  10.  
  11.  
  12.        cli
  13.        call dosle
  14.        mov ax,012h
  15.        int 10h
  16.        call initscr2
  17.        call pcxki
  18.        mov al,03h
  19.        call setplane
  20.        call logoki
  21.        call bbsalk
  22.        mov al,02h
  23.        call setplane
  24.        call bbski
  25.        call setbo
  26.        call initscr
  27.        xor si,si
  28.        cli        
  29.  
  30. Loop1:   call    retrace
  31.      call    bbski
  32.          add     si,80
  33.          cmp     si,80*82
  34.          jne     t1
  35.          xor     si,si
  36.  
  37. t1:     mov     dx,060h
  38.         in      al,dx
  39.         cmp     al,80
  40.     ja      loop1
  41.  
  42.     mov     ax,03h
  43.     int     10h
  44.         mov    ax,_code
  45.     mov    ds,ax
  46.     mov    dx,offset endtxt
  47.     mov    ah,9
  48.     int    21h
  49.     sti
  50.         mov     ax, 4c00h
  51.         int     21h
  52.  
  53. retrace proc near
  54.           MOV DX,03DAh
  55. @@Y1:     IN AL,DX;
  56.           TEST AL,8;
  57.           Jne @@Y1;
  58. @@Y2:     IN AL,DX;
  59.           TEST AL,8;
  60.           Je @@Y2;
  61.       ret
  62. retrace endp
  63.  
  64. initscr proc near
  65.      push     cs
  66.      pop     ds
  67.         mov    si,offset colors
  68.     mov    dx,3c8h
  69.     xor     al,al
  70.     out    dx,al
  71.     mov    cx,70
  72.     inc    dx
  73. rep    outsb
  74.         ret
  75. initscr endp
  76.  
  77. initscr2 proc near
  78.      push     _fekete
  79.      push     _fekete
  80.         pop     es
  81.      pop     ds
  82.         mov     di,offset _fekete
  83.         mov     cx,70
  84.         xor     al,al
  85. rep     stosb
  86.  
  87.         mov     si,offset _fekete
  88.     mov    dx,3c8h
  89.     xor     al,al
  90.     out    dx,al
  91.     mov    cx,70
  92.     inc    dx
  93. rep    outsb
  94.         ret
  95. initscr2 endp
  96.  
  97. pcxki proc near
  98.         PUSHA;
  99.         PUSH ES;
  100.         PUSH DS;
  101.  
  102.         MOV AX,seg char
  103.         MOV DS,AX;
  104.         MOV AX,08000h
  105.         MOV ES,AX;
  106.         mov SI,offset char
  107.         add si,128
  108.         XOR DI,DI;
  109.         XOR BX,BX;
  110.         XOR CX,CX;
  111.  
  112. @DataIn:  XOR BX,BX;
  113.           LODSB;
  114.           TEST AL,128;
  115.           JE @@AzAs1;
  116.           INC BX;
  117. @@AzAs1:  TEST AL,64;
  118.           JE @@AzAs2;
  119.           INC BX;
  120. @@AzAs2:  CMP BX,2;
  121.           JE @@Duplazas;
  122.           STOSB;
  123.           CMP DI,5*320;
  124.           JA @@AzAs3;
  125.           JMP @DataIn;
  126. @@AzAs3:  CMP DI,64000;
  127.           JA @@DispEnd;
  128.           JMP @DataIn;
  129. @@Duplazas: AND AL,63;
  130.             XOR AH,AH;
  131.             MOV CX,AX;
  132.             CMP CX,0;
  133.             JNE @@Mehtt;
  134.             INC CX;
  135. @@Mehtt:    LODSB;
  136.             REPNZ STOSB;
  137.             CMP DI,64000;
  138.             JA @@DispEnd;
  139.             JMP @DataIn;
  140. @@DispEnd:
  141.  
  142.             POP DS;
  143.             POP ES;
  144.             POPA;
  145.             RET
  146. pcxki endp
  147.  
  148. logoki proc near
  149.     push ds
  150.     push es
  151.     pusha
  152.  
  153.     push 08000h
  154.     xor si,si
  155.     pop ds
  156.     push 0a000h
  157.     mov di,640*40/8+3
  158.     pop es
  159.  
  160.     mov cx,2600
  161. rep    movsw
  162.  
  163.  
  164.     mov si,15
  165.     mov di,640*40/8+37
  166.  
  167.     mov cx,80
  168. q1:    push cx
  169.     mov cx,7
  170. rep    movsb
  171.     add di,73
  172.     add si,73
  173.     pop cx
  174.     loop q1
  175.  
  176.         mov    ax,_code
  177.     mov    ds,ax
  178.     mov    dx,offset text
  179.     mov    ah,9
  180.     int    21h
  181.  
  182.         mov al,04h
  183.         call setplane
  184.  
  185.         mov di,150*80+10
  186.         mov ax,0ffffh
  187.         mov cx,58
  188.  rep    stosb
  189.  
  190.         mov di,151*80+10
  191.         mov cx,250
  192.  c1:    mov al,128
  193.         stosb
  194.         add di,56
  195.         mov al,1
  196.         stosb
  197.         add di,22
  198.         loop c1
  199.  
  200.         mov di,400*80+10
  201.         mov ax,0ffffh
  202.         mov cx,58
  203.  rep    stosb
  204.  
  205.     popa
  206.     pop es
  207.     pop ds
  208.     ret
  209. logoki endp
  210.  
  211. setplane proc near
  212.         push dx
  213.         push ax
  214.         mov dx,03c4h
  215.         mov al,02h
  216.         out dx,al
  217.         inc dx
  218.         pop ax
  219.         out dx,al
  220.         pop dx
  221.         ret
  222. setplane endp
  223.  
  224. bbsal proc near
  225.         push cx
  226.         push di
  227.  
  228.     push 08000h
  229.     mov si,5760
  230.         add si,dx
  231.     pop ds
  232.     push 09000h
  233.     pop es
  234.  
  235.     mov cx,37
  236. b1:    push cx
  237.     mov cx,14
  238.         sub cx,bx
  239. rep    movsb
  240.     add di,66
  241.     add si,66
  242.         add di,bx
  243.         add si,bx
  244.     pop cx
  245.     loop b1
  246.     pop di
  247.     pop cx
  248.     ret
  249. bbsal endp
  250.  
  251. setbo proc near
  252.       mov ax,01001h
  253.       mov bh,0eh
  254.       int 10h
  255.       ret
  256. setbo endp
  257.  
  258. bbsalk proc near
  259.        pusha
  260.        push ds
  261.        push es
  262.  
  263.        push 09000h
  264.        pop es
  265.        xor di,di
  266.        xor ax,ax
  267.        mov cx,22500
  268. rep    stosw
  269.  
  270.        xor di,di
  271.        mov cx,7
  272. b3:    push cx
  273.        mov cx,5
  274. b2:    xor dx,dx
  275.        xor bx,bx
  276.        call bbsal
  277.        add di,15
  278.        loop b2
  279.  
  280.        mov dx,0
  281.        mov bx,9
  282.        call bbsal
  283.        add di,3205
  284.  
  285.        mov dx,10
  286.        mov bx,9
  287.        call bbsal
  288.        add di,5
  289.  
  290.        mov cx,5
  291. b4:    xor dx,dx
  292.        xor bx,bx
  293.        call bbsal
  294.        add di,15
  295.        loop b4
  296.        pop cx
  297.        add di,3200
  298.        loop b3
  299.  
  300.        pop es
  301.        pop ds
  302.        popa
  303.        ret
  304. bbsalk endp
  305.  
  306. bbski proc near
  307.  
  308.     push si
  309.     push 09000h
  310.     pop ds
  311.     push 0a000h
  312.     xor di,di
  313.     pop es
  314.     mov cx,19200
  315. rep    movsw
  316.     pop si
  317.     ret
  318. bbski endp
  319.  
  320. dosle proc near
  321.  
  322.                 MOV AH,0fh
  323.                 INT 10h
  324.                 MOV AH,03h
  325.                 INT 10h
  326.                 OR CH,20h
  327.                 MOV AH,01h
  328.                 INT 10h
  329.  
  330. ;{SEGINIT}
  331.                 PUSH 0B800h
  332.                 PUSH 0B800h
  333.                 POP DS
  334.                 POP ES
  335.  
  336.                 MOV CX,80
  337. @@LOOPLE5:      PUSH CX
  338. ;{WAIT}
  339.                 call retrace
  340.                 MOV SI,156
  341.                 MOV DI,158
  342.                 MOV CX,25
  343. @@LOOPLE2:      PUSH CX
  344.                 MOV CX,79
  345. @@LOOPLE3:      MOVSW
  346.                 SUB DI,4
  347.                 SUB SI,4
  348.                 LOOP @@LOOPLE3
  349.                 XOR AX,AX
  350.                 STOSW
  351.                 ADD DI,316
  352.                 ADD SI,318
  353.                 POP CX
  354.                 LOOP @@LOOPLE2
  355.                 POP CX
  356.                 LOOP @@LOOPLE5
  357.                 ret
  358. dosle endp
  359.  
  360. Include color.inc
  361. text    db      13,10,13,10,13,10,13,10,13,10,13,10,13,10,13,10,13,10,13,10
  362.         db       '            SYSOP   : ZAX                              SCENE WAREZ',13,10
  363.         db       '            CO-SYSOP: FBi       +(56) - 37-00-21       COOL MUZAXs',13,10
  364.         db       '                                 (Szolnok area)        AMIGA PROGs',13,10
  365.         db       '            MODEM: 14.4k                                  TRAINERs',13,10
  366.         db       '            OPEN HOURS: 22-07      KALL NOW!               GUS, SB',13,10
  367.         db       '                                   ─────────               CODEING',13,10
  368.         db       13,10
  369.         db       13,10
  370.         db       '                             MURMIDONES DIST-SITE',13,10
  371.         db       '                                 MICROPYLE HHQ',13,10
  372.         db       '                                  NARCOTIX HHQ',13,10
  373.         db       13,10,13,10
  374.         db       '                     CrEDz: Code by TyRaNT / MURMIDONES$'
  375.  
  376.  
  377. endtxt  db       'FRACTAL SKY BBS!',13,10
  378.         db       ' +(56)-370021',13,10,13,10
  379.         db       '  KALL NOW!',13,10,'$'
  380.  
  381. _Code   ends
  382. _Stack  segment para stack 'stack'
  383.         db      32 dup (0)
  384. _Stack  ends
  385. _fekete segment para public 'Zdat'
  386.         db      70 dup (0)
  387. _fekete ends
  388.  
  389. End     ProgStart
  390.