_  __   _  _         _ _     _      _           _           
  __| |/ /_ | || |     __| (_)___| | __ (_)_ __   __| | _____  __
 / _` | '_ \| || |_   / _` | / __| |/ / | | '_ \ / _` |/ _ \ \/ /
| (_| | (_) |__   _| | (_| | \__ \   <  | | | | | (_| |  __/>  < 
 \__,_|\___/   |_|    \__,_|_|___/_|\_\ |_|_| |_|\__,_|\___/_/\_\
                                                                 
            

C64-HAM.SRC

FILE INFORMATION

FILENAME(S): C64-HAM.SRC

FILE TYPE(S): SEQ

FILE SIZE: 2K

FIRST SEEN: 2025-11-30 01:12:47

APPEARS ON: 3 disk(s)

FILE HASH

7faca924ed2e68829f4902236967fd5a804d63dc3e4aa5865914215ea493ed98

FOUND ON DISKS (3 DISKS)

DISK TITLE FILENAME FILE TYPE COLLECTION TRACK SECTOR ACTIONS
10009 SEITE A C64-HAM.SRC SEQ C64er, DuncanTwain 5 9 DOWNLOAD FILE
64 ER SONDERH 93 C64-HAM.SRC SEQ C64er 20 0 DOWNLOAD FILE
10009 SEITE A C64-HAM.SRC SEQ earthshaker 5 9 DOWNLOAD FILE

FILE CONTENT & ANALYSIS

00000000: 0D 3A 54 42 31 38 3D 24  43 34 30 30 0D 3A 54 42  |.:TB18=$C400.:TB|
00000010: 31 31 3D 24 43 35 30 30  0D 0D 4F 52 47 20 24 43  |11=$C500..ORG $C|
00000020: 30 30 30 0D 0D 53 45 49  0D 4C 44 58 20 23 30 0D  |000..SEI.LDX #0.|
00000030: 3A 54 42 47 4C 0D 54 58  41 0D 43 4C 43 0D 41 44  |:TBGL.TXA.CLC.AD|
00000040: 43 20 23 31 0D 41 4E 44  20 23 37 0D 4F 52 41 20  |C #1.AND #7.ORA |
00000050: 23 24 33 38 0D 53 54 41  20 54 42 31 31 2C 58 20  |#$38.STA TB11,X |
00000060: 3B 44 30 31 31 20 46 55  4E 4B 54 49 4F 4E 53 54  |;D011 FUNKTIONST|
00000070: 41 42 45 4C 4C 45 0D 54  58 41 20 20 20 20 20 20  |ABELLE.TXA      |
00000080: 20 20 3B 47 45 4E 45 52  49 45 52 45 4E 0D 41 44  |  ;GENERIEREN.AD|
00000090: 43 20 23 31 0D 41 53 4C  0D 41 53 4C 0D 41 53 4C  |C #1.ASL.ASL.ASL|
000000A0: 0D 41 53 4C 0D 4F 52 41  20 23 38 0D 41 4E 44 20  |.ASL.ORA #8.AND |
000000B0: 23 24 37 46 0D 53 54 41  20 54 42 31 38 2C 58 20  |#$7F.STA TB18,X |
000000C0: 20 20 3B 44 30 31 38 20  41 44 52 45 53 53 54 41  |  ;D018 ADRESSTA|
000000D0: 42 45 4C 4C 45 0D 49 4E  58 20 20 20 20 20 20 20  |BELLE.INX       |
000000E0: 20 20 20 3B 47 45 4E 45  52 49 45 52 45 4E 0D 43  |   ;GENERIEREN.C|
000000F0: 50 58 20 23 32 30 30 20  20 20 20 20 3B 32 30 30  |PX #200     ;200|
00000100: 20 52 41 53 54 45 52 5A  45 49 4C 45 4E 0D 42 4E  | RASTERZEILEN.BN|
00000110: 45 20 54 42 47 4C 0D 4C  44 41 20 23 24 37 30 20  |E TBGL.LDA #$70 |
00000120: 20 20 20 20 3B 4C 45 54  5A 54 45 20 5A 45 49 4C  |    ;LETZTE ZEIL|
00000130: 45 20 4B 45 49 4E 20 44  4D 41 0D 53 54 41 20 54  |E KEIN DMA.STA T|
00000140: 42 31 31 2B 31 39 39 20  3B 55 4E 44 20 52 45 53  |B11+199 ;UND RES|
00000150: 54 5A 45 49 4C 45 4E 20  53 43 48 57 41 52 5A 0D  |TZEILEN SCHWARZ.|
00000160: 4C 44 41 20 23 24 30 38  20 20 20 20 20 3B 53 4F  |LDA #$08     ;SO|
00000170: 57 49 45 20 52 55 45 43  4B 53 45 54 5A 45 4E 0D  |WIE RUECKSETZEN.|
00000180: 53 54 41 20 54 42 31 38  2B 31 39 39 20 3B 56 4F  |STA TB18+199 ;VO|
00000190: 4E 20 44 30 31 38 0D 0D  4C 44 41 20 23 3C 4E 49  |N D018..LDA #<NI|
000001A0: 51 20 20 20 20 3B 4E 45  55 45 52 20 49 52 51 2D  |Q    ;NEUER IRQ-|
000001B0: 56 45 43 54 4F 52 0D 53  54 41 20 24 33 31 34 0D  |VECTOR.STA $314.|
000001C0: 4C 44 41 20 23 3E 4E 49  51 0D 53 54 41 20 24 33  |LDA #>NIQ.STA $3|
000001D0: 31 35 0D 4C 44 41 20 23  24 31 42 0D 53 54 41 20  |15.LDA #$1B.STA |
000001E0: 24 44 30 31 31 20 20 20  20 3B 44 30 31 31 20 4E  |$D011    ;D011 N|
000001F0: 4F 52 4D 41 4C 0D 4C 44  41 20 23 24 31 38 0D 53  |ORMAL.LDA #$18.S|
00000200: 54 41 20 24 44 30 31 36  20 20 20 20 3B 4D 55 4C  |TA $D016    ;MUL|
00000210: 54 49 43 4F 4C 4F 52 0D  4C 44 41 20 23 30 0D 53  |TICOLOR.LDA #0.S|
00000220: 54 41 20 24 44 30 31 35  20 20 20 20 3B 4B 45 49  |TA $D015    ;KEI|
00000230: 4E 45 20 53 50 52 49 54  45 2D 44 4D 41 20 53 54  |NE SPRITE-DMA ST|
00000240: 4F 45 52 55 4E 47 0D 53  54 41 20 24 44 30 32 31  |OERUNG.STA $D021|
00000250: 0D 53 54 41 20 24 44 30  32 30 0D 53 54 41 20 24  |.STA $D020.STA $|
00000260: 44 43 30 45 20 20 20 20  3B 54 49 4D 45 52 20 53  |DC0E    ;TIMER S|
00000270: 54 4F 50 0D 0D 4C 44 41  20 23 24 34 43 20 20 20  |TOP..LDA #$4C   |
00000280: 20 20 3B 4E 45 55 45 52  20 54 49 4D 45 52 20 57  |  ;NEUER TIMER W|
00000290: 45 52 54 0D 53 54 41 20  24 44 43 30 35 20 20 20  |ERT.STA $DC05   |
000002A0: 20 3B 46 55 45 52 20 45  52 53 54 45 4E 20 49 52  | ;FUER ERSTEN IR|
000002B0: 51 20 53 45 54 5A 45 4E  0D 4C 44 41 20 23 24 43  |Q SETZEN.LDA #$C|
000002C0: 37 2D 36 33 20 20 3B 2D  36 33 3D 20 31 20 52 41  |7-63  ;-63= 1 RA|
000002D0: 53 54 45 52 5A 45 49 4C  45 20 48 4F 45 48 45 52  |STERZEILE HOEHER|
000002E0: 0D 53 54 41 20 24 44 43  30 34 0D 0D 3A 57 4C 31  |.STA $DC04..:WL1|
000002F0: 20 20 20 20 20 20 20 20  20 3B 41 55 46 20 5A 45  |         ;AUF ZE|
00000300: 49 4C 45 20 24 30 33 30  0D 4C 44 41 20 24 44 30  |ILE $030.LDA $D0|
00000310: 31 31 20 20 20 20 3B 28  55 4E 44 20 4E 49 43 48  |11    ;(UND NICH|
00000320: 54 20 24 31 33 30 29 0D  42 50 4C 20 57 4C 31 20  |T $130).BPL WL1 |
00000330: 20 20 20 20 20 3B 57 41  52 54 45 4E 0D 3A 57 4C  |     ;WARTEN.:WL|
00000340: 32 0D 4C 44 41 20 24 44  30 31 31 0D 42 4D 49 20  |2.LDA $D011.BMI |
00000350: 57 4C 32 0D 0D 4C 44 41  20 23 24 33 30 0D 3A 57  |WL2..LDA #$30.:W|
00000360: 4C 33 0D 43 4D 50 20 24  44 30 31 32 0D 42 4E 45  |L3.CMP $D012.BNE|
00000370: 20 57 4C 33 0D 0D 4C 44  58 20 23 24 31 31 20 20  | WL3..LDX #$11  |
00000380: 20 20 20 3B 53 59 4E 43  48 52 4F 4E 49 53 41 54  |   ;SYNCHRONISAT|
00000390: 49 4F 4E 20 44 45 53 0D  4C 44 41 20 23 24 31 38  |ION DES.LDA #$18|
000003A0: 20 20 20 20 20 3B 54 49  4D 45 52 53 20 41 55 46  |     ;TIMERS AUF|
000003B0: 20 49 4D 4D 45 52 20 44  49 45 53 45 4C 42 45 0D  | IMMER DIESELBE.|
000003C0: 53 54 41 20 24 44 30 31  31 20 20 20 20 3B 48 4F  |STA $D011    ;HO|
000003D0: 52 49 5A 2E 20 50 4F 53  49 54 49 4F 4E 20 44 55  |RIZ. POSITION DU|
000003E0: 52 43 48 0D 53 54 58 20  24 44 43 30 45 20 20 20  |RCH.STX $DC0E   |
000003F0: 20 3B 44 4D 41 2D 5A 59  4B 4C 45 4E 20 41 55 53  | ;DMA-ZYKLEN AUS|
00000400: 47 4C 45 49 43 48 0D 0D  4C 44 41 20 23 24 33 42  |GLEICH..LDA #$3B|
00000410: 20 20 20 20 20 3B 48 49  52 45 53 2B 4E 4F 52 4D  |     ;HIRES+NORM|
00000420: 41 4C 57 45 52 54 0D 53  54 41 20 24 44 30 31 31  |ALWERT.STA $D011|
00000430: 0D 0D 4C 44 41 20 24 44  43 30 44 20 20 20 20 3B  |..LDA $DC0D    ;|
00000440: 45 56 4E 54 4C 2E 20 41  4C 54 45 53 20 49 52 51  |EVNTL. ALTES IRQ|
00000450: 2D 46 4C 41 47 20 41 55  53 0D 0D 4C 44 41 20 24  |-FLAG AUS..LDA $|
00000460: 44 44 30 30 20 20 20 20  3B 42 41 4E 4B 20 24 34  |DD00    ;BANK $4|
00000470: 30 30 30 2D 24 38 30 30  30 0D 41 4E 44 20 23 24  |000-$8000.AND #$|
00000480: 46 43 20 20 20 20 20 3B  41 4E 57 41 45 48 4C 45  |FC     ;ANWAEHLE|
00000490: 4E 0D 4F 52 41 20 23 32  0D 53 54 41 20 24 44 44  |N.ORA #2.STA $DD|
000004A0: 30 30 0D 0D 43 4C 49 20  20 20 20 20 20 20 20 20  |00..CLI         |
000004B0: 20 3B 4C 4F 53 20 47 45  48 54 27 53 0D 52 54 53  | ;LOS GEHT'S.RTS|
000004C0: 0D 0D 3A 4E 49 51 0D 4C  44 41 20 23 24 39 46 20  |..:NIQ.LDA #$9F |
000004D0: 20 20 20 20 20 20 3B 4D  49 4E 49 4D 41 4C 57 45  |      ;MINIMALWE|
000004E0: 52 54 20 44 45 52 0D 53  45 43 20 20 20 20 20 20  |RT DER.SEC      |
000004F0: 20 20 20 20 20 20 3B 56  45 52 47 41 4E 47 45 4E  |      ;VERGANGEN|
00000500: 45 4E 20 5A 59 4B 4C 45  4E 0D 53 42 43 20 24 44  |EN ZYKLEN.SBC $D|
00000510: 43 30 34 20 20 20 20 20  20 3B 41 42 57 45 49 43  |C04      ;ABWEIC|
00000520: 48 55 4E 47 20 4D 45 53  53 45 4E 0D 43 4D 50 20  |HUNG MESSEN.CMP |
00000530: 23 31 32 0D 42 43 43 20  4F 4B 0D 4A 4D 50 20 53  |#12.BCC OK.JMP S|
00000540: 59 4E 43 45 52 52 20 20  20 20 3B 5A 55 56 49 45  |YNCERR    ;ZUVIE|
00000550: 4C 45 20 5A 59 4B 4C 45  4E 0D 3A 4F 4B 0D 4C 53  |LE ZYKLEN.:OK.LS|
00000560: 52 20 20 20 20 20 20 20  20 20 20 20 20 3B 48 41  |R            ;HA|
00000570: 45 4C 46 54 45 20 44 41  20 4E 4F 50 3D 32 20 5A  |ELFTE DA NOP=2 Z|
00000580: 59 4B 2E 0D 42 43 43 20  4F 4E 45 43 59 43 4C 45  |YK..BCC ONECYCLE|
00000590: 20 20 20 3B 42 52 41 4E  43 48 3D 33 20 5A 59 4B  |   ;BRANCH=3 ZYK|
000005A0: 2E 0D 3A 4F 4E 45 43 59  43 4C 45 20 20 20 20 20  |..:ONECYCLE     |
000005B0: 20 3B 4B 45 49 4E 20 42  52 41 4E 43 48 20 32 0D  | ;KEIN BRANCH 2.|
000005C0: 53 54 41 20 52 45 53 54  43 59 43 4C 45 2B 31 0D  |STA RESTCYCLE+1.|
000005D0: 3A 52 45 53 54 43 59 43  4C 45 0D 42 50 4C 20 52  |:RESTCYCLE.BPL R|
000005E0: 45 53 54 43 59 43 4C 45  20 20 3B 45 49 4E 53 50  |ESTCYCLE  ;EINSP|
000005F0: 52 55 4E 47 20 5A 55 20  4E 4F 50 53 0D 4E 4F 50  |RUNG ZU NOPS.NOP|
00000600: 20 20 20 20 20 20 20 20  20 20 20 20 3B 41 55 53  |            ;AUS|
00000610: 47 4C 45 49 43 48 20 44  55 52 43 48 20 4E 4F 50  |GLEICH DURCH NOP|
00000620: 53 0D 4E 4F 50 0D 4E 4F  50 0D 4E 4F 50 0D 4E 4F  |S.NOP.NOP.NOP.NO|
00000630: 50 0D 4E 4F 50 0D 0D 4C  44 41 20 23 24 33 30 20  |P.NOP..LDA #$30 |
00000640: 20 20 20 20 20 20 3B 48  49 52 45 53 20 44 49 53  |      ;HIRES DIS|
00000650: 50 4C 41 59 0D 53 54 41  20 24 44 30 31 31 20 20  |PLAY.STA $D011  |
00000660: 20 20 20 20 3B 55 4E 44  20 31 2E 44 4D 41 20 49  |    ;UND 1.DMA I|
00000670: 4E 20 5A 45 49 4C 45 20  24 33 30 0D 0D 4E 4F 50  |N ZEILE $30..NOP|
00000680: 20 20 20 20 20 20 20 20  20 20 20 20 3B 57 45 49  |            ;WEI|
00000690: 54 45 52 45 53 20 54 49  4D 49 4E 47 0D 4E 4F 50  |TERES TIMING.NOP|
000006A0: 0D 4E 4F 50 0D 4C 44 58  20 23 30 20 20 20 20 20  |.NOP.LDX #0     |
000006B0: 20 20 20 20 3B 54 41 42  45 4C 4C 45 4E 5A 45 49  |    ;TABELLENZEI|
000006C0: 47 45 52 20 52 45 53 45  54 0D 0D 3A 48 41 4D 4C  |GER RESET..:HAML|
000006D0: 4F 4F 50 20 20 20 20 20  20 20 3B 45 52 5A 45 55  |OOP       ;ERZEU|
000006E0: 47 55 4E 47 0D 4C 44 41  20 54 42 31 38 2C 58 20  |GUNG.LDA TB18,X |
000006F0: 20 20 20 20 3B 56 4F 4E  20 32 30 30 20 44 4D 41  |    ;VON 200 DMA|
00000700: 2D 5A 45 49 4C 45 4E 0D  53 54 41 20 24 44 30 31  |-ZEILEN.STA $D01|
00000710: 38 20 20 20 20 20 20 3B  4D 49 54 20 41 44 52 45  |8      ;MIT ADRE|
00000720: 53 53 55 4D 53 43 48 41  4C 54 55 4E 47 0D 4C 44  |SSUMSCHALTUNG.LD|
00000730: 41 20 54 42 31 31 2C 58  0D 53 54 41 20 24 44 30  |A TB11,X.STA $D0|
00000740: 31 31 0D 49 4E 58 0D 43  50 58 20 23 32 30 30 0D  |11.INX.CPX #200.|
00000750: 42 4E 45 20 48 41 4D 4C  4F 4F 50 0D 0D 3A 49 45  |BNE HAMLOOP..:IE|
00000760: 4E 44 0D 4A 4D 50 20 24  45 41 33 31 20 20 20 20  |ND.JMP $EA31    |
00000770: 3B 5A 55 52 20 41 4C 54  45 4E 20 49 52 51 20 52  |;ZUR ALTEN IRQ R|
00000780: 4F 55 54 49 4E 45 0D 0D  3A 53 59 4E 43 45 52 52  |OUTINE..:SYNCERR|
00000790: 20 20 20 20 20 3B 54 49  4D 45 52 20 41 55 46 20  |     ;TIMER AUF |
000007A0: 45 58 41 43 54 0D 4C 44  41 20 23 24 34 43 20 20  |EXACT.LDA #$4C  |
000007B0: 20 20 20 3B 45 49 4E 45  4E 20 42 49 4C 44 53 43  |   ;EINEN BILDSC|
000007C0: 48 49 52 4D 44 55 52 43  48 4C 41 55 46 0D 53 54  |HIRMDURCHLAUF.ST|
000007D0: 41 20 24 44 43 30 35 20  20 20 20 3B 53 54 45 4C  |A $DC05    ;STEL|
000007E0: 4C 45 4E 0D 4C 44 41 20  23 24 43 37 0D 53 54 41  |LEN.LDA #$C7.STA|
000007F0: 20 24 44 43 30 34 0D 4A  4D 50 20 49 45 4E 44 0D  | $DC04.JMP IEND.|
00000800: 0D 0D                                             |..              |
.:TB18=$C400.:TB11=$C500..ORG $C000..SEI
.LDX #0.:TBGL.TXA.CLC.ADC #1.AND #7.ORA 
#$38.STA TB11,X ;D011 FUNKTIONSTABELLE.T
XA        ;GENERIEREN.ADC #1.ASL.ASL.ASL
.ASL.ORA #8.AND #$7F.STA TB18,X   ;D018 
ADRESSTABELLE.INX          ;GENERIEREN.C
PX #200     ;200 RASTERZEILEN.BNE TBGL.L
DA #$70     ;LETZTE ZEILE KEIN DMA.STA T
B11+199 ;UND RESTZEILEN SCHWARZ.LDA #$08
     ;SOWIE RUECKSETZEN.STA TB18+199 ;VO
N D018..LDA #<NIQ    ;NEUER IRQ-VECTOR.S
TA $314.LDA #>NIQ.STA $315.LDA #$1B.STA 
$D011    ;D011 NORMAL.LDA #$18.STA $D016
    ;MULTICOLOR.LDA #0.STA $D015    ;KEI
NE SPRITE-DMA STOERUNG.STA $D021.STA $D0
20.STA $DC0E    ;TIMER STOP..LDA #$4C   
  ;NEUER TIMER WERT.STA $DC05    ;FUER E
RSTEN IRQ SETZEN.LDA #$C7-63  ;-63= 1 RA
STERZEILE HOEHER.STA $DC04..:WL1        
 ;AUF ZEILE $030.LDA $D011    ;(UND NICH
T $130).BPL WL1      ;WARTEN.:WL2.LDA $D
011.BMI WL2..LDA #$30.:WL3.CMP $D012.BNE
 WL3..LDX #$11     ;SYNCHRONISATION DES.
LDA #$18     ;TIMERS AUF IMMER DIESELBE.
STA $D011    ;HORIZ. POSITION DURCH.STX 
$DC0E    ;DMA-ZYKLEN AUSGLEICH..LDA #$3B
     ;HIRES+NORMALWERT.STA $D011..LDA $D
C0D    ;EVNTL. ALTES IRQ-FLAG AUS..LDA $
DD00    ;BANK $4000-$8000.AND #$FC     ;
ANWAEHLEN.ORA #2.STA $DD00..CLI         
 ;LOS GEHT'S.RTS..:NIQ.LDA #$9F       ;M
INIMALWERT DER.SEC            ;VERGANGEN
EN ZYKLEN.SBC $DC04      ;ABWEICHUNG MES
SEN.CMP #12.BCC OK.JMP SYNCERR    ;ZUVIE
LE ZYKLEN.:OK.LSR            ;HAELFTE DA
 NOP=2 ZYK..BCC ONECYCLE   ;BRANCH=3 ZYK
..:ONECYCLE      ;KEIN BRANCH 2.STA REST
CYCLE+1.:RESTCYCLE.BPL RESTCYCLE  ;EINSP
RUNG ZU NOPS.NOP            ;AUSGLEICH D
URCH NOPS.NOP.NOP.NOP.NOP.NOP..LDA #$30 
      ;HIRES DISPLAY.STA $D011      ;UND
 1.DMA IN ZEILE $30..NOP            ;WEI
TERES TIMING.NOP.NOP.LDX #0         ;TAB
ELLENZEIGER RESET..:HAMLOOP       ;ERZEU
GUNG.LDA TB18,X     ;VON 200 DMA-ZEILEN.
STA $D018      ;MIT ADRESSUMSCHALTUNG.LD
A TB11,X.STA $D011.INX.CPX #200.BNE HAML
OOP..:IEND.JMP $EA31    ;ZUR ALTEN IRQ R
OUTINE..:SYNCERR     ;TIMER AUF EXACT.LD
A #$4C     ;EINEN BILDSCHIRMDURCHLAUF.ST
A $DC05    ;STELLEN.LDA #$C7.STA $DC04.J
MP IEND...
C64 Preview

> CLICK IMAGE PREVIEW FOR FULL MODAL