

           ਢ ᥬ !
            砫  ⮣,     諮 ᠭ COVOX,  ⠢-
       RED RATS BBS.     㤥ঠ  ⠫쭮 砫 ᮡ-
      ᠭ device.  ⢨⥫쭮  ,  ᠬ  -
     ⭮  Scream Tracker १ ᠭ OVOX   -
     ⥫쭮.
           ࠢ    㬥⠫ ४  ⢥
     ⥫ ᮧ - ᢮ 饥  饥.   -
         墠⠫ ᠬ ,    - ⥭쪮
     DIGITIZER  ᮧ ᮡ⢥ ஢  㪮.      
     諠  ॢ 㪠 COVOX  ⥩訩 DIGITIZER.
           ᭮ ப  ᮧ DIGITIZERa 易  ⥬,   
       設  ᪠ - 室騩 ,  ஬ ⮣, -
      奬  易  ﭨ   ⠪⮢  
     筨 ୮ 殮.  設⢮ ਭ஢᪨ ⮢  IBM
         ࠧ ⮫쪮   ଠ樨,   -
        쬨ࠧ來  ।⠢  ⮢  㪠  ࣠樨
     ⨯஢   ..    ஡ 筮  -
     ,  - 㦠᭮ ,  -  ⨬ ࠤ -
      -  ६  墠⠥.
            裡    ⨬    ।      ⥩訩 COVOX
     ᪮쪨 樮묨 ᨫ⥫ﬨ  ॢ      DIGITIZER.
     ⢥,    ⮬     ᢮ ५⥩ COVOXa 
     㤥 ࠤ  ⮩ 砭  ० ந.
           筮,   奬     ᠬ ⥩  
      ⢥ত  ⢮ ஢ 㤥 쬠 ᮬ⥫,  
     ᯥਬ ,      ந    모
     १ ७    DIGITIZERa  -
     筮.
            ਢ 奬 । DIGITIZERa.
Ŀ
Ĵ
                                                                            
                                                                            
 LPT 25-PIN        DA1             >+12V                                 
            Ŀ              R2           R3                 
  2 >Ĵ13   D/A   14            Ŀ                     
  3 >Ĵ12         15        2.7k    2.7k               
  4 >Ĵ11 K5721 16Ŀ                          
  5 >Ĵ10                Ŀ                         
  6 >Ĵ9                  DA26    Ŀ           
  7 >Ĵ8           1o2   7>+12V    Ŀ            
  8 >Ĵ7              Ĵ3   4>-12V     DA36Ŀ    
  9 >Ĵ6                      o2   7>+12V      
          Ĵ5               R1    5441      Ĵ3   4>-12V      
 18 >Ĵ4              5.1k                        
          Ĵ2           3Ŀ                 5441      
                   +12V<Ŀ                          
                                   R4       R5,R6-2.7k          
                                150k  <                        
                                                                     
   SA1-COVOX/DIGITIZER                -12V<                      Line OUT
  (Currently set      >
    on "DIGITIZER")Ŀ SA1.1        Ŀ SA1.2                        >
                       \Ŀ            /    
                                                                
                                                                       
                1407      Ŀ                             >+12V
                     Ŀ         Ŀ                   R11 
  Line IN             DA46   DA56Ŀ      >  100k
  200-500mV     Ĵ3   7>+12V  o2   7>+12V  R10        
    >Ŀ      o2   4>-12V Ĵ3   4>-12V   3k         
        R7                                      
    >Ŀ47k <  Ŀ        5441   ||          
           R8    R9                      VD1    VD2            
            10k     200k                              LPT 25-PIN 
                                VD1,VD2      > 12  
                                      K522                         
                     Ĵ
     R7-Input Level      COVOX & DIGITIZER for real sound input/output.    
                                     Copyright (c) 1992 Dmitry Riazanov    

            奬  DA1  DA2 ⠢ ⥩訩 COVOX,  ।訩
      ७  ᠭ RED RATS BBS.  DA3  ⥫ -
      ᤢ  ᨣ    ⥫ ,  ᯮ
      ᨬ筮 ⭮⥫쭮 ਧ⠫쭮 .

                  *           *
     U(t)       * *         *
               *   *       *
              *     *     *  <   室 DA2
             *       *   *
            *         * *
           *           *
        0 
                                   t

     U(t) 
          
          
                 *           *
                * *         *
               *   *       *  <   室 DA3
        0 ***
             *       *   *         t
            *         * *
           *           *
          


           ᠭ ८ࠧ 室  ଠ쭮 ࠡ -
      DA5. DA4 - ।⥫ ᨫ⥫ 室 㪮 ᨣ.
           ஢ ᨣ  室 DA4 ⠭ १஬ R7. -
     ⨬쭮 祭   室  3    DA5  ⠢
     ਬ୮ 3  ,    ⮬   १ R7  ஬ 
     ⨣     㪮  ᨣ,    
     室 DIGITIZERa. 樮 ᨫ⥫ DA5 ࠡ⠥  ० -
       ࠢ 殮,  㯠饥  室 DIGITIZERa c -
       室  DA1-DA2.  ⮬ ᮪ ஢  室 -
      㪠뢠  ,   㤠 ᨣ   室  DIGITIZERa
        室 .   ஢ ᨣ  -
     室  㪠뢠 ᮮ⢥⢥  ⨢.
           VD1,VD2,R11 ࠧ  ࠭⥫  ८ࠧ 室 -
         0-5  ᫥饣   .
           ४⥫ SA1 ᯥ稢 ࠡ ன⢠   ०.
      奬    砩,     ன⢮   ࠡ⠥      ०
     DIGITIZERa.  ⮬  室 (Line IN)  㪮 ᨣ, -
       ஫஢ १  譨  ᨫ⥫,  祭  
     ࠧꥬ Line OUT.  DIGITIZER 易  ஬ १ LPT-  -
     ஬  ᯮ  ࠧ     (PINS 2-9),    ᨣ쭠 
     (PIN18)  ஫  ࠢ ᨣ (PIN 12).
            ० COVOX (⨢  ४⥫ SA1) -
     १ LPT  COVOX 㯠  ந 㪠,  -
      訢 १ 譨 ᨫ⥫,  祭  ࠧꥬ  Line
     OUT.
            DIGITIZERa ᭮  ⮤ ᫥⥫쭮 ਡ-
     ,   ॠ ਢ ணࠬ digit (⥪ ணࠬ
     ᬮ ).   ८ࠧ ந室 ᫥騬 ࠧ.  
      378h 뢮 ᫮ 10000000b,  ᮮ⢥  -
      쬨ࠧ來 ८ࠧ.   ᫮   室 
     DA1-DA2   ८ࠧ  ᮮ⢥饥 祭 殮.  
      殮 १ ८ࠧ⥫ DA3 㯠  室 
     DA5  ࠢ   祭  㪮 ᨣ.
         뤠  ᨣ      ⭮  
       १  379h   業 ᮮ⭮襭 
     祭  㪮 ᨣ  殮, 㯠饣  .
     ᫨  ࢮ   ண,    ""   -
     ⮢      뢮 ᫮ 11000000b   ந
     ୮  ࠢ  ᨣ     室.  ᫨ ࢮ 
     ண    ""       뤠-
      ᫮ 01000000b.      7 -
       祭   祭   㪮-
      ᨣ. ᭮ 譮 ८ࠧ 易  ࠭祭-
      த⢨   樮 ᨫ⥫.   ணࠬ digit
     ।ᬮ७ প   ᫥⥫ 筥,  -
       ⠭ 殮  室  ᫥ 뢮 
      । ᫠.  ᯥਬ ,  ⨬쭠 প
      ਬ 㪠  奬 樮 ᨫ⥫ ࠢ 9 .
        ᢮ । ࠭稢 ᨬ  ⨧樨.
      設 AT-12Mhz 㤠    ஢    ⮩  ਬ୮
     11.
              ன⢠ १  R4  ⠭  
     ,  ஬ ᨣ   ᯮ ᨬ筮 ⭮-
     ⥫쭮 㫥  ( ਬ୮ -1.5   室 १ R4). 
     R11 ⠭  ,   ஬ ࠭祭 室 ᨣ-
       DA5 ந室  ஢ 5.
             ⠫ ࠭祭 뢠 ⮫쪮   -
      ᨫ⥫ DA2, DA3, DA5.  ᨫ⥫   ᪮ -
     ⠭ 室 殮   3 /.
           襭 ⢠  ஢     DA1,  DA2,
     DA3  DA5   த騥.    ᮪ প
       ८ࠧ    ⨧樨.
            ਢ ⥪ ணࠬ AD ८ࠧ (  Digit  )  
     ந ॠ  㪮  १  ७  
     ( Speaker ).

// ķ
//                                                                        
//              -- 室 ⥪ ணࠬ digit.exe --                  
//                                                                        
//        ।祭  祭 65530 ஢ ⮢ 㪮   
//      ᨣ.  ࠭  䠩   sound.dat        
//      ஢﫠  ᯮ짮  Brland C++ 2.0.         
//      ணࠬ ஢  HUGE -  .                 
//                                                                        
//                              Copyright (c) 1992 Dmitry Riazanov        
//                                                                        
// ͼ

#include <stdlib.h>
#include <sys\stat.h>
#include <fcntl.h>
#include <io.h>
#include <alloc.h>
#include <dos.h>

void interrupt timer(void);
void digitizer(void);
struct address  {  char far *p;  } ;

int priz=0;                         // p ⠩p (ᯮ 
                                    // ਡ⥫쭮 業
                                    // ந⥫쭮 )
unsigned int count = 0;
unsigned int count_time = 0;
char far *tru8;
unsigned char *data_ptr;            // ⥫ p 
unsigned char *save_data_ptr;       // ⥫  砫 p 
unsigned char save_ah;              // p筠 p ⮢
unsigned int delay_d;               // p  p pp

int main(void)
{
  int handle;
  unsigned int time_val;            // 祭 pp ⠩p 8254 ch. 0
  unsigned int save_time_val;
  unsigned int n_58;                // p . p  58 ⠪⮢
  unsigned long int Fcpu;           // ਡ⥫쭠  
  struct address far *inttime = (struct address far *) 32; // 砥 
                                                 //  8 ( timer )
  if ( farcoreleft() < 65535 )
  {
    printf("  ᢮  !!! \n ");
    return(0);
  }

  save_data_ptr = malloc(65535);                // 뤥塞   
  data_ptr = save_data_ptr;
  handle = creat("sound.dat",S_IWRITE);
  asm cli
  tru8= inttime->p;                      // ࠭塞 ਣ 
// Ŀ
//               ਡ⥫쭠 業 த⢨                  
//       室  । ᫠ 横 প ( dalay_d )      
// 

  inttime->p = (char far *) timer;
       asm   push ax
       asm   push dx
       asm   push cx
       asm   mov dx,0
       asm   sti
wait1: asm   cmp priz,0
       asm   je wait1


prod_count:  asm inc dx
       asm   nop
       asm   nop
       asm   nop
       asm   nop
       asm   nop
       asm   nop
       asm   nop
       asm   nop
       asm   nop
       asm   nop
       asm   cmp priz,0
       asm   jne prod_count
       asm   mov n_58,dx
       asm cli
       inttime->p = tru8;
       asm sti
  n_58--;
  Fcpu = (long)((long double)((long)n_58*58+20)/0.055);
  delay_d =(int)(( 0.000009*(long double)Fcpu-20 )/18);
  printf( "    砫 pp ...\n");
  getche();
  digitizer();             // 맮 ணࠬ 祭 ஢ ⮢
                           // 㪮 ᨣ
  write(handle,save_data_ptr,count);
  farfree(save_data_ptr);
  close(handle);
  return(0);
}
void interrupt timer()
// Ŀ
//       p祭  p p⢨                
// ;
{
  count_time++;
  if (priz == 0)
    priz = 1;
  else
    priz = 0;
  asm push ax
  asm mov al,20H
  asm out 20H,al
  asm pop ax
}
void digitizer()
// Ŀ
//               p祭  AD pp                     
//    ᯮ  㪠⥫  data_ptr p           
//                                                                       
// ;
{
       asm cli
       asm push ax
       asm push cx
       asm push dx
       for(count=0; count < 65530; count++)
       {
              asm   mov ah,10000000b
              asm   mov ch,01000000b
              asm   mov cl,11000000b
sycl:         asm   mov al,ah
              asm   mov dx,378h
              asm   out dx,al
/* ---------------------------- p ---------------- */
              asm   mov dx,delay_d
delay_sycl:   asm   dec dx
              asm   jnz delay_sycl
/* ------------------------------------------------------ */
              asm   mov dx,379h
              asm   in al,dx
              asm   and al,00100000b
              asm   jnz prod_whith_1
              asm   xor ah,cl
              asm   shr cl,1
              asm   shr ch,1
              asm   jz e_xit
              asm   jmp sycl
prod_whith_1: asm   or ah,ch
              asm   shr cl,1
              asm   shr ch,1
              asm   jz e_xit
              asm   jmp sycl

e_xit:        asm   mov save_ah,ah
              *data_ptr = save_ah;
              data_ptr++;
       } /* of for */
       asm pop dx
       asm pop cx
       asm pop ax
       asm sti;
}  // <-------------------------- END OF DIGIT ----------------------------


// ķ
//                                                                        
//              -- 室 ⥪ ணࠬ speaker.exe --                
//                                                                        
//        ।祭  ந १ ७       
//       ॠ 㪮 ᨣ.  䠩, ᮤঠ饣     
//      ஢  ᨣ, 㪠뢠 ணࠬ  ᪥       
//        ப.                                               
//         ⨧樨,  ன 祭                
//      ந 㪠,  ६ Fd         
//      ᪮४஢  ᮮ⢥⢨  ﬨ 襣 DIGITIZERa. 
//        ஬ ⮣  ⢮ ந  ࠧ       
//      ⨧樨  祭 ६ digit. 祭 ⮩     
//      ६ 롨ࠥ  ⥬.                              
//        ணࠬ ஢﫠  ᯮ짮                          
//       Brland C++ 2.0.                                      
//        ணࠬ ஢  LARGE -  .              
//                                                                        
//                                                                        
//                              Copyright (c) 1992 Dmitry Riazanov        
//                                                                        
// ͼ




#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <io.h>
#include <fcntl.h>
#include <sys\stat.h>
#include <string.h>
#include <alloc.h>
#include <errno.h>
#define n 1

void interrupt timer(void);

struct address  {  char far *p;  } ;
unsigned char tab[256] = {0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x02,
                          0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
                          0x02,0x02,0x02,0x02,0x03,0x03,0x03,0x03,
                          0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x04,
                          0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,
                          0x04,0x04,0x04,0x04,0x05,0x05,0x05,0x05,
                          0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x06,
                          0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,
                          0x06,0x06,0x06,0x06,0x07,0x07,0x07,0x07,
                          0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x08,
                          0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
                          0x08,0x08,0x08,0x08,0x09,0x09,0x09,0x09,
                          0x09,0x09,0x09,0x0a,0x0a,0x0a,0x0a,0x0b,
                          0x0b,0x0c,0x0c,0x0d,0x0e,0x0e,0x0f,0x10,
                          0x11,0x11,0x12,0x13,0x14,0x15,0x16,0x17,
                          0x18,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,0x21,
                          0x22,0x23,0x24,0x26,0x27,0x28,0x29,0x2b,
                          0x2c,0x2d,0x2e,0x30,0x31,0x32,0x33,0x34,
                          0x35,0x36,0x37,0x39,0x3a,0x3a,0x3b,0x3c,
                          0x3d,0x3e,0x3f,0x40,0x40,0x41,0x42,0x42,
                          0x43,0x43,0x43,0x43,0x43,0x43,0x44,0x44,
                          0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,
                          0x44,0x44,0x44,0x45,0x45,0x45,0x45,0x45,
                          0x45,0x45,0x45,0x45,0x45,0x45,0x46,0x46,
                          0x46,0x46,0x46,0x46,0x46,0x46,0x46,0x46,
                          0x46,0x46,0x46,0x47,0x47,0x47,0x47,0x47,
                          0x47,0x47,0x47,0x47,0x47,0x47,0x48,0x48,
                          0x48,0x48,0x48,0x48,0x48,0x48,0x48,0x48,
                          0x48,0x48,0x48,0x49,0x49,0x49,0x49,0x49,
                          0x4a,0x4a,0x4a,0x4b,0x4b,0x4b,0x4b,0x4b,
                          0x4b,0x4b,0x4b,0x4b,0x4b,0x4b,0x4b,0x4b,
                          0x4b,0x4b,0x4b,0x4b,0x4b,0x4b,0x4b,0x4b};

unsigned char *buf1;
unsigned char digit;
unsigned char Cimp;
unsigned int ind;
unsigned char tmp;
char far *save_vector;
unsigned int res1;
unsigned long int count_imp;
unsigned char work;
int main(int argc, char **argv)
{

  char name1[15];
  int handle2;
  unsigned char buf2[50001];

  unsigned int time_val;
  unsigned int save_time_val;
  FILE *infile;

  unsigned int max;
  unsigned int i;
  unsigned int Fd;
  unsigned int Fpr;
  unsigned int index,last_imp,x,cur_level;
  struct address far *inttime = (struct address far *) 32;
  if(argc < 2)
  {
    printf("  pp pp뢠 䠩  \n");
    printf("   \n");
    printf(" p  䠩... \n");
    return(0);
  }
  else
    strcpy(name1,argv[1]);
  if ( farcoreleft() < 65535 )
  {
    printf("  ᢮  !!! \n ");
    return(0);
  }
  buf1 = malloc(65535);
  if((handle2 = open(name1,O_BINARY,S_IREAD)) == -1 )
  {
    printf("  %s  p㦥 !!! \n",name1);
    return(0);
  }
  Fd=11000;                          // ४ 祭 Fd  digit
  digit = 128;                       // ᫨  室.
  time_val = (int)(1193180/(float)(Fd));  //  祭 ॣ
                                          //  㫥  ⠩
  do
  {
    res1 = read(handle2,buf1,65530); // ⠥  䠩 ⮢
    ind = 0;
    Cimp = 0;
    save_vector = inttime->p;        // ࠭塞 ਣ쭮 祭
                                     //  뢠 ⠩.
//  ᨬ  祭  㫥  ⠩.
    asm cli
    asm push ax
    asm mov al,00110110b
    asm out 43h,al
    asm in al,40h
    asm mov ah,al
    asm in al,40h
    asm mov save_time_val,ax
    asm mov ax,time_val
    asm out 40h,al
    asm mov al,ah
    asm out 40h,al
    asm mov al,10110110b
    asm out 43h,al
    asm mov ax,1
    asm out 42h,al
    asm mov al,ah
    asm out 42h,al

    asm in al,61h
    asm or al,00000011b
    asm out 61h,al
    asm pop ax

    inttime->p = (char far *) timer; // ⠭  ⠩ 
                                     // ணࠬ ந.
    asm sti
    for(;;)                          //  砭 ந
    {
      struct address far *curtime = (struct address far *) 32;
      if( curtime->p == save_vector )
      {
        asm cli
        break;
      }
    }
//     ⠭ 祭 ⠩.
    asm push ax
    asm mov al,00110110b
    asm out 43h,al
    asm mov ax,save_time_val
    asm out 40h,al
    asm mov al,ah
    asm out 40h,al
    asm in al,61h
    asm and al,11111100b
    asm out 61h,al
    asm pop ax
    asm sti
  }
  while(res1==65530);  /* -----------*/
  close(handle2);
  free(buf1);
  return(0);
}

void interrupt timer()
// Ŀ
//      p祭  ந ॠ쭮 㪠.            
//    ᯮ  㪠⥫   buf1  p .        
//                                                                    
// ;

{
  if (ind == res1)      // ᫨  ந,  ⠭
  {                     // ਣ쭮 祭  뢠 ⠩.
    Cimp++;
    if( Cimp == 1 )     // ᫨   ⭮ ७
    {                   // ந 㪠,   ᫮.
                        // ਬ, if(Cimp == 4 )  ⭮
                        // ७.

    struct address far *int8vector = (struct address far *) 32;
    int8vector->p = save_vector;
    asm mov al,20H
    asm out 20H,al

    asm        mov        sp,bp
    asm        pop        bp
    asm        pop        di
    asm        pop        si
    asm        pop        ds
    asm        pop        es
    asm        pop        dx
    asm        pop        cx
    asm        pop        bx
    asm        pop        ax
    asm        iret
    }
    ind = 0;
  }

//      ⢥ ந ॠ쭮 㪠.

  work = buf1[ind];
  work = tab[work];
  work+=digit;
  asm mov ah,work
// ⨩  ⠩ ணࠬ  ਥ ⮫쪮 襩 .
  asm mov al,10010110b
  asm out 43h,al
  asm mov al,ah
  asm out 42h,al
  ind++;
  asm mov al,20H
  asm out 20H,al

}

             !!!


                                                 易 ..
                                                 ᪢ 1992
 
 


