The following warnings occurred:
Warning [2] Undefined array key 0 - Line: 1677 - File: showthread.php PHP 8.2.31 (Linux)
File Line Function
/inc/class_error.php 157 errorHandler->error
/showthread.php 1677 errorHandler->error_callback
/showthread.php 916 buildtree




Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
A big D on my hat
#11
Try this for an interim solution

Code:
#include "read-data-restore.bas" SETDATAVALUES( @TESTDATA1 ) WHILE ( NOT DataValuesEndFlag ) PRINT READDATA() ': PRINT END WHILE PAUSE 0 SETDATAVALUES( @TESTDATA2 ) DIM Duration as Float DIM Pitch as Byte WHILE ( NOT DataValuesEndFlag ) Duration = VAL( READDATA() ) Pitch = VAL( READDATA() ) BEEP Duration, Pitch END WHILE STOP TESTDATA1: ASM DEFM "String1," DEFM "string2," DEFM "string3," DEFM "string4,string5,string6,string7,string8,string9" DEFB $00 ; Terminating byte END ASM TESTDATA2: ASM ; Frere Gustav DEFM "1,0,1,2,.5,3,.5,2,1,0," DEFM "1,0,1,2,.5,3,.5,2,1,0," DEFM "1,3,1,5,2,7," DEFM "1,3,1,5,2,7," DEFM ".75,7,.25,8,.5,7,.5,5,.5,3,.5,2,1,0," DEFM ".75,7,.25,8,.5,7,.5,5,.5,3,.5,2,1,0," DEFM "1,0,1,-5,2,0," DEFM "1,0,1,-5,2,0" DEFB $00 END ASM --- read-data-restore.bas ' Basic implementation of DATA, READ and RESTORE functionailty ' :dbolli:20150209 19:48:23 DIM DataValuesPointer AS UInteger = 0 DIM CurrentDataValuesPointer AS UInteger = 0 DIM DataValuesEndFlag AS Byte = 0 DIM DataSeperator AS UByte = CODE( "," ) SUB SETDATAVALUES ( DataStringPointer AS UInteger ) LET DataValuesPointer = DataStringPointer LET CurrentDataValuesPointer = DataStringPointer LET DataValuesEndFlag = 0 END SUB FUNCTION READDATA AS String IF ( ( CurrentDataValuesPointer <> DataValuesPointer ) AND ( PEEK( UByte, CurrentDataValuesPointer - 1 ) = $00 ) ) THEN ASM RST $08 DEFB $0D ; Report E - Out of DATA error message END ASM ELSE DIM DataReturnString AS String DIM DataByte AS UByte LET DataReturnString = "" WHILE ( 1 ) DataByte = PEEK( UByte, CurrentDataValuesPointer ) LET CurrentDataValuesPointer = CurrentDataValuesPointer + 1 IF ( ( DataByte = DataSeperator ) OR ( DataByte = $00 ) ) THEN EXIT WHILE ELSE LET DataReturnString = DataReturnString + CHR( DataByte ) END IF END WHILE LET DataValuesEndFlag = ( DataByte = $00 ) RETURN DataReturnString END IF END FUNCTION SUB RESTOREDATAVALUES LET CurrentDataValuesPointer = DataValuesPointer LET DataValuesEndFlag = 0 END SUB

Regards,
Derek.
Reply


Messages In This Thread

Forum Jump:


Users browsing this thread: 1 Guest(s)