'PrintMessage and PrintWrap code:
'Copyright 1993 by Ivory Tower Software
'CIS 76427,2611 (Richard Wagner)

'Provided as a public service by Ivory Tower Software.
'Any implementation must contain this notice.

Sub PrintMessage (sMsg As String)

  'Add a trailing carriage return:
  sMsg = sMsg + Chr$(13)
  
  'Break message into segments divided by carriage returns:
  For i% = 1 To Len(sMsg)
    CurChar$ = Mid$(sMsg, i%, 1)
    If CurChar$ = Chr$(13) Then
      If Len(Temp$) > 80 Then
        PrintWrap Temp$
      Else
        Printer.Print Temp$
      End If
      Temp$ = ""
    Else
      If CurChar$ <> Chr$(10) Then
        Temp$ = Temp$ + CurChar$
      End If
    End If
  Next i%

End Sub


Sub PrintWrap (sMsg As String)
  On Error GoTo PrintWrapHandler
  
  CurPos% = 1
  Segment$ = Space$(72)

  Do While Len(Segment$) = 72
    Segment$ = Mid$(sMsg, CurPos%, 72)
    If Len(Segment$) < 72 Then
      Printer.Print LTrim$(Segment$)
      Exit Do
    End If
    n% = 0
    CurChar$ = ""
    Do While CurChar$ <> " "
      CurChar$ = Mid$(Segment$, Len(Segment$) - n%, 1)
      n% = n% + 1
      np% = DoEvents()
    Loop
    PrinSeg$ = Mid$(sMsg, CurPos%, (72 - n%))
    Printer.Print LTrim$(PrinSeg$)
    CurPos% = CurPos% + (72 - n%)
    np% = DoEvents()
  Loop

  Exit Sub

PrintWrapHandler:
  Resume Next

End Sub
