Das Open-Control-Projekt - Die Alternative zur C-Control-I


Das Forum zur C-Control-1
Welche C-Control-Varianten existieren?
Übersicht - Suchen - Neueste 50 Beiträge - Neuer Beitrag - Login - Registrieren
INFO - FAQ - CC2-Forum - CCPro-Forum 

 Neue Version von OCBASIC Kategorie: Open-Micro/Open-Mini/Open-Midi/Open-Macro/Open-Maxi (von Dietmar, Homepage - 20.03.2017 21:17)
Dietmar nutzt:  Open-Micro, Open-Mini, Open-Midi, Open-Macro, Open-Maxi, Open-Mini M-Unit, Open-Mini Station
Hallo zusammen,

gestern habe ich einen Fehler im Open-Control/BASIC-Compiler Version 1.09 bei ON..GOTO und ON_GOSUB entdeckt: Wird ein Label abgefragt, das erst hinter dem Befehl definiert wird, führt das zum Absturz des Anwenderprogramms. Ab der neuen Version 1.10a des Compilers wird in solchen Fällen jetzt die Fehlermeldung "Label noch nicht definiert bei ON GOTO/GOSUB" ausgegeben. Die neue Version gibt es auf der Downloadseite der OM-Infosite unter Experimentelles.

' Fehler im Open-Control/BASIC-Compiler v1.09:
' in ON..GOTO und ON_GOSUB darf keine Subroutine/Funktion abgefragt werden, die erst hinter dem Befehl definiert wird:

' 20. März 2017

FUNCTION func1
  RETURN
END FUNCTION

#main
ON func2 GOTO lab1,lab2,lab3  'dagegen ist func1 erlaubt

#lab1

#lab2

#lab3

END

FUNCTION func2
  RETURN
END FUNCTION

' Ausgabe vom C-Control/Token-Disassembler V1.01 OM:

' 0004: 03 00 08    GOTO 0008
' 0007: 06          RETURN
'
' 0008: 05 00 2b    GOSUB 002b
' 000b: 01          PUSH OFF
' 000c: 40          TEST EQUAL (=)
' 000d: 04 00 13    IF NOT STACK THEN 0013
' 0010: 03 00 2a    GOTO 002a
' 0013: 05 00 00    GOSUB 0000
' 0016: 27          PUSH 1
' 0017: 40          TEST EQUAL (=)
' 0018: 04 00 1e    IF NOT STACK THEN 001e
' 001b: 03 00 2a    GOTO 002a
' 001e: 05 00 00    GOSUB 0000
' 0021: 55 02       PUSH 2
' 0023: 40          TEST EQUAL (=)
' 0024: 04 00 2a    IF NOT STACK THEN 002a
' 0027: 03 00 2a    GOTO 002a
' 002a: ff          END
'
' 002b: 06          RETURN
'
' 002c: ff          END

Viel Spaß und Erfolg mit den OM-Mikrocontrollern!

Dietmar

Meine Homepage: http://ccintern.dharlos.de

 Antwort schreiben

Bisherige Antworten:

Update: L-Distribution (von das |_ Team - 16.04.2017 22:26)
Nur so nebenbei ... (von laika63 - 6.04.2017 10:44)
    Re: Nur so nebenbei ... (von Dietmar - 6.04.2017 22:06)
        Re: Nur so nebenbei ... (von laika63 - 7.04.2017 10:04)
Wertgesteuerte Programmverzweigung (von Thorsten - 29.03.2017 6:09)
    Re: Wertgesteuerte Programmverzweigung (von Dietmar - 29.03.2017 14:34)
OCBASIC-Update und L-Distribution (von das |_ Team - 25.03.2017 10:57)
    Re: OCBASIC-Update und L-Distribution (von Dietmar - 25.03.2017 15:29)