Beiträge von Mike im Thema „VIC20 Demo - schlonkels Fragethread :)“
-
-
Also, zum Abfragen der Sense-Leitung hab ich mal in einem Programm die Routine im KERNAL ab $F8AB verwendet:
Code.F8AB A9 40 LDA #$40 .F8AD 2C 1F 91 BIT $911F .F8B0 D0 03 BNE $F8B5 .F8B2 2C 1F 91 BIT $911F .F8B5 18 CLC .F8B6 60 RTS
Falls die Sense-Leitung betätigt ist, kehrt die Routine mit gesetztem Z-Flag zurück. Der Code sieht geringfügig anders aus, ja. Auf jeden Fall funktioniert das aber selbst in VICE 1.16.
Wenn selbst eine genaue Kopie dieses Code-Stücks im RAM *nicht* in einer aktuellen Version von VICE funktionieren sollte (müßte ich auch erstmal noch ausprobieren), wäre dies ein Hinweis darauf, daß wir es mit einem KERNAL-Trap von VICE zu tun haben.

Edit: Hmm, ja - sieht wohl tatsächlich so aus. In 'tape.c' vom VICE Source steht:
Zitat/* Tape traps. These functions implement the standard kernal replacements
for the tape functions. Every emulator can either use these traps, or
install its own ones, by passing an appropriate `trap_list' to
`tape_init()'. */
... tja. -
Hier mal meine Variante:
Code
Alles anzeigen.Fill LDA #$AB:STA $FB:STA $FD LDA #$10:STA $FC LDA #$94:STA $FE LDX #$16 .Fill_00 LDY #$15 .Fill_01 LDA #$A0:STA ($FB),Y LDA #$03:STA ($FD),Y DEY :BPL Fill_01 CLC LDA $FB:ADC #$1C:STA $FB:STA $FD BCC Fill_02 INC $FC:INC $FE .Fill_02 DEX:BNE Fill_00
Bin nicht so der Fan von selbstmodifizierendem Code, wenn's nicht unbedingt nötig ist.
-
Zitat von schlonkel
Edit: Und "nach unten" kann man ja noch 3kB dazuaddieren, du weißt schon, Modul

Braucht mein VC nicht. Der hat die 3 KB intern verbaut. Und zwar so, daß der VIC die auch ansprechen kann.
-
Zitat von schlonkel
Aber Speicher ist tatsächlich Mangelware. Besonders wenn der VC20 durch gänderten Bildschirm-RAM sowie -Charset jetzt noch 1.6kB oder so frei hat. Aber ich hab schon eine Speichererweiterung bereitgelegt

Wollt schon schreiben, daß Commodore damals™ gerüchteweise schon Speichererweiterungen gefertigt und verkauft hat - aber Du hast ja glücklicherweise die Kurve gekriegt.Kommt ja auch immer drauf an, wie oft der Code ausgeführt werden soll. Wenn er nur einmal gebraucht wird, braucht er natürlich nicht schnell zu sein.
Bin aber immer gerne zu Diskussionen rund um den VC bereit.

Es ist z.B. problemlos möglich, den Zeichensatz ab 7168 zu haben und den Bildschirmspeicher bei 6656. Dann hast Du immer noch 2.5 KB frei, 128 frei definierbare Zeichen und die original nicht-inversen Zeichen mit dem bekannten invers-PRINT/POKE-Trick.
