Buchempfehlung
Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie
Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie
Umfassend, aber leicht verständlich führt dieses Buch in die Programmierung von ATMEL AVR Mikrocontrollern ein. [Mehr Infos...]
FreeBASIC-Chat
Es sind Benutzer im FreeBASIC-Chat online.
(Stand:  )
FreeBASIC bei Twitter
Twitter FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!

fb:porticula NoPaste

Info
Info / Hilfe
Liste
Übersicht / Liste
Neu
Datei hochladen
Suche
Quellcode suchen
Download
Dateidownload

DEBUG-Info mit Macro im Fenster anzeigen

Uploader:MitgliedLothar Schirm
Datum/Zeit:01.04.2011 18:35:24

'==============================================================================
' Debuggen von Programmen (Fenstertechnik mit VIEW PRINT)
' DEBUG.BAS
' Erstellt am 11.11.2010
' Letzte Ueberarbeitung am 01.04.11
' Autor: Lothar Schirm
'==============================================================================


' Zum Debuggen im Fenster muessen folgende Anweisungen unter die betreffende(n)
' Programmzeile(n) geschrieben werden (Beispiel):
'
' ViewDEBUG(1, 5)  'DEBUG-Fenster Zeile 1 bis 5 oeffnen
' DEBUG(x, 0)      'DEBUG-Ausgaben (Variable x, y, z) ins DEBUG-Fenster
' DEBUG(y, 0)
' DEBUG(z, 1)
' ExitDEBUG        'Rueckkehr aus dem DEBUG-Fenster ins Programm
'
' Wenn ViewDEBUG und ExitDEBUG ausgelassen werden, erfolgt die Ausgabe der
' DEBUG-Informationen fortlaufend im Programm, beginnend ab der aktuellen
' Cursorposition.


DIM SHARED AS INTEGER Prog_row, Prog_col, Screen_bpp, Prog_fcolr, Prog_bkcolr, _
                      TextWin_row0, TextWin_row1, DEBUG_key

DECLARE SUB ViewDEBUG (Startzeile AS INTEGER, Endzeile AS INTEGER)
DECLARE SUB ExitDEBUG


#MACRO DEBUG(v, Break)
' Ausgeben von DEBUG-Informationen (Variable v). Bei Break <> 0 wird das Programm
' angehalten. Fortsetzen mit F1, Beenden mit ESC.

  'Ausgabeformat: Prozedur, Zeile, "v: ", v
  PRINT __FUNCTION__; __LINE__; SPACE(1); #v; ": "; v

  IF Break <> 0 THEN
    PRINT "F1: Weiter   ESC: Ende"
    DO
      DEBUG_key = GETKEY
    LOOP UNTIL DEBUG_key = &H3BFF OR DEBUG_key = &H1B
    IF DEBUG_key = &H1B THEN END
  END IF

#ENDMACRO


SUB ViewDEBUG (Startzeile AS INTEGER, Endzeile AS INTEGER)
' Eroeffnet mit VIEW PRINT Startzeile to Endzeile ein DEBUG-Fenster, in das alle
' nachfolgenden Ausgaben erfolgen.

  'Aktuelle Textfenstergroesse, Cursorposition und Farben des Programms speichern:
  TextWin_row0 = LOWORD(VIEW PRINT())
  TextWin_row1 = HIWORD(VIEW PRINT())
  Prog_row = CSRLIN
  Prog_col = POS
  SCREENINFO ,,, Screen_bpp
  IF Screen_bpp < 2 THEN
    Prog_fcolr = LOWORD(COLOR)
    Prog_bkcolr = HIWORD(COLOR)
  END IF

  'DEBUG-Fenster schwarz auf kobaltblau (nur bei 1 byte pro Pixel):
  VIEW PRINT Startzeile TO Endzeile
  IF Screen_bpp < 2 THEN COLOR 0, 3
  CLS 2

END SUB


SUB ExitDEBUG
' Rueckkehr aus dem DEBUG-Fenster in das Programm

  VIEW PRINT TextWin_row0 TO TextWin_row1
  IF Screen_bpp < 2 THEN COLOR Prog_fcolr, Prog_bkcolr
  LOCATE Prog_row, Prog_col

END SUB