000
02.12.2012, 20:30 Uhr
volkerp
Default Group and Edit
|
Hallo,
ich habe ein kleines Programmierproblem: Wie gebe ich in TINYBASIC Hexadezimalzahlen (Speicheradressen) ein?
Ich teste das gerade auf dem Z1013, es soll aber allgemeingültig in TINY-BASIC umgesetzt werden. Problem dabei ist, dass TINY-BASIC mit 16 Bit signed integer arbeitet, d.h. die Zahlen gehen von -32768..32767. Folgender Code funktioniert daher nur mit Eingabe von 0000...7FFF, ab 8000 gibt es einen Arithmetik-Überlauf.
Quellcode: | 10 PRINT "ADR:",;I$ (TOP) 20 GOSUB 1000 30 print d 40 goto 10 1000 REM Hex->Dez 1005 D=0 1010 FOR I=TOP TO TOP+LEN-1 1020 IF PEEK(I)<'A' D=D*16+(PEEK(I)-'0') 1030 IF PEEK(I)>='A' D=D*16+(PEEK(I)-'A'+10) 1040 NEXT I 1050 RETURN
|
Hat jemand eine Idee? -- VolkerP
http://hc-ddr.hucki.net (Z9001, Z1013, LC-80, ...) |