Algorithme d'une ligne avec des cellules de 8x10 pixels en BASIC

 Download programme













;org 28672
push hl
 ld hl,21000

FILL_LOOP:
    LD   (hl),0 ; Charger la valeur 0 dans la zone mémoire à l'adresse pointée par HL
    INC  hl     ; Incrémenter HL pour passer à l'adresse mémoire suivante
    ld  a,h
    cp 96   ;24800 soit 60e0 ou $96,$224
    jp nz,FILL_LOOP
pop hl
ret



push hl
ld hl,_ef9345
call $00ad


_org:



ld a,31
ld (_setet),a
ld a,31
ld (_caractere),a
ld a,0
ld (_cursorx),a
ld a,41
ld (_cursory),a
ld hl,21000
_buildsetet1:
 
          ;--------------build seteT--------------------
          ld a,(_setet); numero de caractere a definir
          inc a
          ld (_setet),a

          ld  a,(_setet)
          ;cp 0 ???????????????????????????????????????
          jp z,_suite1


          call $001B ; construction des incremente HL de 10
          jp _buildsetet1







_suite1:


_fillx1:

ld a,$80
ld (_mode),a


 ld a,(_caractere)
 inc a
 ld (_caractere),a
ld a,135
ld (_color),a
  ld a,(_cursorx)
 inc a
 ld (_cursorx),a
 ld hl,_ef9345suite
 call $00ad
 ld a,(_cursorx)
 cp 16
 jp nz,_fillx1



ld a,0
ld (_cursorx),a
ld a,42
ld (_cursory),a






_fillx2:

ld a,$80
ld (_mode),a


 ld a,(_caractere)
 inc a
 ld (_caractere),a
ld a,135
ld (_color),a
  ld a,(_cursorx)
 inc a
 ld (_cursorx),a
 ld hl,_ef9345suite
 call $00ad
 ld a,(_cursorx)
 cp 16
 jp nz,_fillx2


_suite2:

ld a,0
ld (_cursorx),a
ld a,43
ld (_cursory),a

_fillx3:

ld a,$80
ld (_mode),a


 ld a,(_caractere)
 inc a
 ld (_caractere),a
ld a,135
ld (_color),a
  ld a,(_cursorx)
 inc a
 ld (_cursorx),a
 ld hl,_ef9345suite
 call $00ad
 ld a,(_cursorx)
 cp 16
 jp nz,_fillx3



;ld a,31
;ld (_caractere),a
ld a,0
ld (_cursorx),a
ld a,44
ld (_cursory),a






_fillx4:

ld a,$80
ld (_mode),a


 ld a,(_caractere)
 inc a
 ld (_caractere),a
ld a,135
ld (_color),a
  ld a,(_cursorx)
 inc a
 ld (_cursorx),a
 ld hl,_ef9345suite
 call $00ad
 ld a,(_cursorx)
 cp 16
 jp nz,_fillx4


;pop hl
;ret



ld a,0
ld (_cursorx),a
ld a,45
ld (_cursory),a






_fillx5:

ld a,$80
ld (_mode),a


 ld a,(_caractere)
 inc a
 ld (_caractere),a
ld a,135
ld (_color),a
  ld a,(_cursorx)
 inc a
 ld (_cursorx),a
 ld hl,_ef9345suite
 call $00ad
 ld a,(_cursorx)
 cp 16
 jp nz,_fillx5




;pop hl
;ret
;ld a,31
;ld (_caractere),a



 ;ld a,128
 ;ld (_caractere),a
ld a,0
ld (_cursorx),a
ld a,46
ld (_cursory),a






_fillx6:

ld a,$80
ld (_mode),a


 ld a,(_caractere)
 inc a
 ld (_caractere),a
ld a,135
ld (_color),a
  ld a,(_cursorx)
 inc a
 ld (_cursorx),a
 ld hl,_ef9345suite
 call $00ad
 ld a,(_cursorx)
 cp 16
 jp nz,_fillx6
 
;pop hl
;ret


ld a,31
ld (_caractere),a
ld a,0
ld (_cursorx),a
ld a,47
ld (_cursory),a
 
_fillx7:
ld a,$a0
ld (_mode),a


 ld a,(_caractere)
 inc a
 ld (_caractere),a
ld a,135
ld (_color),a
  ld a,(_cursorx)
 inc a
 ld (_cursorx),a
 ld hl,_ef9345suite
 call $00ad
 ld a,(_cursorx)
 cp 16
 jp nz,_fillx7



ld a,0
ld (_cursorx),a
ld a,48
ld (_cursory),a






_fillx8:

ld a,$a0
ld (_mode),a


 ld a,(_caractere)
 inc a
 ld (_caractere),a
ld a,135
ld (_color),a
  ld a,(_cursorx)
 inc a
 ld (_cursorx),a
 ld hl,_ef9345suite
 call $00ad
 ld a,(_cursorx)
 cp 16
 jp nz,_fillx8


;_suite2:

ld a,0
ld (_cursorx),a
ld a,49
ld (_cursory),a

_fillx9:

ld a,$a0
ld (_mode),a


 ld a,(_caractere)
 inc a
 ld (_caractere),a
ld a,135
ld (_color),a
  ld a,(_cursorx)
 inc a
 ld (_cursorx),a
 ld hl,_ef9345suite
 call $00ad
 ld a,(_cursorx)
 cp 16
 jp nz,_fillx9



;ld a,31
;ld (_caractere),a
ld a,0
ld (_cursorx),a
ld a,50
ld (_cursory),a






_fillx10:

ld a,$a0
ld (_mode),a


 ld a,(_caractere)
 inc a
 ld (_caractere),a
ld a,135
ld (_color),a
  ld a,(_cursorx)
 inc a
 ld (_cursorx),a
 ld hl,_ef9345suite
 call $00ad
 ld a,(_cursorx)
 cp 16
 jp nz,_fillx10


;pop hl
;ret



ld a,0
ld (_cursorx),a
ld a,51
ld (_cursory),a






_fillx11:

ld a,$a0
ld (_mode),a


 ld a,(_caractere)
 inc a
 ld (_caractere),a
ld a,135
ld (_color),a
  ld a,(_cursorx)
 inc a
 ld (_cursorx),a
 ld hl,_ef9345suite
 call $00ad
 ld a,(_cursorx)
 cp 16
 jp nz,_fillx11




;pop hl
;ret
;ld a,31
;ld (_caractere),a



 ;ld a,128
 ;ld (_caractere),a
ld a,0
ld (_cursorx),a
ld a,52
ld (_cursory),a






_fillx12:

ld a,$a0
ld (_mode),a


 ld a,(_caractere)
 inc a
 ld (_caractere),a
ld a,135
ld (_color),a
  ld a,(_cursorx)
 inc a
 ld (_cursorx),a
 ld hl,_ef9345suite
 call $00ad
 ld a,(_cursorx)
 cp 16
 jp nz,_fillx12
pop hl
ret

















-----------------------------------------------------------




_init:
        db 24,$21,$00,$28,$81,$21,$6E,$28,$82,$21,$f7,$28,$83,$21,$13,$28,$84,$21,$08,$28,$87,$22,$38,$28,$00

_ef9345:
        db 20,$21,$00,$28,$81,$21,$06,$28,$82,$21,$67
        db $28,$83,$21,$13,$28,$84,$21,$28,$28,$87
_ef9345suite:
        db 12,$21
_caractere:
        db 31,$22
_mode:            ; mode setet,seteg ou texte d8,c1,00
        db $00,$23
_color:
        db 135,$26
_cursory:
        db 40,$27;ajouter 35 pour les coordonnés y pour ce mode graphique
_cursorx:
        db 0,$28,$00
_setet:
        db 32
_y:
        db 39
_gate:
        db 128

_counter:
        db 0
_countframes:
        db 1

Commentaires

Posts les plus consultés de ce blog

Dessiner en quatre couleurs sur VG5000