Bank Switching mit dem ramspeicher

1, 2

Bank Switching mit dem ramspeicher

von robbifan » Di 19. Jun 2007, 15:15
wo finde ich was darüber, damit ich den speicher oberhalb 64kb bis 1mb als datenspeicher nutzen kann, keine ramdisk.

von PacMan » Di 19. Jun 2007, 15:26
Hallo,

Da gibt es ein TBasic-Speichertestprogramm was den Speicher testet indem es Bilder im Speicher ablegt (mit Bankumschaltung) und später wieder aufruft. Ich kann Dir morgen noch schreiben welche Pokes benutzt werden und maile Dir das ATR-File.
Da der Atari nur 64k addressieren kann wird bei der Bankumschaltung der Hauptspeicher von $4000-$7FFF ausgeblendet und das Zusatzram dafür eingeblendet. Im Turbo Basic wird somit der freie Programmspeicher reduziert.

Gruß,
Steffen

von robbifan » Di 19. Jun 2007, 16:08
jub, danke.

sag mal, kannst du mir mal das turbobasicbuch als "html" mailen? ich habe es nur als pdf, ist ein bisschen umständlich zum händeln.

mfg

von PacMan » Di 19. Jun 2007, 20:15
Hallo,

Als HTML habe ich das Handbuch nicht. Mit Poke 54017,x wird eine 16k Rambank ausgewält. Mit Poke 54017,254 wird zurück zum Hauptspeicher geschaltet. 54017=$D301

Gruß,
Steffen

von robbifan » Di 19. Jun 2007, 20:35
wie gross ist eine rambank ? 16kb?

wie fängt man an zu zählen? fängt man über 64kb mit bank 0 an ? oder fängt die 1. bank bei 0byte an? heisst die erste bank 0 oder 1?

mfg

von andreasb » Di 19. Jun 2007, 21:39
Das finde ich auch ein interessantes Thema. gerade so von basic aus mit peek/Poke

von HiassofT » Di 19. Jun 2007, 21:39
robbifan hat geschrieben:wie gross ist eine rambank ? 16kb?

Ja, genau.

wie fängt man an zu zählen? fängt man über 64kb mit bank 0 an ? oder fängt die 1. bank bei 0byte an? heisst die erste bank 0 oder 1?

Der erweiterte Speicher ist (meistens) komplett getrennt vom "normalen" Speicher. Insofern ist es eigentlich egal wie rum man zählt. Mit Bit 4 in PIA PortB blendest Du eine Bank des erweiterten Speichers ein (PB4=1 normales RAM, PB4=0 erweitertest RAM). Die restlichen (beim 800XL)"freien" Bits von PortB (2,3,5,6) legen die RAM-Bank fest. Verschiedene Erweiterungen verwenden hier verschiedene Bits... Auf jeden Fall sollten die Bits 2,3 gehen, das war der Standard beim 130XE (siehe Profibuch). Beim 130XE (und einigen anderen Erweiterungen) legt Bit 5 fest, ob der ANTIC auf's normale RAM (1) oder auf's erweiterte (0) zugreifen soll. Einige andere Erweiterungen nehmen auch noch eigentlich belegte Bits (PB7 für den Selbsttest, manchmal auch PB1 für's BASIC) mit als Banknummer her.

Andreas Koch (vormals Magenheimer) hatte eine schöne Übersicht der meisten RAM-Erweiterungen zusammengestellt, inkl. Infos wie man sie programmiert. http://www.cs.uu.nl/wais/html/na-dir/atari-8-bit/faq.html Abschnitt 8.10 (und folgende).

so long,

Hias

von robbifan » Di 19. Jun 2007, 22:41
hallo, steffen.

warum ist dein datawert bei der compy 256 immer um "1" kleiner als in der beschreibung :
- Size: 256k / 26AE (total = 320k RAM, 16 banks)
- Banks: 23,27,2B,2F,63,67,6B,6F,A3,A7,AB,AF,E3,E7,EB,EF
(blocks 26AE, = 4 blocks * 4 banks)
- Types: Compy-Shop 800XL RD., Compy-Shop 130XE RD.,


mfg

von CharlieChaplin » Di 19. Jun 2007, 23:01
Nun,
wenn ich mich nicht irre, ist das der unterschied zwischen Basic aus und Basic an... wenn du mit T.Karwoth`s Ramtester (geschrieben in Atari Basic) testest, weichen die Werte halt ab. Mit XRAM von Satantronic dürften sie dann wieder stimmen... hoffe ich jedenfalls...
-Andreas Koch.

von robbifan » Di 19. Jun 2007, 23:22
die bank fängt ja bei 16384 an. könnte man da auch den screen hinlegen, dann brauchte man kein move anwenden und man würde das bild gleich sehen? und dann den screen 8kb höher legen und man sieht das 2.bild in der 16kb ram, also 16384 +8192.

mfg

von HiassofT » Di 19. Jun 2007, 23:46
robbifan hat geschrieben:die bank fängt ja bei 16384 an. könnte man da auch den screen hinlegen, dann brauchte man kein move anwenden und man würde das bild gleich sehen? und dann den screen 8kb höher legen und man sieht das 2.bild in der 16kb ram, also 16384 +8192.

Ja, klar, das geht. Du musst nur aufpassen, daß in diesem Bereich gerade kein normaler Programmcode steht, den Du gerade brauchst (zB bei Basic Programmen kann das schnell mal passieren).

Zu den Hex-Werten in Andreas' Liste: Klarer ist es, wenn Du Dir die Bits direkt ansiehst. Einige Bits in PortB werden ja vom Atari direkt verwendet, und für die RamBank Auswahl ist es eigentlich egal ob Basic bzw das OS-ROM an oder ausgeschaltet ist. Insofern sind die unteren 2 Bits dann irrelevant.

Der PowerUp Default von PortB ($FF) ist übrigens so geschaltet, daß da nur das OS ROM eingeschaltet ist, alles andere (Basic, Selftest, Ram-Erweiterung) sind aus. Das Bit für das OS-ROM ist also "Active High", die anderen Bits sind "Active Low". Das macht insofern Sinn als man den PIA auch auf Input schalten kann (machte zB das alte OS der Atari 400/800er, da waren da 2 weitere Joystick Ports dran) und immer noch ein sinnvolles Setup hat (OS da, alles andere aus).

so long,

Hias

von robbifan » Di 19. Jun 2007, 23:56
wie legt man mit poke eigentlich den screen auf 16384?

mfg

von HiassofT » Mi 20. Jun 2007, 02:21
robbifan hat geschrieben:wie legt man mit poke eigentlich den screen auf 16384?

Da musst Du entweder selber eine Display-List bauen oder (zB bei einem Standard Graphics 8/15/... Screen) die vorhandene Display-List (Peek 560/561) verändern. Achtung: Bei Graphics 8/9/10/15 Screens (die alle 8k Speicher brauchen) gibt's etwa in der Mitte der Display List nochmal eine 2. Stelle an der der Bilfdschirmspeicher gesetzt wird, der interne Adresscounter im Antic kann maximal bis 4k zählen.

so long,

Hias

von robbifan » Mi 20. Jun 2007, 08:39
kannst mir mal da behilflich sein?
da muss doch irgendwie auch der speicher für turbobasic begrenzt werden?



mfg

von HiassofT » Mi 20. Jun 2007, 11:28
robbifan hat geschrieben:kannst mir mal da behilflich sein?
da muss doch irgendwie auch der speicher für turbobasic begrenzt werden?

Ja, sollte man. Wenn das Programm sehr klein ist (Turbo Basic Programme beginnen bei Adresse 13865) geht es auch so. Am besten wäre es, TurboBasic beizubringen, daß es RAM erst ab 32768 ($8000) benutzt. Ich weiss jetzt nicht auswendig, wie das geht, aber ich glaube vor kurzem wurde das hier im Forum diskutiert. Suche mal ein wenig.

so long,

Hias

von robbifan » Mi 20. Jun 2007, 19:00
von wo bis wo geht denn das basic im atari800/130?

mfg

von robbifan » Mi 20. Jun 2007, 19:03
Da musst Du entweder selber eine Display-List bauen ...


kannst du mir mal eine zeigen für den screen ab 16383 und grafikmodus 8.

danke.


mfg

von robbifan » Mi 20. Jun 2007, 21:30
hallo, habe ein ram unter atari-emu von 576kb(noname).

verwende diese 3 code, aber keiner funktioniert :
- Size: 512k / 26AE (total = 576k RAM, 32 banks)
- Banks: 21,23,25,27,29,2B,2D,2F,61,63,65,67,69,6B,6D,6F,
A1,A3,A5,A7,A9,AB,AD,AF,E1,E3,E5,E7,E9,EB,ED,EF
(blocks 26AE = 4 blocks * 8 banks)
- Types: none (that I know of) at the moment - but possible!

- Size: 512k / 8ACE (total = 576k RAM, 32 banks)
- Banks: 81,83,85,87,89,8B,8D,8F,A1,A3,A5,A7,A9,AB,AD,AF,
C1,C3,C5,C7,C9,CB,CD,CF,E1,E3,E5,E7,E9,EB,ED,EF
(blocks 8ACE = 4 blocks * 8 banks)
- Types: Scott Peterson, TOMS, selfmade-RDs...

- Size: 512k / 02468ACE (total = 576k RAM, 32 banks)
- Banks: 03,07,0B,0F,23,27,2B,2F,43,47,4B,4F,63,67,6B,6F,
83,87,8B,8F,A3,A7,AB,AF,C3,C7,CB,CF,E3,E7,EB,EF;
(blocks 02468ACE = 8 blocks * 4 banks)


wer kann mir den mal geben für den emu mit 576kb.

mfg

von cas » Sa 28. Jul 2007, 13:30
Ich habe einen Artikel von Erwin Reuss über die Programmierung der CompyShop Ramdisk aus den CompyShop Magazinen 9/10 1988 online in das Wiki gestellt

http://www.strotmann.de/twiki/bin/view/ ... tRamologie

Viel Spass beim Lesen!

Carsten

von cas » Sa 28. Jul 2007, 15:45
Und noch einen Artikel von Walter Lojek zum Thema online gestellt

http://www.strotmann.de/twiki/bin/view/ ... SwitchXlXe
1, 2