home *** CD-ROM | disk | FTP | other *** search
/ Chip 1999 August / Chip_1999-08_cd.bin / sharewar / wscmclib / DISPLAY.BAS < prev    next >
BASIC Source File  |  1997-10-30  |  2KB  |  79 lines

  1. ' DISPLAY.BAS
  2.  
  3. Option Explicit
  4. Dim ScreenBuffer(0 To 23) As String * 80
  5. Dim CurrentRow As Integer
  6. Dim CurrentCol As Integer
  7.  
  8. Sub DisplayChar (F As Form, ByVal c As Integer)
  9.   Dim Row As Integer
  10.   Dim Col As Integer
  11.   'throw away nulls
  12.   If c = 0 Then Exit Sub
  13.   c = &H7F And c
  14.   'process char
  15.   If c = 13 Then
  16.     'carriage control
  17.     CurrentCol = 0
  18.     'plus assumed line feed
  19.     If CurrentRow < 23 Then
  20.       CurrentRow = CurrentRow + 1
  21.       'print CR+LF
  22.       F.Print " "
  23.     Else
  24.       'scroll !
  25.       F.Cls
  26.       For Row = 0 To 22
  27.         'print row
  28.         ScreenBuffer(Row) = ScreenBuffer(Row + 1)
  29.         F.Print ScreenBuffer(Row)
  30.       Next Row
  31.       'clear bottom row
  32.       ScreenBuffer(23) = Space$(80)
  33.     End If
  34.   ElseIf c = 10 Then
  35.     'throw away line feeds
  36.   Else
  37.     'not CR or LF
  38.     CurrentCol = CurrentCol + 1
  39.     If CurrentCol > 79 Then
  40.       'throw away !
  41.       Exit Sub
  42.     Else
  43.       'save in screen buffer & display
  44.       Mid$(ScreenBuffer(CurrentRow), CurrentCol, 1) = Chr$(c)
  45.       F.Print Chr$(c);
  46.     End If
  47.   End If
  48. 'display caret
  49. Col = F.CurrentX
  50. F.Print "_";
  51. F.CurrentX = Col
  52. End Sub
  53.  
  54. Sub DisplayInit (F As Form)
  55. Dim Row As Integer
  56. CurrentCol = 0
  57. CurrentRow = 0
  58. For Row = 0 To 23
  59.   ScreenBuffer(Row) = Space$(80)
  60. Next Row
  61. F.FontTransparent = False
  62. F.Cls
  63. End Sub
  64.  
  65. Sub DisplayLine (F As Form, Text As String)
  66.   Call DisplayString(F, Text)
  67.   Call DisplayChar(F, 13)
  68. End Sub
  69.  
  70. Sub DisplayString (F As Form, Text As String)
  71.   Dim i As Integer
  72.   Dim Length As Integer
  73.   Length = Len(Text)
  74.   For i = 1 To Length
  75.     Call DisplayChar(F, Asc(Mid$(Text, i, 1)))
  76.   Next i
  77. End Sub
  78.  
  79.