CODINGSOURCES ★ Stars Flying (4 src's) ★

Stars Flying (4 src's sourcepack by HYPNOM '94)Coding Sources

;
; -** HORIZONTAL STAR FLYING **- by HYPNOM '94 Version 1
;
org &4000
loop:
ld a,32
ld hl,(tab):ld (hl),a
ld hl,(tab+2):ld (hl),a
ld hl,(tab+4):ld (hl),a
ld hl,(tab+6):ld (hl),a
ld hl,(tab+8):ld (hl),a
call &bb09
ret c
call &bd19
ld hl,(tab):call check:ld (tab),hl
ld hl,(tab+2):call check:ld (tab+2),hl
ld hl,(tab+4):call check:ld (tab+4),hl
ld hl,(tab+6):call check:ld (tab+6),hl
ld hl,(tab+8):call check:ld (tab+8),hl
jr loop
check:
ld (hl),0
inc hl
ld a,h
or l
cp 0
ret nz
ld hl,&c000
ret
tab:
dw &cf0f,&d1e0,&ec55,&f242,&caaa

;
; -** VERTICAL STAR FLYING **- by HYPNOM '94 Version 1
;
org &4000
loop ld b,32:ld c,0
ld hl,(tab):call check
ld hl,(tab+2):call check
ld hl,(tab+4):call check
ld hl,(tab+6):call check
ld hl,(tab+8):call check
call &bb09
ret c
call &bd19
ld b,0:ld c,32
ld hl,(tab):call check:call calc:ld (tab),hl
ld hl,(tab+2):call check:call calc:ld (tab+2),hl
ld hl,(tab+4):call check:call calc:ld (tab+4),hl
ld hl,(tab+6):call check:call calc:ld (tab+6),hl
ld hl,(tab+8):call check:call calc:ld (tab+8),hl
jr loop
check ld a,(hl)
cp c
ret nz
ld (hl),b
ret
calc ld de,&800
sbc hl,de
ld a,h
cp &c0
ret nc
cp &b7
jr nz,followme
ld a,l
cp &4f
jr c,followme
ld de,&4000
add hl,de
ret
followme ld de,8*&800-&50
add hl,de
ret
tab dw &cf0f,&d0e0,&ecac,&f242,&caaa

;
; -** HORIZONTAL STAR FLYING **- by HYPNOM '94 Version 2
;
org &4000
ld a,1
call &bc0e
begin
ld hl,(tab):ld (hl),32
ld hl,(tab+2):ld (hl),32
ld hl,(tab+4):ld (hl),32
ld hl,(tab+6):ld (hl),32
ld hl,(tab+8):ld (hl),32
ld hl,(tab1):ld (hl),32
ld hl,(tab1+2):ld (hl),32
ld hl,(tab1+4):ld (hl),32
ld hl,(tab1+6):ld (hl),32
ld hl,(tab1+8):ld (hl),32
call &bb09
ret c
call &bd19
ld hl,(tab):ld (hl),0:call check:ld (tab),hl
ld hl,(tab+2):ld (hl),0:call check:ld (tab+2),hl
ld hl,(tab+4):ld (hl),0:call check:ld (tab+4),hl
ld hl,(tab+6):ld (hl),0:call check:ld (tab+6),hl
ld hl,(tab+8):ld (hl),0:call check:ld (tab+8),hl
ld hl,(tab1):ld (hl),0:inc hl:call check:ld (tab1),hl
ld hl,(tab1+2):ld (hl),0:inc hl:call check:ld (tab1+2),hl
ld hl,(tab1+4):ld (hl),0:inc hl:call check:ld (tab1+4),hl
ld hl,(tab1+6):ld (hl),0:inc hl:call check:ld (tab1+6),hl
ld hl,(tab1+8):ld (hl),0:inc hl:call check:ld (tab1+8),hl
jp begin
check inc hl
ld a,h
cp 0
ret nz
ld hl,&c000
ret
tab dw &c000,&d4f6,&e973,&f1dd,&c904
tab1 dw &cfff,&e030,&eaaa,&c7aa,&f4fb

;
; -** HORIZONTAL STAR FLYING **- by HYPNOM '94 Version 3
;
org &4000
; Sterne setzen:
loop ld de,tab ; DE zeigt auf Anfang der Stern(screen)adressentabelle
ld b,6 ; 6 Sterne, also 6 Durchlaeufe der Schleife, B ist Zaehler dafuer
loop1 ld a,(de) ; nach A Highbyte der aktuellen Sternadresse
ld l,a ; weitergeben nach L
inc de ; Sternadressentabellenzeiger DE weiterruecken auf Lowbyte
ld a,(de) ; dieses Lowbyte nach A schreiben
ld h,a ; und weitergeben nach H ==> HL enthaelt nun Sternadresse
ld a,(hl) ; Inhalt der Sternadresse vom Screen nach A
cp 0 ; vergleichen mit 0, also, ob an der Screenstelle Grafik steht
jr nz,continue ; wenn Screenadresseninhalt ungleich 0, dann => Label continue
ld (hl),32 ; an Screenadresse (HL) Stern setzen (Wert 32)
continue inc de ; DE auf Highbyte der naechsten Sternscreenaddy
djnz loop1 ; B wird eins runtergezaehlt und nach Label loop1
; gesprungen, solange B groesser 0 ist
call &bb09 ; Taste gedrueckt?
ret c ; wenn ja (Carry-Flag gesetzt), dann zurueck ins Basic
call &bd19 ; Frame Fly Back, also abwarten, bis Elektronenstrahl den
; Screen fertig gezeichnet hat
; Sterne loeschen:
xloop ld de,tab ; DE zeigt auf Anfang Sternscreenaddytabelle
ld b,6 ; B als Schleifenzaehler wieder auf 6
xloop1 ld a,(de)
ld l,a
inc de
ld a,(de)
ld h,a ; bis hierhin wurde die Addy wieder nach HL geladen
ld a,(hl)
cp 32 ; Screeninhalt mit 32 (=Stern) vergleichen
jr nz,xcontinue ; wenn kein Stern gesetzt, dann war da Grafik,=> Label xcontinue
ld (hl),0 ; sonst Stern loeschen
xcontinue inc hl ; Screenadresse erhoehen
ld a,h
or l
cp 0 ; Vergleichsrouti, ob Adresse groesser als &FFFF, also &0000
jr nz,xcontinue1 ; wenn nein, dann weiter bei xcontinue1
ld hl,&c000 ; sonst Addy auf Screenanfang setzen
xcontinue1 dec de
ld a,l
ld (de),a
inc de
ld a,h
ld (de),a
inc de ; neue Screenaddy in Tabelle setzen (Zeiger mu¦ dazu verschoben
djnz xloop1 ; und B dekrementieren und naechster Stern werden)
jr loop ; und alles von vorne
tab dw &cf0f,&d5e0,&ed55,&f242,&caaa,&f000

Source by HYPNOM '94

★ ANNÉE: 1994
★ AUTEUR: HYPNOM

★ AMSTRAD CPC ★ DOWNLOAD ★

Other platform tools:
» HYPNOM  starsfly1DATE: 1970-01-01
DL: 52
TYPE: ASM
SiZE: 2Ko
NOTE:

» HYPNOM  starsfly2DATE: 1970-01-01
DL: 46
TYPE: ASM
SiZE: 2Ko
NOTE:

» HYPNOM  starsfly3DATE: 1970-01-01
DL: 53
TYPE: ASM
SiZE: 2Ko
NOTE:

» HYPNOM  starsfly4DATE: 1970-01-01
DL: 56
TYPE: ASM
SiZE: 4Ko
NOTE:

★ AMSTRAD CPC ★ A voir aussi sur CPCrulez , les sujets suivants pourront vous intéresser...

Lien(s):
» Coding Src's » 3D Shadows
» Coding Src's » C+Dragon (Amstrad Computer User)
» Coding Src's » Affichage de text en Overscan (Crown/BENG)
» Coding Src's » Graphic - Advanced Art Studio screen loader (Attack)
» Coding Src's » Poly Stars
» Coding Src's » Scandinavian Flag Demo (Amstrad Action)
Je participe au site:
» Vous avez des infos personnel, des fichiers que nous ne possédons pas concernent ce programme ?
» Vous avez remarqué une erreur dans ce texte ?
» Aidez-nous à améliorer cette page : en nous contactant via le forum ou par email.

CPCrulez[Content Management System] v8.7-desktop
Page créée en 788 millisecondes et consultée 1854 fois

L'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent  du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko.