Robotrontechnik-Forum

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

Robotrontechnik-Forum » Technische Diskussionen » Tiny Basic 2K » Themenansicht

Autor Thread - Seiten: -1-
000
22.12.2021, 16:29 Uhr
wolle1945



Hallo,
wie kann ich die ASCII-Tabelle im Basic von Tiny 2K auf dem Monitor
darstellen oder einzelne Zeichen.
z.B. der Code 41H entspricht dem Zeichen A, Code 33H entspricht
der Zahl 3 usw.
mit Print %41 aberwird die Zahl 65 geschrieben, aber nicht das Zeichen A
auch Print (%41) ergibt die Zahl 65.
Was mache ich falsch?
--
mfG wolle1945
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
001
22.12.2021, 17:53 Uhr
ralle



Eine kleine Schleife basteln und probieren. Die muss ja nicht weiter als 128 zählen. Oder als Input frage bauen. Da kannst du die Zeichen direkt eingeben, mehr als Abstürzen kann es nicht.

Dann auf einer selbsterstellten Tabelle Zahl und Ergebnis niederschreiben. So würde ich es machen.
--
Gruß Ralle

Wenn Sie dazu neigen, Bedienungsanleitungen zusammen mit dem Verpackungsmaterial wegzuwerfen, sehen Sie bitte von einem derart drastischen Schritt ab!...
... Nachdem Sie das Gerät eine Weile ausprobiert haben, machen Sie es sich am besten mit dieser Anleitung und ihrem Lieblingsgetränk ein oder zwei Stunden lang in Ihrem Sessel bequem. Dieser Zeitaufwand wird Sie dann später belohnen...

aus KENWOOD-Bedienungsanleitung TM-D700
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
002
22.12.2021, 18:11 Uhr
Enrico
Default Group and Edit


Das bringt aber nichts, wenn die Hex 41 als Dez. 65 ausgegeben wird.
Ev Print "A", oder ev. was mit "Chr".... ?
Hab immer noch keinen Tiny zusammengelötet, aber so unterschiedlich kann
BASIC an der Stelle ja nicht sein.
--
MFG
Enrico

Dieser Beitrag wurde am 22.12.2021 um 18:12 Uhr von Enrico editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
003
22.12.2021, 18:25 Uhr
wolle1945



Hallo,
bei anderen Basic-Programmen geht das z.B. mit dem Befehl POKE
Beispiel POKE 3c8cH,41H
an der Stelle 3c8cH im Bild-Speicher wird das Zeichen A geschrieben.
Ich kann damit an einer bestimmten Stelle am Monitor (Bildspeicher)
ein bestimmtes Zeichen ausgeben.

10 REM 'zeichenvorrat'
20 i=20h:z=3c8ch:k=0
22 i=0h
30 POKE z,i
40 i=i+1:z=z+1:k=k+1
50 IF i=80hEND
60 IF k<16GOTO 30
70 z=z+14:k=0:GOTO 30
9999 END
--
mfG wolle1945

Dieser Beitrag wurde am 22.12.2021 um 18:32 Uhr von wolle1945 editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
004
22.12.2021, 21:43 Uhr
Bert



Direkt in den Bildspeicher schreiben bringt nix, da stehen nur die Pixel.
Aber du kannst die Systemfunktion ZBS dafür nutzen:

Quellcode:

10 CALL %8DD
20 LET X=32
30 PROC SETR[%5A,X]
40 CALL %827
50 LET X=X+1
60 IF X<128 THEN GOTO 30
70 END


Das sieht dann ungefähr so aus:


Viele Grüße,
Bert
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
005
22.12.2021, 22:37 Uhr
ambrosius




Zitat:
...

10 REM 'zeichenvorrat'
20 i=20h:z=3c8ch:k=0
22 i=0h
30 POKE z,i
40 i=i+1:z=z+1:k=k+1
50 IF i=80hEND
60 IF k<16GOTO 30
70 z=z+14:k=0:GOTO 30
9999 END



also ich kenne jetzt den Befehlsvorrat des Tiny nicht, aber wenn Du in Zeile 20 i=20h schreibst und in 22 i=0h, dann kann das doch nicht funktionieren??
--
viele Grüße
Holger
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
006
23.12.2021, 11:31 Uhr
volkerp
Default Group and Edit
Avatar von volkerp


Zitat:
Enrico schrieb
Das bringt aber nichts, wenn die Hex 41 als Dez. 65 ausgegeben wird.
Ev Print "A", oder ev. was mit "Chr".... ?
Hab immer noch keinen Tiny zusammengelötet, aber so unterschiedlich kann
BASIC an der Stelle ja nicht sein.



Doch, Tiny-Basic ist anders! Anleitung:
https://hc-ddr.hucki.net/wiki/doku.php/elektronik/u883/mpbasic

Zum Druck einzelner Zeichen anhand des ASCII-Codes gibt es

PROC PTC[]
--
VolkerP

http://hc-ddr.hucki.net
(Z9001, Z1013, LC-80, ...)

Dieser Beitrag wurde am 23.12.2021 um 11:32 Uhr von volkerp editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
007
23.12.2021, 13:40 Uhr
wolle1945




Zitat:
ambrosius schrieb

Zitat:
...

10 REM 'zeichenvorrat'
20 i=20h:z=3c8ch:k=0
22 i=0h
30 POKE z,i
40 i=i+1:z=z+1:k=k+1
50 IF i=80hEND
60 IF k<16GOTO 30
70 z=z+14:k=0:GOTO 30
9999 END



also ich kenne jetzt den Befehlsvorrat des Tiny nicht, aber wenn Du in Zeile 20 i=20h schreibst und in 22 i=0h, dann kann das doch nicht funktionieren??



i=20h bedeutet Darstellung Zeichen ab Leerzeichen.
i=0h stellt auch Zeichen vor dem Leerzeichen dar
ich wollte die Zeile 20 nicht noch einmal schreiben und habe Zeile 22 eingefügt.
--
mfG wolle1945
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
008
23.12.2021, 13:45 Uhr
wolle1945



@Bert,
vielen Dank für Dein Programm, so wollte ich es haben und funktioniert.
Ich habe auch noch mit X operiert, um weitere Zeichen darzustellen.

@volkerp,
vielen Dank auch für den Link zum MPBASIC.
--
mfG wolle1945
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
009
23.12.2021, 20:36 Uhr
u.nickel



Hallo,
habe folgende Frage, die sich aeigentlich auch unter der Überschrift TINY-Basic 2k einordnen läßt, deshalb kein neuer Thread:

Wie kann ich nach dem Laden eines Basiprogramms mit Aufruf des Interpreters automatisch das Programms ausführen?

Ich weiß, dass das irgendwie ging, habe das in den 80zigern auch mal gemacht, aber Unterlagen dazu verbummelt. Habe nur schwache Errinnerung, das in irgendwelche Register (14,15?) irgendwas geladen werden musste.

Grüße kurz vor Weihnachten
Uwe
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
010
23.12.2021, 21:02 Uhr
volkerp
Default Group and Edit
Avatar von volkerp

Siehe z.B. https://hc-ddr.hucki.net/wiki/doku.php/elektronik/u883/mpbasic2

Register mit Adresse des Basic-Prgm laden, dann Call 7fdh.
--
VolkerP

http://hc-ddr.hucki.net
(Z9001, Z1013, LC-80, ...)
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
011
23.12.2021, 21:26 Uhr
u.nickel



Danke Volker,
ja so gehts. Hatte das so schon probiert, funktionierte nicht wirklich. Weil: hatte srp %10 vergessen.

Uwe
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
012
25.12.2021, 07:56 Uhr
ralle



Was vielleicht eher unter unnütz käme, ein einfaches Uhrenprogramm. Falls mal jemand Außenstehender fragt, welchen Nutzen diese Bastelein haben.
--
Gruß Ralle

Wenn Sie dazu neigen, Bedienungsanleitungen zusammen mit dem Verpackungsmaterial wegzuwerfen, sehen Sie bitte von einem derart drastischen Schritt ab!...
... Nachdem Sie das Gerät eine Weile ausprobiert haben, machen Sie es sich am besten mit dieser Anleitung und ihrem Lieblingsgetränk ein oder zwei Stunden lang in Ihrem Sessel bequem. Dieser Zeitaufwand wird Sie dann später belohnen...

aus KENWOOD-Bedienungsanleitung TM-D700
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
013
29.12.2021, 12:43 Uhr
Bert




Zitat:
Bert schrieb
Direkt in den Bildspeicher schreiben bringt nix, da stehen nur die Pixel.


Das ist nur die halbe Wahrheit. Wenn die Zeichen über das Betriebssystem ausgegeben werden, können sie über den ASCII-RAM (%FD00...%FD7F) zurückgelesen werden.

Beim JU+TE (2k-System) ist der Speicher wie folgt aufgeteilt:

Quellcode:

%E000...%FCFF; BASIC-RAM (je nach Ausstattung)
%FD00...%FD7F: ASCII-Bildspeicher
%FD80...%FDFF: Stapelspeicher (Stack)
%FE00...%FFFF: graphischer Bildwiederholspeicher



Bei Minimalausbau (mit 1 kByte RAM) wird der Speicher mehrfach eingeblendet:

Quellcode:

%E000...%E3FF =
%E400...%E7FF =
%E800...%EBFF =
%EC00...%EFFF =
%F000...%F3FF =
%F400...%F7FF =
%F800...%FBFF =
%FC00...%FFFF =


Damit bleibt für das eigene Programm nur noch der Bereich zwischen %E000 bis %E0FF (=%FC00 bis %FCFF).

Viele Grüße,
Bert
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
014
31.12.2021, 12:30 Uhr
Bert



Mit PROC PTC - so wie von Volker vorgeschlagen - wird es nochmal etwas eleganter:

Quellcode:

10 PROC PTC[12]
20 LET X=32
30 PROC PTC[X]
40 LET X=X+1
50 IF X<109 THEN GOTO 30
60 END




Ich wünsche allen Freunden der historischen Rechentechnik einen Guten Rutsch!
Viele Grüße,
Bert
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
015
06.02.2022, 16:26 Uhr
Bert



Und hier kommt die Variante für das ES4.0 (Ju+Te 6k):

Quellcode:

10OPTC[12]
20LX=0
39MESC-Mode aktiv
40OPTC[14]
41OPTC[X]
50LX=X+1
54FX$M4=0;OPTC[32]
55FX$M16=0;P
60FX<128;G40
9999E



In lesbar (Dank dem BASIC-Editor im JTCEMU!) sieht das Programm so aus:

Quellcode:

10 PROC PTC[12]
20 LET X=0
39 REM ESC-Mode aktiv
40 PROC PTC[14]
41 PROC PTC[X]
50 LET X=X+1
54 IF X$M4=0 THEN PROC PTC[32]
55 IF X$M16=0 THEN PRINT
60 IF X<128 THEN GOTO 40
9999 END





Viele Grüße,
Bert
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