Im Prinzip ist der Mini-Black der Mega65 fĂĽr den schmalen Geldbeutel: Die Nachbildung eines Computers, den es so nie gegeben hat.
Beiträge von goloMAK
-
-
In diesem kleinen Intro von Headbanger wird das so gemacht.
Hab dort mal spaĂźeshalber das besagte bne/beq durch
ersetzt, und siehe da: Löppt auch! Und ist (insgesamt) 2 Byte kürzer.

-
Also, "brauchen" tut man das ganze Ding nicht, ob mit oder ohne funktionale Tastatur.
Das ändert aber nichts daran, dass es schick wäre, mal ein bisschen was direkt eingeben zu können.Nichts davon habe ich in Abrede gestellt.
Aber wenn Du nur einen Teil meines Posts zitierst, verfälscht das das Bild, denn exakt das habe ich weiter oben schon sinngemäß gesagt.
Und, dass MIR (!) das kein Extrageld fĂĽr so eine Tastatur wert ist.Geld war ĂĽberhaupt nicht mein Thema und auch nicht das, worauf ich geantwortet hatte.
-
Das ändert aber nichts daran, dass es schick wäre, mal ein bisschen was direkt eingeben zu können.
Kann man ja auch machen. Im Classic Mode verhält sich der TheC64 (Mini) genau wie ein richtiger C64.
Es ging um die Benutzung der eingebauten Tastatur. Die ist beim TheC64 Mini immer noch taub, oder nicht?
-
FĂĽr ein schickes LOAD"*",8,1 wird es wohl reichen.
Und dann halt ab und zu Tastenbedienung oder Namenseingabe bei Spielen... passt!Die erste Zeile braucht man an dem Dingen nicht.

Also, "brauchen" tut man das ganze Ding nicht, ob mit oder ohne funktionale Tastatur.
Das ändert aber nichts daran, dass es schick wäre, mal ein bisschen was direkt eingeben zu können.
-
Programmiert man wirklich auf solchen Winztasten?

FĂĽr ein schickes LOAD"*",8,1 wird es wohl reichen.
Und dann halt ab und zu Tastenbedienung oder Namenseingabe bei Spielen... passt!
-
Vielleicht haben die Entwickler ja eine Idee, wie man das lösen kann! Bis zum 24. Oktober ist ja noch ein bisschen Zeit.
Die sollen halt entsprechende Schokoladendisketten fĂĽr den Mini-Black herausbringen. Mit folgendem Befehlssatz:
VALIDATE Auf Echtheit prüfen OPEN Packung aufreißen SCRATCH Ein Stück abbeißen NEW Alles wegputzen CLOSE (wird nicht benötigt) -
Ein C116 oder Plus/4 ist deutlich schwieriger zu produzieren.
Deswegen ja auch Plus/1!
-
Warum kein C16 mini, hätte ich sofort bestellt...

Warum kein verkleinerter Plus/4? Mit dem launigen Namen Plus/1...
-
Ich weiĂź nicht, was das machen soll, aber nach Ausgabe der Zeichenmatrix erfolgt ein INPUT in Hellrot, mitten in die vorherige Ausgabe. Das kann so nicht richtig sein. Das zweite macht auch nix Gescheites.
Äh... das erste ist ein einfacher Zeicheneditor, das zweite zeigt den erstellten Zeichensatz an, wenn er auf Diskette liegt. Steht im Heft.

Bitte melde dich an, um diesen Anhang zu sehen.
-
8004 c3 c2 38 30 ; cbm80 (bewirkt 'modul-start')
hier fehlt ein 'cd'
8004 c3 c2 cd 38 30 ; cbm80 (bewirkt 'modul-start')
Uppsi! Dann zur Sicherheit noch einmal der korrigierte Text. Den NMI-Fehler aus dem Heft habe ich aber dringelassen.
Code
Alles anzeigen8000 0a 80 ; reset-vektor 8002 37 80 ; nmi-vektor 8004 c3 c2 cd 38 30 ; cbm80 (bewirkt 'modul-start') 8009 ff ----------------------------- reset 800a 8e 16 d0 stx $d016 800d 20 a3 fd jsr $fda3 8010 20 50 fd jsr $fd50 ; arbeitsspeicher initialisieren 8013 20 b7 e4 jsr $e4b7 8016 20 15 fd jsr $fd15 ; hardware und i/o vektoren setzen/holen 8019 20 33 80 jsr $8033 ; initialisierung der f1-taste 801c 4c fb fc jmp $fcfb ; zurueck zum original-reset ----------------------------- nmi 801f 20 bc f6 jsr $f6bc 8022 20 e1 ff jsr $ffe1 8025 d0 09 bne $8030 ; nicht gedrueckt, dann $8030 8027 20 a3 fd jsr $fda3 ; i/o initialisieren 802a 20 18 e5 jsr $e518 ; bildschirm loeschen (i/o initialisieren) 802d 6c 02 a0 jmp ($a002) ; zum basic-warmstart 8030 4c 72 fe jmp $fe72 ; weiter im original nmi ----------------------------- initialisierung der f1-taste 8033 78 sei ; setzen des interrupt-dissable-bit 8034 a2 46 ldx #$46 8036 a0 80 ldy #$80 8038 8e 14 03 stx $0314 ; interrupt auf adresse 803b 8c 15 03 sty $0315 ; $8046 setzen 803e 58 cli ; loeschen des interrupt-dissable-bit 803f a9 80 lda #$80 ; programm vor ueberschreiben sichern 8041 85 34 sta $34 ; zeiger fuer stringspeicher auf $8000 8043 85 38 sta $38 ; zeiger speichergrenze auf $8000 8045 60 rts ----------------------------- erweiterung der interrupts 8046 a5 cb lda $cb ; aktuelle taste holen 8048 c9 04 cmp #$04 ; = f1-taste ? 804a f0 08 beq $8054 ; ja, dann $8054 804c a9 ff lda #$ff ; flag fuer 804e 8d 09 80 sta $8009 ; f1-taste loeschen 8051 4c 31 ea jmp $ea31 ; zurueck zum interrupt 8054 ad 09 80 lda $8009 ; f1-taste schon laenger gedrueckt ? 8057 c9 ff cmp #$ff 8059 d0 f6 bne $8051 ; ja, dann zurueck zum interrupt 805b a9 00 lda #$00 ; setzt flag 805d 8d 09 80 sta $8009 ; fuer gedrueckte f1-taste 8060 ad 20 d0 lda $d020 ; rahmenfarbe lesen 8063 48 pha ; farbe auf stapel legen 8064 ad 21 d0 lda $d021 ; hintergrundfarbe lesen 8067 8d 20 d0 sta $d020 ; rahmen angleichen; 806a 20 74 80 jsr $8074 ; beliebige funktion (z.b. directory) 806d 68 pla ; rahmenfarbe von stapel holen 806e 8d 20 d0 sta $d020 ; rahmenfarbe in den originalzustand 8071 4c 31 ea jmp $ea31 ; zurueck zum interrupt -------------------------------directory (hier kann beliebige funktion ausgefuehrt werden.) 8074 a9 01 lda #$01 8076 20 c3 ff jsr $ffc3 ; close 1 8079 a9 24 lda #$24 807b 8d f0 03 sta $03f0 807e a9 30 lda #$30 8080 8d f1 03 sta $03f1 8083 a9 01 lda #$01 8085 a2 08 ldx #$08 8087 a0 00 ldy #$00 8089 20 ba ff jsr $ffba ; fileparameter (1,8,0) setzen 808c a9 02 lda #$02 808e a2 f0 ldx #$f0 8090 a0 03 ldy #$03 8092 20 bd ff jsr $ffbd ; filenamenparameter (2,5,13) 8095 20 c0 ff jsr $ffc0 ; open 8098 a9 40 lda #$40 809a 20 90 ff jsr $ff90 ; status setzen st=64 809d a2 01 ldx #$01 809f 20 c6 ff jsr $ffc6 ; eingabegeraet = 1 setzen 80a2 20 90 ff jsr $ff90 ; status setzen 80a5 20 cf ff jsr $ffcf ; basin (zeichen holen) 80a8 20 cf ff jsr $ffcf ; basin (zeichen holen) 80ab 20 cf ff jsr $ffcf ; basin (zeichen holen) 80ae 20 cf ff jsr $ffcf ; basin (zeichen holen) 80b1 c9 00 cmp #$00 ; zeichen = 0 ? 80b3 f0 31 beq $80e6 ; ja, dann ende 80b5 a9 01 lda #$01 80b7 85 cc sta $cc ; cursorblinken ausschalten 80b9 a2 01 ldx #$01 80bb 20 c6 ff jsr $ffc6 ; chkin eingabegeraet = 1 setzen 80be 20 cf ff jsr $ffcf 80c1 a8 tay ; akku ins y-register 80c2 20 cf ff jsr $ffcf ; basin (zeichen holen) 80c5 48 pha ; zahl auf stapel legen 80c6 98 tya ; y->akku 80c7 aa tax ; akku->x 80c8 68 pla ; zahl vom stapel holen 80c9 20 cd bd jsr $bdcd ; dezimalzahl ausgeben 80cc a9 20 lda #$20 80ce 20 d2 ff jsr $ffd2 ; leerzeichen ausgeben 80d1 20 cf ff jsr $ffcf ; basin (zeichen holen) 80d4 c9 00 cmp #$00 ; zeichen = 0 ? 80d6 d0 08 bne $80e0 ; nein, dann zur zeichenausgabe 80d8 a9 0d lda #$0d 80da 20 d2 ff jsr $ffd2 ; zeilenvorschub ausgeben 80dd b8 clv 80de 50 cb bvc $80ab 80e0 20 d2 ff jsr $ffd2 ; zeichenausgabe 80e3 b8 clv 80e4 50 eb bvc $80d1 ; naechstes zeichen holen ($80d1) 80e6 a9 01 lda #$01 80e8 20 c3 ff jsr $ffc3 ; close 1 80eb 20 cc ff jsr $ffcc ; clrch 80ee 60 rts ; zurueck zum interrupt -
Die Springen relativ und dann ist es egal wo im Speicher sich der Code befindet
Nein, die können nur max 128 Bytes vorwärts oder rückwärts von der Stelle des Befehls springen.
Wenn BNE an 2000 steht, dann kann man nur Ziele zwischen 1872 - 2128 anspringen.
Genau
War er sicherlich meinte, war: Wenn der Code bei z.B. $033c funktioniert, dann funktioniert derselbe Code auch bei z.B. $c200.
-
Damit funktioniert der Code auch wenn er an eine andere Adresse geladen wird.
Jupp. Wobei ich diese spezielle Konstruktion beq/bne noch nie bewusst gesehen habe.
Was man häufiger sieht, ist:
Ist ein Byte billiger bei gleicher Funktion, es sei denn, man braucht das Overflow-Flag.

-
Hallo hier das d64
Äh... erstens ist das das falsche (es geht hier um das Sonderheft), zweitens sind auch auf dem richtigen die oben genannten Listings nicht enthalten.
-
Hier mal das F1/Directory-Programm von Seite 125. Kleinvieh macht auch Mist.
Code
Alles anzeigen8000 0a 80 ; reset-vektor 8002 37 80 ; nmi-vektor 8004 c3 c2 38 30 ; cbm80 (bewirkt 'modul-start') 8009 ff ----------------------------- reset 800a 8e 16 d0 stx $d016 800d 20 a3 fd jsr $fda3 8010 20 50 fd jsr $fd50 ; arbeitsspeicher initialisieren 8013 20 b7 e4 jsr $e4b7 8016 20 15 fd jsr $fd15 ; hardware und i/o vektoren setzen/holen 8019 20 33 80 jsr $8033 ; initialisierung der f1-taste 801c 4c fb fc jmp $fcfb ; zurueck zum original-reset ----------------------------- nmi 801f 20 bc f6 jsr $f6bc 8022 20 e1 ff jsr $ffe1 8025 d0 09 bne $8030 ; nicht gedrueckt, dann $8030 8027 20 a3 fd jsr $fda3 ; i/o initialisieren 802a 20 18 e5 jsr $e518 ; bildschirm loeschen (i/o initialisieren) 802d 6c 02 a0 jmp ($a002) ; zum basic-warmstart 8030 4c 72 fe jmp $fe72 ; weiter im original nmi ----------------------------- initialisierung der f1-taste 8033 78 sei ; setzen des interrupt-dissable-bit 8034 a2 46 ldx #$46 8036 a0 80 ldy #$80 8038 8e 14 03 stx $0314 ; interrupt auf adresse 803b 8c 15 03 sty $0315 ; $8046 setzen 803e 58 cli ; loeschen des interrupt-dissable-bit 803f a9 80 lda #$80 ; programm vor ueberschreiben sichern 8041 85 34 sta $34 ; zeiger fuer stringspeicher auf $8000 8043 85 38 sta $38 ; zeiger speichergrenze auf $8000 8045 60 rts ----------------------------- erweiterung der interrupts 8046 a5 cb lda $cb ; aktuelle taste holen 8048 c9 04 cmp #$04 ; = f1-taste ? 804a f0 08 beq $8054 ; ja, dann $8054 804c a9 ff lda #$ff ; flag fuer 804e 8d 09 80 sta $8009 ; f1-taste loeschen 8051 4c 31 ea jmp $ea31 ; zurueck zum interrupt 8054 ad 09 80 lda $8009 ; f1-taste schon laenger gedrueckt ? 8057 c9 ff cmp #$ff 8059 d0 f6 bne $8051 ; ja, dann zurueck zum interrupt 805b a9 00 lda #$00 ; setzt flag 805d 8d 09 80 sta $8009 ; fuer gedrueckte f1-taste 8060 ad 20 d0 lda $d020 ; rahmenfarbe lesen 8063 48 pha ; farbe auf stapel legen 8064 ad 21 d0 lda $d021 ; hintergrundfarbe lesen 8067 8d 20 d0 sta $d020 ; rahmen angleichen; 806a 20 74 80 jsr $8074 ; beliebige funktion (z.b. directory) 806d 68 pla ; rahmenfarbe von stapel holen 806e 8d 20 d0 sta $d020 ; rahmenfarbe in den originalzustand 8071 4c 31 ea jmp $ea31 ; zurueck zum interrupt -------------------------------directory (hier kann beliebige funktion ausgefuehrt werden.) 8074 a9 01 lda #$01 8076 20 c3 ff jsr $ffc3 ; close 1 8079 a9 24 lda #$24 807b 8d f0 03 sta $03f0 807e a9 30 lda #$30 8080 8d f1 03 sta $03f1 8083 a9 01 lda #$01 8085 a2 08 ldx #$08 8087 a0 00 ldy #$00 8089 20 ba ff jsr $ffba ; fileparameter (1,8,0) setzen 808c a9 02 lda #$02 808e a2 f0 ldx #$f0 8090 a0 03 ldy #$03 8092 20 bd ff jsr $ffbd ; filenamenparameter (2,5,13) 8095 20 c0 ff jsr $ffc0 ; open 8098 a9 40 lda #$40 809a 20 90 ff jsr $ff90 ; status setzen st=64 809d a2 01 ldx #$01 809f 20 c6 ff jsr $ffc6 ; eingabegeraet = 1 setzen 80a2 20 90 ff jsr $ff90 ; status setzen 80a5 20 cf ff jsr $ffcf ; basin (zeichen holen) 80a8 20 cf ff jsr $ffcf ; basin (zeichen holen) 80ab 20 cf ff jsr $ffcf ; basin (zeichen holen) 80ae 20 cf ff jsr $ffcf ; basin (zeichen holen) 80b1 c9 00 cmp #$00 ; zeichen = 0 ? 80b3 f0 31 beq $80e6 ; ja, dann ende 80b5 a9 01 lda #$01 80b7 85 cc sta $cc ; cursorblinken ausschalten 80b9 a2 01 ldx #$01 80bb 20 c6 ff jsr $ffc6 ; chkin eingabegeraet = 1 setzen 80be 20 cf ff jsr $ffcf 80c1 a8 tay ; akku ins y-register 80c2 20 cf ff jsr $ffcf ; basin (zeichen holen) 80c5 48 pha ; zahl auf stapel legen 80c6 98 tya ; y->akku 80c7 aa tax ; akku->x 80c8 68 pla ; zahl vom stapel holen 80c9 20 cd bd jsr $bdcd ; dezimalzahl ausgeben 80cc a9 20 lda #$20 80ce 20 d2 ff jsr $ffd2 ; leerzeichen ausgeben 80d1 20 cf ff jsr $ffcf ; basin (zeichen holen) 80d4 c9 00 cmp #$00 ; zeichen = 0 ? 80d6 d0 08 bne $80e0 ; nein, dann zur zeichenausgabe 80d8 a9 0d lda #$0d 80da 20 d2 ff jsr $ffd2 ; zeilenvorschub ausgeben 80dd b8 clv 80de 50 cb bvc $80ab 80e0 20 d2 ff jsr $ffd2 ; zeichenausgabe 80e3 b8 clv 80e4 50 eb bvc $80d1 ; naechstes zeichen holen ($80d1) 80e6 a9 01 lda #$01 80e8 20 c3 ff jsr $ffc3 ; close 1 80eb 20 cc ff jsr $ffcc ; clrch 80ee 60 rts ; zurueck zum interrupt -
Ein Brotkasten in beige kommt nicht gut an.
Du holst dir einen Atari 400, setzt dich damit ins Wohnzimmer und sagst: "Den anderen mochtest du ja nicht so, Schatz."
-
In was fĂĽr nem TMP?
Turbo Macro Pro
-
ich gehe nur ab heute erstmal in Urlaub, und da komme ich nicht so oft zum Programmieren.
Schönen Urlaub! Und programmieren kannst du auch wieder danach!

-
Ăśberraschung: Der VIC hat noch die Besonderheit, dass er bei den Adressen $1000 bis $1fff, bzw. $9000 bis $9fff den Zeichensatz aus dem ROM eingeblendet sieht.
Nitpicking: Das ist keine Einschränkung des VIC-II, sondern des PLA. Der mappt das da rein, damit der C64 in BANK3 ($0000-$3FFF) überhaupt einen Zeichensatz für den Bildschirm hat.
Nitpicking: Das ist keine Einschränkung des PLA, sondern ein ziemlich cooles Feature!
-
früher™ habe ich immer noch ein John-Sinclair-Heft in der 64er versteckt nach Hause geschmuggelt. Also regulär gekauft natürlich, aber reingeschoben, damit meine Mutter das nicht merkt. Meine Eltern waren der Meinung, zusätzlich zum Computer verplemperte ich mit dem "Schund" viel zu viel Zeit, die beispielsweise bei der Beschäftigung mit den Hausaufgaben fehle.
GANZ von der Hand zu weisen war das tatsächlich nicht

Na ja, aber womit hat man denn mehr Zeit "verplempert": Mit einem John-Sinclair-Roman oder mit einer 64er?
Insofern hätte ich eher erwartet, dass du die 64er in dem John-Sinclair-Roman versteckst.
