CODINGSOURCES ★ Stars Flying (4 src's) ★

 

;
; -** 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 - http://cpcrulez.fr

★ LICENCE: FREEWARE
★ ANNÉE: 1994
★ AUTEUR: HYPNOM

★ AMSTRAD CPC ★ DOWNLOAD ★

Je participe au site:
» Newfile(s) upload/Envoye de fichier(s)
★ AMSTRAD CPC ★ A voir aussi sur CPCrulez , les sujets suivants pourront vous intéresser...

Lien(s):
» Coding Src's » Sound - Sound Effects Demo (Amstrad Computer User)
» Coding Src's » Curve (The Amstrad User)
» Coding Src's » ASCII File Compacter (Computing With the Amstrad)
» Coding Src's » PlayCity Examples (SyX)
» Coding Src's » Vfind (Computing With the Amstrad)
» Coding Src's » Jak odbezpieczyć program w BASICU (Bajtek)

CPCrulez[Content Management System] v8.75-desktop/c
Page créée en 082 millisecondes et consultée 867 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.