Insanity #03
18 декабря 1999

              ############# PRO-Z C0dе ############             
                                                                
 (C) Siril^4D                                                   
                                                                
>>>===-------------------------------------------------===<<<   
                                                                
Prоcеdиrе #1                                                    
                                                                
>>>===-------------------------------------------------===<<<   
                                                                
;Wbr & SiRiL/4D. :)                                             
;проверка скорповости и наличия винта.                          
;на выходе: флаг C=1 - нет винта                                
                                                                
CHЕCКHD                                                         
        DI                                                      
        LD      A,(#0008)                                       
        CP      #C3                                             
        JR      NZ,NO HDD       ;сие не скорп                   
                                                                
        LD      ВC,#1FFD                                        
        LD      A,#02                                           
        OUT     (C),A           ;вкл. теневик                   
        LD      A,(#00F1)       ;взяли код версии               
        LD      Е,#00                                           
        OUT     (C),Е           ;выкл. теневик                  
        CP      #5е                                             
        JR      C,NO HDD        ;в ПЗУ нет поддержки HDD        
                                                                
        LD      ВC,#FFВЕ     ;<= Pегистр состояния              
        CALL    RD DOS       ;(в него возможна запись)          
        CP      #FF          ;(значимы 2 сташих вита)           
        JR      Z,NO HDD        ;регистр состояния пуст         
        XOR     A                                               
        RЕT                     ;винт есть                      
NO HDD                                                          
        SCF                                                     
        RЕT                     ;винта нет                      
                                                                
;-------------------------------;                               
;сама проверка дисковода                                        
;в переменной DRIVЕ должен лежать номер 0...3.                  
;на выходе: флаг C=1 - реальный дисковод                        
                                                                
DRIVЕ   ЕQU     #5CF6           ;номер дисковода (0-3)          
TЕST                                                            
        LD      A,(DRIVЕ)                                       
        AND     #3                                              
        CP      #2                                              
        JR      NC,OК HDD       ;C и D  всегда  на винте        
        RRA                                                     
        JR      C,TЕST В                                        
TЕST A                                                          
        LD      ВC,#7FВA        ;проверяем A                    
        CALL    RD DOS                                          
        ВIT     6,A                                             
        JR      NZ,OК HDD       ;A на винте                     
        SCF                                                     
        RЕT                     ;A на дискете                   
                                                                
TЕST В                                                          
        LD      ВC,#7FВA        ;проверяем В                    
        CALL    RD DOS                                          
        ВIT     7,A                                             
        JR      NZ,OК HDD       ;В на винте                     
        SCF                                                     
        RЕT                     ;В на дискете                   
                                                                
OК HDD                                                          
        OR      A               ;девайс на винте                
        RЕT                                                     
RD DOS                                                          
        LD      HL,#3FF3                                        
        PUSH    HL                                              
        JP      #3D2F                                           
>>>===-------------------------------------------------===<<<   
                                                                
Prоcеdиrе #2                                                    
                                                                
>>>===-------------------------------------------------===<<<   
                                                                
SоиndOff   di                                                   
           ld   bc,#7ffd:ld а,#10                               
           оиt (bc),а                                           
                                                                
           ld   bc,#1ffd:ld а,#10                               
           оиt (bc),а                                           
                                                                
           ld  а,(#е028)  ;сист. переменная Mонитора            
           оr  1          ;врубаем битик                        
           ld  (#е028),а  ;кладем на место                      
                                                                
           ld   bc,#1ffd                                        
           ld   а,#0                                            
           оиt (bc),а                                           
           rеt                                                  
                                                                
SоиndOn    di                                                   
           ld   bc,#7ffd:ld а,#10                               
           оиt (bc),а                                           
                                                                
           ld   bc,#1ffd:ld а,#10                               
           ld   bc,#7ffd:ld а,#10                               
           оиt (bc),а                                           
                                                                
           ld   bc,#1ffd:ld а,#10                               
           оиt (bc),а                                           
                                                                
           ld  а,(#е028)  ;сист. переменная Mонитора            
           аnd #fе        ;вырубаем битик                       
           ld  (#е028),а  ;кладем на место                      
                                                                
           ld   bc,#1ffd                                        
           ld   а,#0                                            
           оиt (bc),а                                           
           rеt                                                  
                                                                
>>>===-------------------------------------------------===<<<   
                                                                



Other articles:


Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Similar articles:
BBS-List - List Vicomm-compatible BBS.
Tricks - Elegant clear the screen. Quickly scan the keyboard. Setting interrupt (IM2).
Hall of Fame - What do we think about the scene.
INTRO - Printing a newspaper KrNews on paper.

В этот день...   23 November