00000000: 4F 52 47 20 24 43 30 30 30 0D 0D 3B 20 20 20 20 |ORG $C000..; |
00000010: 20 20 20 20 20 56 4F 4E 20 4D 41 4E 46 52 45 44 | VON MANFRED|
00000020: 20 53 4F 4E 4E 45 4E 42 45 52 47 0D 3B 20 20 20 | SONNENBERG.; |
00000030: 20 20 20 20 20 20 55 4E 44 20 46 52 41 4E 4B 20 | UND FRANK |
00000040: 42 4F 45 52 4E 43 4B 45 0D 0D 3B 20 50 4C 41 59 |BOERNCKE..; PLAY|
00000050: 52 4F 55 54 49 4E 45 20 46 55 45 52 20 34 2D 42 |ROUTINE FUER 4-B|
00000060: 49 54 20 53 41 4D 50 4C 45 53 2C 20 44 49 45 0D |IT SAMPLES, DIE.|
00000070: 3B 20 4D 49 54 20 53 41 4E 44 49 20 41 55 46 47 |; MIT SANDI AUFG|
00000080: 45 4E 4F 4D 4D 45 4E 20 55 4E 44 20 56 4F 52 42 |ENOMMEN UND VORB|
00000090: 45 52 45 49 54 45 54 0D 3B 20 57 55 52 44 45 4E |EREITET.; WURDEN|
000000A0: 2E 20 44 49 45 53 45 20 4B 4F 45 4E 4E 45 4E 20 |. DIESE KOENNEN |
000000B0: 56 4F 4E 20 41 53 53 45 4D 42 4C 45 52 0D 3B 20 |VON ASSEMBLER.; |
000000C0: 41 55 53 20 4D 49 54 20 46 4F 4C 47 45 4E 44 45 |AUS MIT FOLGENDE|
000000D0: 52 20 52 4F 55 54 49 4E 45 20 47 45 53 50 49 45 |R ROUTINE GESPIE|
000000E0: 4C 54 20 57 45 52 44 45 4E 2E 0D 0D 0D 3B 20 20 |LT WERDEN....; |
000000F0: 20 4C 44 41 20 23 3C 41 4E 46 41 4E 47 0D 3B 20 | LDA #<ANFANG.; |
00000100: 20 20 53 54 41 20 4D 45 4C 4C 0D 3B 20 20 20 4C | STA MELL.; L|
00000110: 44 41 20 23 3E 41 4E 46 41 4E 47 0D 3B 20 20 20 |DA #>ANFANG.; |
00000120: 53 54 41 20 4D 45 4C 48 0D 3B 20 20 20 4C 44 41 |STA MELH.; LDA|
00000130: 20 23 3C 45 4E 44 45 0D 3B 20 20 20 53 54 41 20 | #<ENDE.; STA |
00000140: 4D 45 48 4C 0D 3B 20 20 20 4C 44 41 20 23 3E 45 |MEHL.; LDA #>E|
00000150: 4E 44 45 0D 3B 20 20 20 53 54 41 20 4D 45 48 48 |NDE.; STA MEHH|
00000160: 0D 3B 20 20 20 4C 44 41 20 23 52 41 54 45 0D 3B |.; LDA #RATE.;|
00000170: 20 20 20 4A 53 52 20 50 4C 41 59 0D 0D 0D 3B 20 | JSR PLAY...; |
00000180: 41 4E 46 41 4E 47 20 55 4E 44 20 45 4E 44 45 20 |ANFANG UND ENDE |
00000190: 53 49 4E 44 20 31 36 2D 42 49 54 20 57 45 52 54 |SIND 16-BIT WERT|
000001A0: 45 2C 20 44 49 45 0D 3B 20 44 45 4E 20 42 45 52 |E, DIE.; DEN BER|
000001B0: 45 49 43 48 20 46 45 53 54 4C 45 47 45 4E 2E 20 |EICH FESTLEGEN. |
000001C0: 52 41 54 45 20 49 53 54 20 45 49 4E 0D 3B 20 57 |RATE IST EIN.; W|
000001D0: 45 52 54 2C 20 44 45 52 20 44 45 4D 20 5A 54 2D |ERT, DER DEM ZT-|
000001E0: 57 45 52 54 20 41 55 53 20 44 45 52 20 53 41 4E |WERT AUS DER SAN|
000001F0: 44 49 0D 3B 20 54 41 42 45 4C 4C 45 20 45 4E 54 |DI.; TABELLE ENT|
00000200: 53 50 52 49 43 48 54 2E 0D 0D 3B 20 41 44 52 45 |SPRICHT...; ADRE|
00000210: 53 53 45 4E 20 46 55 45 52 20 2E 2E 2E 0D 0D 3A |SSEN FUER .....:|
00000220: 4D 45 4C 4C 20 3D 24 46 42 20 3B 20 2E 2E 2E 53 |MELL =$FB ; ...S|
00000230: 54 41 52 54 57 45 52 54 0D 3A 4D 45 4C 48 20 3D |TARTWERT.:MELH =|
00000240: 24 46 43 0D 3A 4D 45 48 4C 20 3D 24 46 44 20 3B |$FC.:MEHL =$FD ;|
00000250: 20 2E 2E 2E 45 4E 44 57 45 52 54 0D 3A 4D 45 48 | ...ENDWERT.:MEH|
00000260: 48 20 3D 24 46 45 0D 0D 3B 20 52 45 47 49 53 54 |H =$FE..; REGIST|
00000270: 45 52 0D 0D 3A 56 4F 4C 20 20 3D 24 44 34 31 38 |ER..:VOL =$D418|
00000280: 0D 3A 54 42 4C 31 20 3D 24 44 43 30 36 0D 3A 54 |.:TBL1 =$DC06.:T|
00000290: 42 48 31 20 3D 24 44 43 30 37 0D 3A 49 52 43 52 |BH1 =$DC07.:IRCR|
000002A0: 20 3D 24 44 43 30 44 0D 3A 43 52 41 31 20 3D 24 | =$DC0D.:CRA1 =$|
000002B0: 44 43 30 45 0D 3A 43 52 42 31 20 3D 24 44 43 30 |DC0E.:CRB1 =$DC0|
000002C0: 46 0D 0D 3B 20 4D 41 4B 52 4F 53 0D 0D 3A 50 55 |F..; MAKROS..:PU|
000002D0: 54 20 4D 20 32 0D 20 20 20 4C 44 41 20 23 40 31 |T M 2. LDA #@1|
000002E0: 0D 20 20 20 53 54 41 20 40 30 0D 2F 0D 3A 4D 56 |. STA @0./.:MV|
000002F0: 45 20 4D 20 32 0D 20 20 20 4C 44 41 20 40 30 0D |E M 2. LDA @0.|
00000300: 20 20 20 53 54 41 20 40 31 0D 2F 0D 0D 3B 20 5A | STA @1./..; Z|
00000310: 55 4D 20 5A 45 49 54 57 45 52 54 20 4F 46 46 53 |UM ZEITWERT OFFS|
00000320: 45 54 20 41 44 44 49 45 52 45 4E 2C 20 54 49 4D |ET ADDIEREN, TIM|
00000330: 45 52 20 53 45 54 5A 45 4E 0D 0D 3A 50 4C 41 59 |ER SETZEN..:PLAY|
00000340: 20 43 4C 43 0D 20 20 20 20 20 20 41 44 43 20 23 | CLC. ADC #|
00000350: 24 36 42 0D 20 20 20 20 20 20 53 54 41 20 54 42 |$6B. STA TB|
00000360: 4C 31 0D 20 20 20 20 20 20 4C 44 41 20 23 30 0D |L1. LDA #0.|
00000370: 20 20 20 20 20 20 41 44 43 20 23 30 0D 20 20 20 | ADC #0. |
00000380: 20 20 20 53 54 41 20 54 42 48 31 0D 0D 3B 20 49 | STA TBH1..; I|
00000390: 52 51 2D 56 45 4B 54 4F 52 20 53 45 54 5A 45 4E |RQ-VEKTOR SETZEN|
000003A0: 20 55 4E 44 20 49 52 51 20 53 50 45 52 52 45 4E | UND IRQ SPERREN|
000003B0: 0D 0D 20 20 20 20 20 20 50 55 54 20 24 46 46 46 |.. PUT $FFF|
000003C0: 45 2C 3C 4E 49 52 51 20 3B 20 49 52 51 2D 56 45 |E,<NIRQ ; IRQ-VE|
000003D0: 4B 54 4F 52 20 55 4E 54 45 52 20 44 45 4D 20 4B |KTOR UNTER DEM K|
000003E0: 45 52 4E 41 4C 0D 20 20 20 20 20 20 50 55 54 20 |ERNAL. PUT |
000003F0: 24 46 46 46 46 2C 3E 4E 49 52 51 20 3B 20 41 55 |$FFFF,>NIRQ ; AU|
00000400: 46 20 45 49 47 45 4E 45 20 52 4F 55 54 49 4E 45 |F EIGENE ROUTINE|
00000410: 20 53 45 54 5A 45 4E 0D 0D 20 20 20 20 20 20 53 | SETZEN.. S|
00000420: 45 49 0D 0D 3B 20 52 45 47 49 53 54 45 52 20 53 |EI..; REGISTER S|
00000430: 45 54 5A 45 4E 0D 0D 20 20 20 20 20 20 4C 44 59 |ETZEN.. LDY|
00000440: 20 4D 45 4C 4C 0D 20 20 20 20 20 20 4C 44 41 20 | MELL. LDA |
00000450: 23 30 0D 20 20 20 20 20 20 53 54 41 20 4D 45 4C |#0. STA MEL|
00000460: 4C 0D 20 20 20 20 20 20 53 54 41 20 43 52 41 31 |L. STA CRA1|
00000470: 0D 20 20 20 20 20 20 50 55 54 20 49 52 43 52 2C |. PUT IRCR,|
00000480: 31 33 31 0D 20 20 20 20 20 20 4C 44 41 20 23 31 |131. LDA #1|
00000490: 0D 20 20 20 20 20 20 53 54 41 20 43 52 42 31 0D |. STA CRB1.|
000004A0: 0D 20 20 20 20 20 20 4C 44 58 20 4D 45 48 48 0D |. LDX MEHH.|
000004B0: 0D 3B 20 41 55 46 20 52 41 4D 20 53 43 48 41 4C |.; AUF RAM SCHAL|
000004C0: 54 45 4E 2C 20 4E 45 55 45 20 49 52 51 2D 52 4F |TEN, NEUE IRQ-RO|
000004D0: 55 54 49 4E 45 20 53 54 41 52 54 45 4E 0D 0D 20 |UTINE STARTEN.. |
000004E0: 20 20 20 20 20 4C 44 41 20 31 0D 20 20 20 20 20 | LDA 1. |
000004F0: 20 41 4E 44 20 23 24 46 44 0D 20 20 20 20 20 20 | AND #$FD. |
00000500: 53 54 41 20 31 0D 20 20 20 20 20 20 43 4C 49 0D |STA 1. CLI.|
00000510: 0D 3B 20 53 50 49 45 4C 52 4F 55 54 49 4E 45 4E |.; SPIELROUTINEN|
00000520: 0D 0D 3A 50 31 20 20 20 43 4C 43 0D 3A 50 33 20 |..:P1 CLC.:P3 |
00000530: 20 20 42 43 43 20 50 33 20 3B 20 41 55 46 20 49 | BCC P3 ; AUF I|
00000540: 52 51 20 57 41 52 54 45 4E 0D 20 20 20 20 20 20 |RQ WARTEN. |
00000550: 4C 44 41 20 28 4D 45 4C 4C 29 2C 59 0D 20 20 20 |LDA (MELL),Y. |
00000560: 20 20 20 41 4E 44 20 23 24 46 0D 20 20 20 20 20 | AND #$F. |
00000570: 20 53 54 41 20 56 4F 4C 0D 20 20 20 20 20 20 43 | STA VOL. C|
00000580: 4C 43 0D 3A 50 34 20 20 20 42 43 43 20 50 34 20 |LC.:P4 BCC P4 |
00000590: 3B 20 41 55 46 20 49 52 51 20 57 41 52 54 45 4E |; AUF IRQ WARTEN|
000005A0: 0D 20 20 20 20 20 20 4C 44 41 20 28 4D 45 4C 4C |. LDA (MELL|
000005B0: 29 2C 59 0D 20 20 20 20 20 20 4C 53 52 0D 20 20 |),Y. LSR. |
000005C0: 20 20 20 20 4C 53 52 0D 20 20 20 20 20 20 4C 53 | LSR. LS|
000005D0: 52 0D 20 20 20 20 20 20 4C 53 52 0D 20 20 20 20 |R. LSR. |
000005E0: 20 20 53 54 41 20 56 4F 4C 0D 20 20 20 20 20 20 | STA VOL. |
000005F0: 49 4E 59 0D 20 20 20 20 20 20 42 4E 45 20 50 32 |INY. BNE P2|
00000600: 0D 20 20 20 20 20 20 49 4E 43 20 4D 45 4C 48 0D |. INC MELH.|
00000610: 3A 50 32 20 20 20 43 50 59 20 4D 45 48 4C 0D 20 |:P2 CPY MEHL. |
00000620: 20 20 20 20 20 42 4E 45 20 50 31 0D 20 20 20 20 | BNE P1. |
00000630: 20 20 43 50 58 20 4D 45 4C 48 0D 20 20 20 20 20 | CPX MELH. |
00000640: 20 42 4E 45 20 50 31 0D 0D 3B 20 52 45 47 49 53 | BNE P1..; REGIS|
00000650: 54 45 52 20 5A 55 52 55 45 43 4B 53 45 54 5A 45 |TER ZURUECKSETZE|
00000660: 4E 0D 0D 20 20 20 20 20 20 53 45 49 0D 20 20 20 |N.. SEI. |
00000670: 20 20 20 4C 44 41 20 23 30 0D 20 20 20 20 20 20 | LDA #0. |
00000680: 53 54 41 20 43 52 42 31 0D 20 20 20 20 20 20 53 |STA CRB1. S|
00000690: 54 41 20 54 42 48 31 0D 20 20 20 20 20 20 50 55 |TA TBH1. PU|
000006A0: 54 20 43 52 41 31 2C 31 0D 20 20 20 20 20 20 50 |T CRA1,1. P|
000006B0: 55 54 20 49 52 43 52 2C 33 31 0D 20 20 20 20 20 |UT IRCR,31. |
000006C0: 20 50 55 54 20 49 52 43 52 2C 31 32 39 0D 0D 3B | PUT IRCR,129..;|
000006D0: 20 41 55 46 20 52 4F 4D 20 53 43 48 41 4C 54 45 | AUF ROM SCHALTE|
000006E0: 4E 0D 0D 20 20 20 20 20 20 4C 44 41 20 31 0D 20 |N.. LDA 1. |
000006F0: 20 20 20 20 20 4F 52 41 20 23 32 0D 20 20 20 20 | ORA #2. |
00000700: 20 20 53 54 41 20 31 0D 0D 3B 20 5A 55 52 55 45 | STA 1..; ZURUE|
00000710: 43 4B 20 5A 55 20 42 41 53 49 43 0D 0D 20 20 20 |CK ZU BASIC.. |
00000720: 20 20 20 43 4C 49 0D 20 20 20 20 20 20 52 54 53 | CLI. RTS|
00000730: 0D 0D 3B 20 49 52 51 2D 52 4F 55 54 49 4E 45 20 |..; IRQ-ROUTINE |
00000740: 2C 20 43 41 52 52 59 20 53 45 54 5A 45 4E 0D 0D |, CARRY SETZEN..|
00000750: 3A 4E 49 52 51 20 43 4D 50 20 49 52 43 52 0D 20 |:NIRQ CMP IRCR. |
00000760: 20 20 20 20 20 50 4C 50 0D 20 20 20 20 20 20 53 | PLP. S|
00000770: 45 43 0D 20 20 20 20 20 20 50 48 50 0D 20 20 20 |EC. PHP. |
00000780: 20 20 20 52 54 49 0D 0D 20 0D 20 B7 00 | RTI.. . .. |
ORG $C000..; VON MANFRED SONNENB
ERG.; UND FRANK BOERNCKE..; PLAY
ROUTINE FUER 4-BIT SAMPLES, DIE.; MIT SA
NDI AUFGENOMMEN UND VORBEREITET.; WURDEN
. DIESE KOENNEN VON ASSEMBLER.; AUS MIT
FOLGENDER ROUTINE GESPIELT WERDEN....;
LDA #<ANFANG.; STA MELL.; LDA #>ANF
ANG.; STA MELH.; LDA #<ENDE.; STA
MEHL.; LDA #>ENDE.; STA MEHH.; LDA
#RATE.; JSR PLAY...; ANFANG UND ENDE
SIND 16-BIT WERTE, DIE.; DEN BEREICH FES
TLEGEN. RATE IST EIN.; WERT, DER DEM ZT-
WERT AUS DER SANDI.; TABELLE ENTSPRICHT.
..; ADRESSEN FUER .....:MELL =$FB ; ...S
TARTWERT.:MELH =$FC.:MEHL =$FD ; ...ENDW
ERT.:MEHH =$FE..; REGISTER..:VOL =$D418
.:TBL1 =$DC06.:TBH1 =$DC07.:IRCR =$DC0D.
:CRA1 =$DC0E.:CRB1 =$DC0F..; MAKROS..:PU
T M 2. LDA #@1. STA @0./.:MVE M 2.
LDA @0. STA @1./..; ZUM ZEITWERT OFFS
ET ADDIEREN, TIMER SETZEN..:PLAY CLC.
ADC #$6B. STA TBL1. LDA #0.
ADC #0. STA TBH1..; IRQ-VEKTO
R SETZEN UND IRQ SPERREN.. PUT $FFF
E,<NIRQ ; IRQ-VEKTOR UNTER DEM KERNAL.
PUT $FFFF,>NIRQ ; AUF EIGENE ROUTINE
SETZEN.. SEI..; REGISTER SETZEN..
LDY MELL. LDA #0. STA MEL
L. STA CRA1. PUT IRCR,131.
LDA #1. STA CRB1.. LDX MEHH.
.; AUF RAM SCHALTEN, NEUE IRQ-ROUTINE ST
ARTEN.. LDA 1. AND #$FD.
STA 1. CLI..; SPIELROUTINEN..:P1
CLC.:P3 BCC P3 ; AUF IRQ WARTEN.
LDA (MELL),Y. AND #$F. STA VOL
. CLC.:P4 BCC P4 ; AUF IRQ WARTEN
. LDA (MELL),Y. LSR. LSR.
LSR. LSR. STA VOL.
INY. BNE P2. INC MELH.:P2 CP
Y MEHL. BNE P1. CPX MELH.
BNE P1..; REGISTER ZURUECKSETZEN..
SEI. LDA #0. STA CRB1. S
TA TBH1. PUT CRA1,1. PUT IRCR,
31. PUT IRCR,129..; AUF ROM SCHALTE
N.. LDA 1. ORA #2. STA 1.
.; ZURUECK ZU BASIC.. CLI. RTS
..; IRQ-ROUTINE , CARRY SETZEN..:NIRQ CM
P IRCR. PLP. SEC. PHP.
RTI.. . ..
×
C64 Image
> CLICK IMAGE PREVIEW FOR FULL MODAL