Vielleicht mag wer gucken, was Bascom aus so einem "Select + GOTO" macht
Code:
 
Do
      Select Case Varia1
         Case 23:
            If Varia2 <> 5 Then
                  Result = 44
            Else
                  Goto Ende
            End If
         Case 24:
            If Varia2 = 66 Then
                  Result = 22
            Else
                  Goto Ende
            End If
         Case Else
            Result = 0
      End Select
Ende:
	  Loop
End
Was macht der Bascom draus ?
Code:
 
//-----------------------------
DO:				
// Case 23:
	LDS	r16,0x0060		// load varia1
	CPI	r16,0x17		// <> 23 ? 
	BREQ	L_0x0092	// next
	JMP	L_0x00B0		// --> goto next case
L_0x0092:				// 
	LDS	r16,0x0061		// load varia1
	CPI	r16,0x05		// <> 5 ? 
	BRNE	L_0x009E	
	JMP	L_0x00A8		
L_0x009E:
	LDI	r24,0x2C		// load '44'
	STS	0x0062,r24		// store Result 
	JMP	L_0x00AC		
L_0x00A8:				
	JMP	ENDE		
L_0x00AC:
	JMP	ENDE
//-----------------------------
L_0x00B0:				
// Case 24
	CPI	r16,0x18		// load varia1
	BREQ	L_0x00B8	// <> 24 ? 
	JMP	L_0x00D6
L_0x00B8:
	LDS	r16,0x0061
	CPI	r16,0x42
	BREQ	L_0x00C4
	JMP	L_0x00CE
L_0x00C4:
	LDI	r24,0x16
	STS	0x0062,r24
	JMP	L_0x00D2
L_0x00CE:
	JMP	ENDE
L_0x00D2:
	JMP	ENDE
L_0x00D6:				// Case ELSE
	LDI	r24,0x00		
	STS	0x0062,r24		// result = 0

ENDE:				// 				
	JMP	DO			// "LOOP"
	
.DB	0xF8, 0x94	;..

L_0x00E2:				// "END" 
	RJMP	L_0x00E2	// forever
Da hüpft er rum wie Rumpelstilzchen.

In "C" hätte man statt GOTO eben "break;" geschrieben.