home *** CD-ROM | disk | FTP | other *** search
/ kermit.columbia.edu / kermit.columbia.edu.tar / kermit.columbia.edu / archives / researchmachines.zip / rmlnim.c < prev    next >
Text File  |  1985-07-11  |  4KB  |  175 lines

  1.  
  2. /*****************************************************************************/
  3.  
  4. /* File KNIMB.C - RML Nimbus Kermit - Machine-dependent data & routines
  5.         Chris Kennington    5th July 1985.        */
  6.  
  7.  
  8. #include  "stdio.h"
  9. #include  "b:kext.h"
  10.  
  11.  
  12. /* Data which is either machine-dependent or contains text which would
  13.     not be appropriate for the 480Z version.            */
  14.  
  15. char head1[]    = "  RM  NIMBUS  Kermit  File  Transfer  Program,";
  16.  
  17. char prompt[]   = "\rKmNimbus";
  18. char eprompt[]    = "\rKmF4> ";
  19. char backto[]    = " OK - back to MSDOS; ";
  20.  
  21.  
  22. static char keyc[] = {        /* assigned arrow values for CONN    */
  23.     ESC,"[0;72;\"\013\"p",    /* uparrow = UP        */
  24.     ESC,"[0;80;10p",    /* downarrow = DOWN (LF)*/
  25.     ESC,"[0;77;24p",    /* rightarrow = FWD    */
  26.     ESC,"[0;75;\"\010\"p",    /* leftarrow = BKSP    */
  27.     ESC,"[0;116;24p",    /* c/rightarrow = FWD    */
  28.     ESC,"[0;115;\"\010\"p",    /* c/leftarrow = BKSP    */
  29.     ESC,"[0;83;\"\177\"p",  /* DEL = 0x7f        */
  30.     ESC,"[6;1;25;80~B",    /* scroll lines 6-25    */
  31.     ESC,"[25;1f",        /* cursor bottom left    */
  32.     ESC,"[0;0;0;;1~A",    /*  & remove it        */
  33.     0xff};
  34.  
  35.  
  36. static char keys[] = {        /* assigned arrow-pad values    */
  37. /* all assigned letters with top bit set - (nulls deleted)    */
  38.     ESC,"[156;96p",        /* pound = backquote    */
  39.     ESC,"[0;72;\"\325\"p",    /* uparrow = U        */
  40.     ESC,"[0;80;\"\304\"p",    /* downarrow = D    */
  41.     ESC,"[0;77;\"\322\"p",    /* rightarrow = R    */
  42.     ESC,"[0;75;\"\314\"p",    /* leftarrow = L    */
  43.     ESC,"[0;73;\"\302\"p",    /* PG UP = B        */
  44.     ESC,"[0;79;\"\316\"p",    /* END = N        */
  45.     ESC,"[0;81;\"\316\"p",    /* PG DN = N        */
  46.     ESC,"[0;83;\"\177\"p",    /* DEL = 0x7f        */
  47.     ESC,"[0;59;\"\302\"p",    /* F1 = B        */
  48.     ESC,"[0;60;09p",    /* F2 = TAB        */
  49.     ESC,"[0;61;\"\316\"p",    /* F3 = N        */
  50.     ESC,"[0;62;\"\233\"p",    /* F4 = ESC        */
  51.     ESC,"[0;63;96p",    /* F5 = ` (back-quote)    */
  52.     ESC,"[0;64;\"\233S\"p",    /* F6 = ESC S        */
  53.     ESC,"[0;65;\"\233R\"p",    /* F7 = ESC R        */
  54.     ESC,"[0;66;\"\233Q\"p",    /* F8 = ESC Q        */
  55.     ESC,"[0;67;\"\233K\"p",    /* F9 = ESC K        */
  56.     ESC,"[0;68;\"\233B\"p",    /* F10 = Break        */
  57.     ESC,"[6;1;25;80~B",    /* scroll lines 6-25    */
  58.     ESC,"[25;1f",        /* cursor bottom left    */
  59.     ESC,"[0;0;0;;1~A",    /*  & remove it        */
  60.     0xff};
  61.  
  62. static char keyr[] = {
  63.     ESC,'c',        /* R.I.S.    */
  64.     ESC,"[0;59;p",        /* F1        */
  65.     ESC,"[0;60;p",        /* F2        */
  66.     ESC,"[0;61;p",        /* F3        */
  67.     ESC,"[0;62;p",        /* F4        */
  68.     ESC,"[0;63;p",        /* F5        */
  69.     ESC,"[0;64;p",        /* F6        */
  70.     ESC,"[0;65;p",        /* F7        */
  71.     ESC,"[0;66;p",        /* F8        */
  72.     ESC,"[0;67;p",        /* F9        */
  73.     ESC,"[0;68;p",        /* F10        */
  74.     "Returned to MSDOS. ",
  75.     0xff};
  76.  
  77.  
  78. cpmgo()
  79. {
  80.     exit();
  81. }
  82.  
  83.  
  84.  
  85. fpanel()
  86. {
  87.     txtout("Front-Panel not yet implemented\r");
  88.     return;
  89. }            /* end of fpanel()        */
  90.  
  91.  
  92.  
  93. unsigned getram(n)        /* allocate store        */
  94. int    n;            /* # of bytes        */
  95. {
  96.     char    *addr;
  97.  
  98.     if ( (addr = malloc(n)) != 0 )
  99.     return(addr);
  100.     txtout("\rUnable to allocate buffers.\r");
  101.     cpmgo();
  102. }            /* end of getram()        */
  103.  
  104.  
  105.  
  106. char kbdin()        /* char or not from keyboard    */
  107. {
  108.     char c;
  109.  
  110.     c = bdos(0x06,0xff,0);
  111.     return(c);
  112. }            /* end of kbdin()        */
  113.  
  114.  
  115.  
  116. keyconn()        /* set up keypad for CONN mode    */
  117. {
  118.     CHAR c;
  119.     int     i;
  120.  
  121.     i = 0;
  122.     while ( (c = keyc[i++]) != 0xff ) {
  123.     if (c != 0)
  124.         putchar(c);
  125.     }
  126. }            /* end of keyconn()        */
  127.  
  128.  
  129.  
  130. keyinit()        /* initialize keyboard & screen    */
  131. {
  132.     CHAR c;
  133.     int     i;
  134.     static  char  done = 0;
  135.  
  136.     i = 0;        /* keyboard initialization    */
  137.     while ( (c = keys[i++]) != 0xff ) {
  138.     if (c != 0)
  139.         putchar(c);
  140.     }
  141.  
  142.     if (done == 0) {    /* screen init once only    */
  143.     init_screen();
  144.     ++done;
  145.     for (i=0; i<(256*25); i+=256)
  146.         vtline(i,blanx);
  147.     }
  148.     return;
  149. }            /* end if keyinit()        */
  150.  
  151.  
  152. keyrest()        /* restore keyboard & screen    */
  153. {
  154.     CHAR c;
  155.     int     i;
  156.  
  157.     i = 0;        /* keyboard restoration    */
  158.     while ( (c = keyr[i++]) != 0xff ) {
  159.     if (c != 0)
  160.         putchar(c);
  161.     }
  162.     return;
  163. }            /* end of keyrest()        */
  164.  
  165.  
  166. netcool()
  167. {
  168.     return;
  169. }
  170.  
  171.  
  172.  
  173. /************  End of File, KNIMB.C  ***********************************/
  174.  
  175.