![]() ![]() INFO - FAQ - CC2-Forum - CCPro-Forum |
|
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 |