PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ccbasic programm in basic++ übertragen



Z80
26.03.2006, 14:29
Ich möchte die binären stellen eine Zahl über ein port ausgeben.

Mit CC-basic giehng das so:

xsin = 0-((addr AND 4)<>0)
xsin = 0-((addr AND 2)<>0)
xsin = 0-((addr AND 1)<>0)

zwischen den einzelnen binärstellen gabs dann noch ein takt impuls.
Doch wie macht man das mit Basic++

Das ihr gab er in CCBasic aus,
000 10000000
001 00000101
010 00000000
011 00010100
100 00000001
101 00000000
110 00000001
111 00000111

Und das entsteht mit Basic++
12800 00000000
500 00000000
000 00000000
2000 00000000
100 00000000
000 00000000
100 00000000
700 00000000




#reg_write
'send addr'
k = 0-((addr AND 4)<>0)
print k;
pulse xck
sin = 0
k = 0-((addr AND 2)<>0)
print k;
pulse xck
sin = 0
k = 0-((addr AND 1)<>0)
print k,
pulse xck
sin = 0
'send wert'
k = 0-((wert AND 128)<>0)
print k;
pulse xck
sin = 0
k = 0-((wert AND 64)<>0)
print k;
pulse xck
sin = 0
k = 0-((wert AND 32)<>0)
print k;
pulse xck
sin = 0
k = 0-((wert AND 16)<>0)
print k;
pulse xck
sin = 0
k = 0-((wert AND 8)<>0)
print k;
pulse xck
sin = 0
k = 0-((wert AND 4)<>0)
print k;
pulse xck
sin = 0
k = 0-((wert AND 2)<>0)
print k;
pulse xck
sin = 0
k = 0-((wert AND 1)<>0)
print k
load = 1
pulse xck
sin = 0
load = 0
return

Z80
26.03.2006, 19:13
Wie erechnet man die einzelnen binären stellen einer zahlin basic?

Dierk
27.03.2006, 13:44
So wie ich Dich verstehe willst Du Nullen uns Einsen haben:

Ein "ON", ein "TRUE" (wie hier) wird immer in -1 und ein "OFF", "False" in Form einer 0 repräsentiert.
Du mußt also nur das Minus vorne wegbekommen. Das kannst Du am einfachsten durch "abs" machen.


Print abs((addr AND 4)<>0)

Gruss