cvsuser     03/06/22 20:53:03

  Modified:    languages/BASIC/compiler RT_platform.pasm
                        RT_platform_ANSIscreen.pasm
  Log:
  Got the INKEY$() function working.  Mostly.
  
  Revision  Changes    Path
  1.12      +1 -3      parrot/languages/BASIC/compiler/RT_platform.pasm
  
  Index: RT_platform.pasm
  ===================================================================
  RCS file: /cvs/public/parrot/languages/BASIC/compiler/RT_platform.pasm,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -w -r1.11 -r1.12
  --- RT_platform.pasm  23 Jun 2003 03:40:07 -0000      1.11
  +++ RT_platform.pasm  23 Jun 2003 03:53:02 -0000      1.12
  @@ -83,11 +83,9 @@
        ne sys, "MSWin32", NOTWIN
        call _WIN32_INKEY
        branch END
  +NOTWIN: call _POSIX_INKEY
   END: restoreall
        ret
  -
  -NOTWIN: print "Not supported yet\n"
  -     end
   .end
   ## Problem in ANSI
   #SCREEN_GETFORE:
  
  
  
  1.7       +37 -1     parrot/languages/BASIC/compiler/RT_platform_ANSIscreen.pasm
  
  Index: RT_platform_ANSIscreen.pasm
  ===================================================================
  RCS file: /cvs/public/parrot/languages/BASIC/compiler/RT_platform_ANSIscreen.pasm,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -w -r1.6 -r1.7
  --- RT_platform_ANSIscreen.pasm       8 Jun 2003 18:15:41 -0000       1.6
  +++ RT_platform_ANSIscreen.pasm       23 Jun 2003 03:53:02 -0000      1.7
  @@ -109,4 +109,40 @@
        restoreall
        ret
   .end
  +.sub _POSIX_INKEY
  +     saveall
  +     loadlib P1, ""
  +     dlfunc P0, P1, "system", "it"
  +     set I0, 1
  +     set S5, "stty cbreak -echo"
  +     invoke
        
  +     dlfunc P0, P1, "fcntl", "iiii"
  +     set I0, 1
  +     set I5, 0       # Stdin
  +     set I6, 3       # F_GETFL
  +     invoke
  +
  +     set I9, I5      # Old values
  +     bor I7, I5, 2048  # O_NONBLOCK 04000
  +     set I5, 0       # Stdin
  +     set I6, 4       # F_SETFL
  +     invoke
  +
  +     read S0, 1
  +
  +     set I7, I9
  +     set I5, 0
  +     set I6, 4
  +     invoke
  +
  +     loadlib P1, ""
  +     dlfunc P0, P1, "system", "it"
  +     set I0, 1
  +     set S5, "stty -cbreak echo"
  +     invoke
  +
  +     .return S0
  +     restoreall
  +     ret
  +.end
  
  
  

Reply via email to