Robotrontechnik-Forum

Registrieren || Einloggen || Hilfe/FAQ || Suche || Mitglieder || Home || Statistik || Kalender || Admins Willkommen Gast! RSS

Robotrontechnik-Forum » Technische Diskussionen » TINYBASIC » Themenansicht

Autor Thread - Seiten: -1-
000
02.12.2012, 20:30 Uhr
volkerp
Default Group and Edit
Avatar von volkerp

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, ...)
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
001
03.12.2012, 14:11 Uhr
jmueller



vpohlers schrieb;


Zitat:
Wie gebe ich in TINYBASIC Hexadezimalzahlen (Speicheradressen) ein?

Im Interpreter kannst du bei der INPUT-Anweisung direkt "HEX(ABCD)" eingeben.
Eine Hex-Zahl selbst parsen wird man aus meiner Sicht bei einer 16-Bit-Arithmetik
mit reinen Tiny-BASIC-Mitteln nicht vollständig hinbekommen.

Jens

Dieser Beitrag wurde am 03.12.2012 um 14:11 Uhr von jmueller editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
Seiten: -1-     [ Technische Diskussionen ]  



Robotrontechnik-Forum

powered by ThWboard 3 Beta 2.84-php5
© by Paul Baecher & Felix Gonschorek