Sie sind nicht angemeldet.

Bitte schaut euch auch ruhig den aktuellen Entwicklungsstand der Emu64 Version 5.xx an. Diese läuft schon recht stabil und rückt dem Ende der Portierung (Linux/windows) Woche für Woche immer näher.
https://github.com/ThKattanek/emu64

Kontrollzentrum

Geburtstage

Engelchen (42)

Neue Benutzer

rba1207(7. April 2018, 10:35)

luck42(16. März 2018, 13:03)

MiniWiesel1512(18. Januar 2018, 18:23)

Shooter(12. Januar 2018, 23:11)

Robbie1985(24. Dezember 2017, 13:04)

Zur Zeit sind keine Benutzer aktiv.

Statistik

  • Mitglieder: 841
  • Themen: 1107
  • Beiträge: 7108 (ø 1,67/Tag)
  • Wir begrüßen unser neuestes Mitglied: rba1207

Umfrage

Lieber Besucher, herzlich willkommen bei: Emu64. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

  • »Andreas Goller« ist männlich
  • »Andreas Goller« ist der Autor dieses Themas
  • Deutschland

Beiträge: 803

Wohnort: Rastatt

Beruf: Bauzeichner - halbtags

  • Nachricht senden

1

Montag, 27. September 2010, 23:13

Koalabild anzeigenlassen

Hallo an Coder

Ich möcht gerne ein Koala Bild bei der Startadresse $6000 darstellen.
Das was ich mir zusammengebastelet habe ist irgendwie total falsch
Hier mal der Code:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
!to "koalabild.prg",cbm
!cpu 6502

*=$0801; Basic-Start
!byte $0b,$08,$d8,$07,$9e; Werte für den Sysbefehl in einer Basic-Zeile
!convtab pet; CBM-Zeichen Konvertierung
!text "2064"; Startadresse (2064 = $0810)

*=$6000
!bin "F:\relaunch64\sample\bilder\Emu64-01.koa",,2

*=$0810; Ab hier liegt das Programm im Speicher

       lda #$00
       sta $d020   
       sta $d021; set border and screen colour to black

       ldx #$00
copyloop:
       lda $7f40,x  ; copy colours to screen RAM
       sta $0400,x
       lda $8040,x
       sta $0500,x
       lda $8140,x
       sta $0600,x
       lda $8240,x
       sta $0700,x
       lda $8328,x  ; copy colours to colour RAM
       sta $d800,x
       lda $8428,x
       sta $d900,x
       lda $8528,x
       sta $da00,x
       lda $8628,x
       sta $db00,x
       dex
       bne copyloop

 lda $dd00 ;VIC-Bank umschalten auf Bereich $4000-$7fff
and #252
ora #2
sta $dd00

lda #8
sta $d018 ;Position der Bitmap ($6000) angeben

ldx #$18
lda $d011 ;Bitmap anschalten
ora #$20
sta $d011
stx $d016

mainloop:
       jmp mainloop ; keep going...


Das Bild wird zwar richtig angezeigt, aber die Farben sind Falsch. Her mal das Bild.
index.php?page=Attachment&attachmentID=507

So sollte es eigentlich aussehen
index.php?page=Attachment&attachmentID=508

Was ist habe ich am Code denn falsch gemacht.

Gruss Andreas
Ich liebe den Sound vom C64´er 8o 8o

2

Mittwoch, 29. September 2010, 00:50

Wenn du die VIC-Bank von $0000-$3FFF auf $4000-$7FFF änderst, dann muss auch der Bildschirmspeicher in diesem Bereich liegen.

Du hast eine 8 in $d018 geschrieben. Das bedeutet, die oberen 4 Bits (Lage Bildschirmspeicher) sind 0. Dein Bildschirmspeicher startet daher auf $0000 + $4000 (VIC-Bank)= $4000 und nicht bei $0400.

Quellcode

1
2
3
4
5
6
7
8
9
copyloop:
   	lda $7f40,x  ; copy colours to screen RAM
   	sta $4000,x
   	lda $8040,x
   	sta $4100,x
   	lda $8140,x
   	sta $4200,x
   	lda $8240,x
   	sta $4300,x


mfg TJ

  • »Andreas Goller« ist männlich
  • »Andreas Goller« ist der Autor dieses Themas
  • Deutschland

Beiträge: 803

Wohnort: Rastatt

Beruf: Bauzeichner - halbtags

  • Nachricht senden

3

Mittwoch, 29. September 2010, 13:15

Hi Joker

Vielen Dank für die glorreichen Tip. Jetzt funzt es einwand frei.

Danke :thumbsup: :thumbsup: :thumbsup: :thumbsup: :thumbsup: :thumbsup: :thumbsup: :thumbsup:

Gruss Andreas
Ich liebe den Sound vom C64´er 8o 8o

4

Sonntag, 28. August 2011, 16:52

Hi,

Hab mir das Listing auch mal angeguckt und im Relaunch64 druchgezogen funktioniert prima. Hab mir dann gleich ein Bild erstellt und dem Listing ne Sidtune Routine (wird im "Vic-Irq" abgespielt) hinzugefügt damit man auch was zu hören bekommt.
Hätte jetzt aber noch eine Frage dazu:
Kann mir jemand ein Codestück/Beispiel hier aufzeigen wie man jetzt bei Programmbeendigung (mit Spacetaste von mir eingefügt) sozusagen das Bild wieder auf den Basicprompt zurückbringt?. Wenn ich das Programm verlasse bleiben noch Reste vom Bild hängen. Z.b wieder auf den originalen VIC-Bereich zurückschalten oder so ähnlich?.

Vielen Dank

6581freak

  • »Andreas Goller« ist männlich
  • »Andreas Goller« ist der Autor dieses Themas
  • Deutschland

Beiträge: 803

Wohnort: Rastatt

Beruf: Bauzeichner - halbtags

  • Nachricht senden

5

Sonntag, 28. August 2011, 17:54

Hi

Von Assembler habe ich leider nicht so viel Ahnung. Habe mir wie gesagt alles zusammen geschuster von anderen Prorgammen.
Diese Seite hat auch viele Tipps in solchen Dingen http://codebase64.org/doku.php?id=base:start
oder diese hier http://ocaoimh.ie/wp-content/uploads/200…000000000000000
auch jene hier http://www.cbmhardware.de/cbmwiki/index.…in_kleiner_Kurs

ich hoffe das ich dir ein wenig helfen konnte

Gruss
Andreas
Ich liebe den Sound vom C64´er 8o 8o

6

Dienstag, 30. August 2011, 22:45

Hi,
Danke für die Tipps, einige Links von dir kannte ich schon, hatte auch noch nicht viel Zeit , bin aber in der Sache immer noch nicht schlau geworden. Bin ja auch noch eher der Anfänger in C64-Assembler Programmierung.
Naja.. ich such mal weiter , vielleicht kommt hier noch ein guter Tip bei Zeit rein oder ich finde selber die Lösung ;)
Kurz gefasst nochmal:
- Ich stelle ein Koala-Bild dar
- mit SPACE-Taste beendet das Progamm
- Es sollte wieder der Basicprompt mit Cursor und den üblichen 2 Blau/hellblau Rahmen/Screen angezeigt werden

Leider sieht man beim verlassen des Programms noch Teile des Bildes, ich müsste also die Vic-Bank wahrscheinlich irgendwie auf Bank 0 (Standard) schalten und was so dazugehört. Nur weis ich noch nicht genau wie ?(

  • »Andreas Goller« ist männlich
  • »Andreas Goller« ist der Autor dieses Themas
  • Deutschland

Beiträge: 803

Wohnort: Rastatt

Beruf: Bauzeichner - halbtags

  • Nachricht senden

7

Mittwoch, 31. August 2011, 20:33

Hi 6581freak

Hier ein kleines beispiel wie man den Bildschirm löscht

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
; Diese Programm löscht den Bildschirm und gibt einen Text auf einer definierten Position aus. 
; Programmstart mit SYS 49152 

*=$c000                         ; Startadresse des Programmes  
BSOUT = $ffd2 

start                lda #147               
               jsr BSOUT           ; Bildschirm löschen  
               
               ldx #03                ; Zeile 3              
               ldy #10                ; Spalte 10  
               clc                          ; clc = Cursorposition setzten; sec = Cursorposition lesen 
               jsr $fff0         ; Cursor setzen  
               
               ldx #$00 
schleife     lda TEXT, X 
               beq ende 
               jsr BSOUT           ; Zeichen solange am Bildschirm ausgeben bis $00 
               inx               
               jmp schleife 
 
ende                    rts                         ; Rücksprung ins Basic 

TEXT         .text "C64-WIKI"              
    .byte $00



Die wichtigste Adresse ist für dich wohl dann BSOUT
Kannst du auch bei C64-Wicki nachlesen

Und hier einen IRQ-Kurs von Magic Disk. Man muss zwar viel lesen, aber gibt dir einen Einblick in den Vic. Du kannst es auch direck von der Magic Disk lesen, da sind auch die Beispiele mit dabei.
Jetzt weis ich aber nicht welche Disk es sind. Da müsst ich aber mal in meine Disk-Magazine nachschauen um welche Folgen es sich handelt.
Und hier die Datei index.php?page=Attachment&attachmentID=604
oder die Internetadresse http://magicdisk.untergrund.net/md/KURS-IRQ-KURS.html

Gruss
Andreas
Ich liebe den Sound vom C64´er 8o 8o

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »Andreas Goller« (31. August 2011, 20:55)


8

Mittwoch, 31. August 2011, 20:45

Hi Andreas,
Danke für den Tipp, bringt aber leider auch nix. Teile des Bildes hängen beim Verlassen des Programms fest.
Muss mich einfach schlau machen wie man richtig den Vic wieder zurückbiegt, also Screen-Ram, Color Ram und Bank 0 (Standart).
Ich probier ma rum, abstürzen tut eh nur Thorsten sein Emu :P
Übringes , der arbeitet prima mit dem Relaunch64/Acme zusammen 8)

  • »Andreas Goller« ist männlich
  • »Andreas Goller« ist der Autor dieses Themas
  • Deutschland

Beiträge: 803

Wohnort: Rastatt

Beruf: Bauzeichner - halbtags

  • Nachricht senden

9

Mittwoch, 31. August 2011, 21:32

Hi 6581freak

Ok versuche es mal so:

Quellcode

1
2
3
4
5
     	MAIN LDA $DC01	;Lese Spacebar aus
    	    	CMP #$EF 	;wenn nicht gedrückt dann
    	    	BNE MAIN 	;
                 	
JMP $FCE2	;RESET C64



Gruss Andreas :)
Ich liebe den Sound vom C64´er 8o 8o

Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von »Andreas Goller« (31. August 2011, 22:00)


10

Mittwoch, 31. August 2011, 22:12

Hi Andreas,

An ein Reset hatte ich schon gedacht wär logo der kürzeste/radikale Weg, aber eigentlich möchte ich ja gar kein Reset , sondern nur Ende Programm und am normalen Screen mit Ready und Cursor ankommen.
Und glatt hab ich was zusammengefrikelt um das ich sicher nicht stolz bin. ;(

Also folgendes:
Laut deinem Listing wurde ja die Bank 1 ausgewählt ($4000-$7FFF).
Also hab ich mit folgendem Code wieder die Standardbank 0 gesetzt.

Quellcode

1
2
3
4
5
    	lda $dd00   	;VIC-Bank umschalten auf Bereich $0000-$3fff
		and #252
		ora #3       	
		sta $dd00
 


Dieser Teil bringt als Resultat aber falsche Farben und man durchschaut das Ready und das Cursorgeblinke, die chars sin aber mit komischen Farbkästchen ersetzt usw...

Nun hab ich im Inet ne Seite entdeckt die mir als "Screen functions" den Sprung zu folgender Routine gibt.

Quellcode

1
jsr $e518


Als Beschreibung steht: "Initialize VIC; restore default input/output to keyboard/screen; clear screen."

wenn ich den sprung noch zu obigem setzen auf Vic Standardbank hinzufüge, dann klappt es. Ich lande beim Beenden des Progs mit den richtigen Farben und mit Ready und Cursor am Screen.

Das komische ist der eine Teil kann ohne den anderen nicht sein, wenn ich nur das jsr $e518 nehme kriegt ich zwar die richtigen Farben Screen/Rahmen aber es erscheint kein READY mit Cursor 8|

Es gibt aber sicher eine elegantere und klarere Lösung :S

  • »Andreas Goller« ist männlich
  • »Andreas Goller« ist der Autor dieses Themas
  • Deutschland

Beiträge: 803

Wohnort: Rastatt

Beruf: Bauzeichner - halbtags

  • Nachricht senden

11

Donnerstag, 1. September 2011, 01:03

Hi 6581freak

Hier habe ich mal einen Code zusammengebastelt für dich.
Das schaltet jetzt ein Bild an und wenn du auf Space drückst kommt der Blaue Bildschirm wieder

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
;////////////////////////////////////////////////
;//                                        	//
;// Koalabild einschalten                  	//
;// 								//
;////////////////////////////////////////////////

!to "projekte\codes\bild.prg",cbm	
!cpu 6502

*=$0801				; Basic-Start
!byte $0b,$08,$d8,$07,$9e	; Werte für den Sysbefehl in einer Basic-Zeile
!convtab pet			; CBM-Zeichen Konvertierung
!text "49152"			; Startadresse (49152 = $c000)


;--------- Koalabild
* = $2000
!bin "f:\relaunch64\sample\bild\p+a bitmap.prg",,2
* = $4000
!bin "f:\relaunch64\sample\bild\p+a videoram.prg",,2
* = $4400
!bin "f:\relaunch64\sample\bild\p+a colorram.prg",920,2
		

;--------- Variablen 

		Rahmenfarbe	=$d020
		Bildschirmf =$d021
		Farbram	=$d800
		vidmem 	=$4000	; Videoram bei $4000 
		colmem 	=$4400	; Colorram bei $4400

;--------- Code

*=$c000					; Startadresse
			
		jsr $e544			; Bildschirmlöschen	
			
		lda #$00
		sta Rahmenfarbe
		sta Bildschirmf

;--------- Koalabild anzeigen
  		
  		ldx #$00
setpic 	lda vidmem,x
   		sta $0400,x
   		lda vidmem+$100,x
   		sta $0500,x
   		lda vidmem+$200,x
   		sta $0600,x
   		lda vidmem+$2e8,x
   		sta $06e8,x
   		lda colmem,x
   		sta $d800,x
   		lda colmem+$100,x
   		sta $d900,x
   		lda colmem+$200,x
   		sta $da00,x
   		lda colmem+$2e8,x
   		sta $dae8,x

   		inx
   		bne setpic
;
  		lda #$3b
  		ldx #$18	
  		ldy #$03
                sta $d011
  		stx $d018
  		stx $d016
  		sty $dd00
		

maim    	lda $DC01    	;Lese Spacebar aus
     	  	cmp #$EF      	;wenn nicht gedrückt dann
                bne maim


Ich habe den Code auf den Relaunch64 geschrieben.
Wie gesagt, habe im Netz ein wenig herum gesucht, und diesen Codeschnipsel gefunden um ein Bild schnell ein zu schalten. Das hätte ich mir auch sparen können, Thorsten hat mir damals den selben Code geschickt für mein Problem. Naja was solls
Damit du das gleich Testen kannst lade ich die alle Dateien hoch
index.php?page=Attachment&attachmentID=606

So jetzt musst du nur noch den IRQ verbiegen um die Musikroutine zum laufen zu bringen

Ach ja, um die Bilder so auf Teilen gibt es ein Prorgamm im Netz, weis nur nicht mehr wie das heist.

Gruss Andreas :)

P.S.
Ich gebe es auf im Code-Editor alles auf den rechten Platz zu rücken. Beim jeder Verbesserung setzt er es am Ende doch wieder auf eine andere Stelle

Edit von Thomas: Ich habe mal das ganze eingerückt (hoffentlich richtig). Bei Verrückungsproblemen hilft es in den Quellcode-Modus des Editors zu gehen. TABS werden normalerweise vom Editor verschluckt und das passiert auch mit Leerzeichen, außer mit dem CODE /CODE
Ich liebe den Sound vom C64´er 8o 8o

Dieser Beitrag wurde bereits 7 mal editiert, zuletzt von »Andreas Goller« (1. September 2011, 14:16)


12

Donnerstag, 1. September 2011, 21:32

Hi Andreas,

Wollte das eben testen... bin ich blöd oder was ?(
Es kommt immer die Meldung "error:cannot open top level file" wenn ich es starten will. Pfade sind alle angepasst wie sie auch in meinen Listings vorhanden sind....oder hier stimmt etwas nicht oder ich bin heut total daneben :huh:

Inzwischen lad ich dir ma mein Prog mit Sid hoch damit du siehst wie es beim Beenden reagiert.

index.php?page=Attachment&attachmentID=607

Grüße

6581freak

Thomas Daden

* Mugg / Giri *

  • »Thomas Daden« ist männlich
  • Deutschland

Beiträge: 1 700

Wohnort: Langen (Hessen)

Beruf: Techniker

  • Nachricht senden

13

Donnerstag, 1. September 2011, 21:54

Ich verfolge den Thread interesserhalbe und habe von Andreas die zip gedownloadet. Da sind ja drei PRG Dateien bei ... blöde Frage, sollten diese Startbar sein ? Anderes gesagt, bei mir läuft nichts ...

  • »Andreas Goller« ist männlich
  • »Andreas Goller« ist der Autor dieses Themas
  • Deutschland

Beiträge: 803

Wohnort: Rastatt

Beruf: Bauzeichner - halbtags

  • Nachricht senden

14

Donnerstag, 1. September 2011, 22:04

hi 6581freak

So ich hab mir mal dein prog angesehen und muss sagen sehr gut. Die Musik gefällt mir, vom wem ist denn die?

Ich weis gar nicht was du hast, ist doch alles gut. Sobald man auf die Space Taste drückt, wird alles abgeschaltet und auf den blauen Bildschirm umgeschaltet.

Hier die Bilder davon

Dein Bild
index.php?page=Attachment&attachmentID=608

und danach wenn man Space drückt
index.php?page=Attachment&attachmentID=609

Du siehst alles in Ordnung.

So und jetzt noch dein Problem mit mein Programm.
Zu aller erst mit welchen Editor arbeitest denn du?

Wenn du mit dem Relaunch64 arbeitest, hat Thorsten ein kleines Video gemacht wie man ihm installiert, und den Emu64 mit ein bindet
Guckst du hier:
[Emu64 (Allgemein)] Relaunch64 mit ACME und Emu64 Tutorial

Den Fehler hatte ich am Anfang auch. Das lag daran das ich den Relaunch64 falsch installiert habe. Aber Dank Thorsten wurde er ja mit dem Video behoben.

So, also ich finde dein Prog sehr gut, da gibt es nichts aus zu setzten, oder habe ich was falsch verstanden

Gruss
Andreas
Ich liebe den Sound vom C64´er 8o 8o

  • »Andreas Goller« ist männlich
  • »Andreas Goller« ist der Autor dieses Themas
  • Deutschland

Beiträge: 803

Wohnort: Rastatt

Beruf: Bauzeichner - halbtags

  • Nachricht senden

15

Donnerstag, 1. September 2011, 22:12

Hi Thomas

Nein das sind keine Start Datein.

Die drei Dateien sind zusammen ein Koalabild. Sie wurden mit ein Programm getrennt und zwar in ein reines Bitmap, dann in den Videoram und zur guter letzt in den Colorram.

p+a bitmap.prg = Bitmap
p+a colorram.prg = Colorram
p+a videoram.prg = Videoram

Alle drei zusammen ergeben dann ein Koalabild

Diese drei Dateien werden dann im Objektcode an die richtige Adresse geladen.

Es gibt auch ein Quellcode wo man das komplette Koala - Bild einlesen kann. dieser Code ist nur geringfügig länger. Was nun schneller ist, weis ich nicht.
Ich hab damals beide getestet, bin aber irgend wie bei diesen Quellcode hängen geblieben.

Gruss
Andreas :D
Ich liebe den Sound vom C64´er 8o 8o

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Andreas Goller« (1. September 2011, 22:17)


16

Donnerstag, 1. September 2011, 22:21

Hi Andreas,
Danke nochmal für deine stetige Geduld und Hilfe ;).. sry sollte ich im letzten Post irgendwie nervös oder so rübergekommen sein, war nicht meine Absicht. ;)
Also mit dem Resultat von meinem Prog bin ich sehr zufrieden, nur wie schon mal erwähnt bin ich mit der Ausführung im Quelltext nicht so zufrieden d.h in meinen Augen ist es irgendwie ein Gefrickle und dachte daß es hier ne elegante/logische/verständliche variante gibt.
Aber jo, es arbeitet richtig das ist mal die Hauptsache :D

Ehm das Tune im Prog hab ich mal so irgendwo runtergeladen als ich Tunes gesucht hab die die Adressen LOAD $1000,INIT $1000 und PLAY $1003 haben müssen. Es ist ja fürs Programm in .DAT konvertiert soviel ich weis wird da der header abgeschnitten müsste gucken ob ich noch den Autor etc. rausbekomm.



Jup, ich benutz schon länger den Relaunch64 und den Acme und hatte das Problem mit meinen Listings noch nie bis jetzt.
Wie meinst falsch installiert? was war denn falsch bei der Installation?

Gruß
6581freak

PS: Zugegeben... das PIC sieht ohne Scanlines nen Tick schlimmer aus ;)

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »6581freak« (1. September 2011, 22:37)


  • »Andreas Goller« ist männlich
  • »Andreas Goller« ist der Autor dieses Themas
  • Deutschland

Beiträge: 803

Wohnort: Rastatt

Beruf: Bauzeichner - halbtags

  • Nachricht senden

17

Donnerstag, 1. September 2011, 22:56

Hi 6581freak

Ich hab damals mein Relaunch64 in der tiefe von viele Verzeichnisse gehabt. So konnte er irgendwie nie meine Programme compalieren. Das hat mich fast zur weis Glut gebracht.
Dann habe ich Thorsten mal gefragt, was ich denn da falsch mache. Er hat mir dann eine kurze Video gemacht, wie man den Relaunch64 richtig installiert. Und seit dieser Zeit funz bei mir auch der Relaunch64. :D

Also und nun zu dein Prog, da ich deinen Quellcode bis jetzt noch nicht gesehen habe kann ich nichts sagen, ob er gut oder schlecht ist.
Aber du bis fast genau so wie, immer auf der Suche nach der kurzen und guten Lösung.
Aber manchmal sind die lange Weg die besten. Das musste ich immer wieder Festellen beim C64´er

Gruss
Andreas :D
Ich liebe den Sound vom C64´er 8o 8o

18

Donnerstag, 1. September 2011, 23:30

So hier mal mein Quelltext:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
;--------------------------------
;Bild mit Sidtune
;es wird im VIC-RasterIRQ
;ein Sidtune abgespielt.
;Sid muss als .dat z.b mit Sidplay2
;gespeichert werden und muss in diesem Fall
;die Adressen
;load=$1000,init=$1000,play=$1003
;vorweisen sonst spielt das Tune nicht
;CIA-IRQ-Timer wird deaktiviert
;================================

!to "sidpicintro.prg",cbm
!cpu 6502


*=$1000-2
!bin "c:/c64/relaunch64/artic.dat"

*=$6000
!bin "C:/c64/relaunch64/alpha64.koa",,2


*=$0801				; Basic-Start
!byte $0b,$08,$d8,$07,$9e	; Werte für den Sysbefehl in einer Basic-Zeile
!convtab pet			; CBM-Zeichen Konvertierung
!text "2064"			; Startadresse (2064 = $0810)

         	



* = $0810			

; Interrupt und Sid init

init        	
        	sei		; Interrupts sperren
        	lda #$00
        	sta $d012 ; IRQ bei Rasterzeile 0 auslösen (Rasterzeilenregister)
        	
        	lda $d011  ; BIT 8 Löschen, wird nicht gebraucht  zeile =<256
        	and #$7f   ; BIT 8 löschen
        	sta $d011  ; set
        	
        	lda #$81   ;IRQ maskieren - RasterzeilenIRQ Bit 0+7
        	sta $d01a  ;und setzen
                    	
         	
	   	lda #<irq 
	   	sta $0314	; Vektor für eigene Interrupt Routine ändern
	   	lda #>irq
	   	sta $0315
	
	   	lda $dc0e  ;CIA-Timer - CIA-IRQ ausschalten
	   	and #$fe
	   	sta $dc0e
	   	
	   	lda #$00   ; 0 für song 1
	   	jsr $1000  ; sid-routine initalisieren
	   	cli		; Interrupts zulassen
	
; Grafikteil, Bild anzeigen
	
	 lda #$00
   	sta $d020   
   	sta $d021; set border and screen colour to black

   	ldx #$00
  	
copyloop:
   	lda $7f40,x  ; copy colours to screen RAM
   	sta $4000,x
   	lda $8040,x
   	sta $4100,x
   	lda $8140,x
   	sta $4200,x
   	lda $8240,x
   	sta $4300,x
   	
   	lda $8328,x  ; copy colours to colour RAM
   	sta $d800,x
   	lda $8428,x
   	sta $d900,x
   	lda $8528,x
   	sta $da00,x
   	lda $8628,x
   	sta $db00,x
   	dex
   	bne copyloop

 lda $dd00 ;VIC-Bank umschalten auf Bereich $4000-$7fff
and #252
ora #2
sta $dd00

lda #8
sta $d018 ;Position der Bitmap ($6000) angeben

ldx #$18
lda $d011 ;Bitmap anschalten
ora #$20
sta $d011
stx $d016

	   	

space
         	lda $dc01   ;auf Spacetaste warten
         	cmp #$ef
         	bne space

; Alte IRQ-Routine wiederherstellen und Programmende

 		SEI       	;IRQ SPERREN
       	
       	lda #$00

       	sta $d01a	  ; All Bits im Maskenregister löschen
                  	
       	lda $dc0e 	; CIA-Timer wieder starten ..CIA-IRQ
       	ora #$01
       	sta $dc0e
       	
       	LDA #<$ea31   ;VEKTOR MIT STARTADRESSE
	 	LDX #>$ea31   ;DER ALTEN IRQ-ROUTINE
		STA $0314 	;BELEGEN
		STX $0315
		
		; Basicprompt/Screen wiederherstellen
		
		lda $dd00 ;VIC-Bank umschalten auf Bereich $0000 $3fff
		and #252
		ora #3
		sta $dd00
       	jsr $e518
       			
		CLI       	; IRQ wieder zulassen
		lda #$00
		sta $d418 	; Volume auf allen Kanälen auf Null
		rts       	;UND Programmende
		


        	
irq      	lda $d019 ;IRQ-RequestRegister auslesen
         	sta $d019 ;und zurückschreiben um es zu löschen, sonst Dauer-Irq und absturz!!!!
         	jsr $1003 ;Sid abspielen
         	pla
         	tay
         	pla
         	tax
         	pla
         	rti


Das Sid-Tune spielt im Vic-Rasterirq ab... auf manchen Tutorials meinen die Leute das wär am besten. Soviel ich mitgekriegt hab arbeitet der CIA/System IRQ 1/60 und der Vic-Rasterirq 1/50 irre ich mich da?

Gruß

6581freak

19

Donnerstag, 1. September 2011, 23:45


Inzwischen lad ich dir ma mein Prog mit Sid hoch damit du siehst wie es beim Beenden reagiert.

index.php?page=Attachment&attachmentID=607



\m/ :thumbsup:

Thomas Daden

* Mugg / Giri *

  • »Thomas Daden« ist männlich
  • Deutschland

Beiträge: 1 700

Wohnort: Langen (Hessen)

Beruf: Techniker

  • Nachricht senden

20

Freitag, 2. September 2011, 06:52

@Andreas:

OK, danke für die Info ...

@6581freak:

Zitat

Das Sid-Tune spielt im Vic-Rasterirq ab... auf manchen Tutorials meinen die Leute das wär am besten. Soviel ich mitgekriegt hab arbeitet der CIA/System IRQ 1/60 und der Vic-Rasterirq 1/50 irre ich mich da?
Also etwas gefährliches Halbwissen :-). Du redest von der Taktung ? Wenn ja, beim VIC ist es Modell abhängig. NTSC = 60 Hz und PAL = 50Hz. Aus diesem Grund gibt es bei vielen SID Tunes auch den Hinweis für welche Maschine das ganze gemacht wurde ... Anderes gesagt, unsre PAL Rechner sind ein taken langsamer ...

Was für es für eine Taktung beim CIA gibt kann ich dir leider nicht sagen.


Grüße,
Thomas