NOTICE TEXTE n° 1 (5.04 Ko) 
ORG &8000
WRITE DIRECT "SPLIT.BIN"
LD bc,0
CALL &BC38
;ECRAN 21
XOR a
LD bc,0
CALL &BC32
LD a,1
LD bc,&1818
CALL &BC32
LD a,2
LD bc,&1515
CALL &BC32
LD a,3
LD bc,&1A1A
CALL &BC32
DI ; Desactiver les interruptions
LD HL,(&38) ; Lire l'ancienne interruption
LD (Sauver),HL ; Sauvegarder la valeur 16 bits
LD HL,&C9FB ; Registre 16 bits EI (&FB) + RET (&C9)
LD (&38),HL ; Ecrire en &0038 et &0039 le contenu du registre HL
EI ; Interruption autorisees
;encre 0 - Noir
LD BC,#7F00 ; 3 nops
OUT (c),c ; 4 nops
LD a,&54 ; 2 nops
OUT (c),a ; 4 nops
;encre 1 - Jaune
LD BC,#7F01 ; 3 nops
OUT (c),c ; 4 nops
LD a,&43 ; 2 nops
OUT (c),a ; 4 nops
;encre 2 - Vert citron
LD BC,#7F02 ; 3 nops
OUT (c),c ; 4 nops
LD a,&5A ; 2 nops
OUT (c),a ; 4 nops
;encre 3 - Blanc
LD BC,#7F03 ; 3 nops
OUT (c),c ; 4 nops
LD a,&4B ; 2 nops
OUT (c),a ; 4 nops
.loop
;encre 0
LD BC,#7F00 ; 3 nops
OUT (c),c ; 4 nops
LD B,&F5 ; Se connecter au PPI/8255 port B accessible via &F5xx
.Balayage
IN A,(C) ; Lire le contenu
RRA ; On teste si le bit 0 = 1
JP nc,Balayage ; Si le bit 0 = 0 on boucle jusqu'a la fin du balayage
; On est en haut de l'ecran, on peut continuer le programme
HALT ; Attendre interruption 1
HALT ; Attendre interruption 2
DI ; 1 nop
NOP
; Position vertical (141 coin haut gauche)
;+8 pour ligne graphique suivante
;+64 pour ligne texte suivante
LD BC,141+8+8+8+8+8+8+8
.WaitLoop
NOP ; 1 nop
DEC BC ; 2 nops
LD A,B ; 1 nop
OR C ; 1 nops
JR NZ,WaitLoop; 3 nops, TOTAL 8 nops
; split colors (6 couleurs = 12 nops)
LD b,&55 ; bleu vif par defaut (2 nops)
LD c,&40 ; gris (2 nops)
LD h,&5B ; cyan (2 nops)
LD l,&4C ; rouge
LD d,&4F ; magenta pastel
LD e,&58
; Position horizontal (40 colonne, 1 nop par colonne)
DEFS 53,0
;8 nops invisible + 4 nops border + 40 nops ecran normal + 4 nops border + 8 nops invisible = 64 nops
;SPLIT-RASTERS 1
;8 nops invisible
LD a,64 ;nombre de ligne graphique (2 nops)
splitrasterligne211:
DEFS 6,0
;4 nops border gauche
OUT (c),b ; 4 nops
;40 nops - ecran normal
NOP
OUT (c),c ; 4 nops
OUT (c),h ; 4 nops
OUT (c),l ; 4 nops
OUT (c),d ; 4 nops
OUT (c),e ; 4 nops
NOP
NOP
OUT (c),d ; 4 nops
OUT (c),l ; 4 nops
OUT (c),h ; 4 nops
OUT (c),c ; 4 nops
OUT (c),b ; 4 nops
NOP
;8 nops invisible
DEFS 6,0
;total 60 NOPS
;engendrera un decalage de 4 nops sur la prochaine boucle
DEC a ; 1 nop
jr nz,splitrasterligne211 ;3 nops
;SPLIT-RASTERS 2
;8 nops invisible + 4 nops border + 40 nops ecran normal + 4 nops border + 8 nops invisible = 64 nops
;8 nops invisible
LD a,120 ;nombre de ligne graphique (2 nops)
splitrasterligne212:
;DEFS 5,0 ;-1 pour compenser le decalage
NOP
LD c,&56 ; vert
LD h,&4E ; orange (2 nops)
;4 nops border gauche
;OUT (c),b ; 4 nops
LD l,&4A ; jaune (2 nops)
LD d,&52 ; vert vif
;40 nops - ecran normal
NOP
OUT (c),c ; 4 nops
DEFS 5,0
OUT (c),h ; 4 nops
DEFS 6,0
OUT (c),l ; 4 nops
DEFS 5,0
OUT (c),d ; 4 nops
DEFS 5,0
NOP
OUT (c),b ; 4 nops
NOP
;8 nops invisible
DEFS 7,0 ;+1 pour compenser le decalage
;total 60 NOPS
;engendrera un decalage de 4 nops sur la prochaine boucle
DEC a ; 1 nop
jr nz,splitrasterligne212 ;3 nops
OUT (c),b ; couleur d'origine (4 nops)
EI ; 1 nop
; Test touche
.Touche21
LD BC,&F40E
OUT (C),C
LD BC,&F6C0
OUT (C),C
XOR A
OUT (C),A
LD BC,&F792
OUT (C),C
LD BC,&F645 ;ligne 5
OUT (C),C
LD B,&F4
IN A,(C)
LD BC,&F782
OUT (C),C
LD BC,&F600
OUT (C),C
RLA ;Charge dans A la valeur du bit 7 (touche ESPACE)
JR NC,Sortir21
LD BC,&F40E
OUT (C),C
LD BC,&F6C0
OUT (C),C
XOR A
OUT (C),A
LD BC,&F792
OUT (C),C
LD BC,&F649 ;ligne 9
OUT (C),C
LD B,&F4
IN A,(C)
LD BC,&F782
OUT (C),C
LD BC,&F600
OUT (C),C
RLA ;Charge dans A la valeur du bit 7 (touche DEL)
RLA ;Charge dans A la valeur du bit 6 (touche JOY_FIRE0)
RLA ;Charge dans A la valeur du bit 5 (touche JOY_FIRE1 Z)
RLA ;Charge dans A la valeur du bit 4 (touche JOY_FIRE2 X)
JP C,loop ;Si TIR du joystick n'a pas etait enfonce on boucle
.Sortir21
;retour au BASIC
DI ; Desactiver les interruptions
LD HL,(Sauver) ; Restauration des anciennes interruptions
LD (&38),hl ; Ecrire
EI ; Interruption autorisees
RET
.Sauver
DW #0000
;00 = &54 noir
;01 = &44 bleu
;02 = &55 bleu vif
;03 = &5C rouge fonce
;04 = &58 magenta
;05 = &5D mauve
;06 = &4C rouge vif
;07 = &45 pourpre
;08 = &4D magenta vif
;09 = &56 vert
;10 = &46 turquoise
;11 = &57 bleu ciel
;12 = &5E jaune
;13 = &40 gris
;14 = &5F bleu pastel
;15 = &4E orange
;16 = &47 rose
;17 = &4F magenta pastel
;18 = &52 vert vif
;19 = &42 vert marin
;20 = &53 turquoise vif
;21 = &5A vert citron
;22 = &59 vert pastel
;23 = &5B turquoise pastel
;24 = &4A jaune vif
;25 = &43 jaune pastel
;26 = &4B blanc
NOTICE TEXTE n° 2 (5.09 Ko) 
ORG &8000
WRITE DIRECT "SPLIT2.BIN"
LD bc,0
CALL &BC38
;ECRAN 21
XOR a
LD bc,0
CALL &BC32
LD a,1
LD bc,&1818
CALL &BC32
LD a,2
LD bc,&1515
CALL &BC32
LD a,3
LD bc,&1A1A
CALL &BC32
DI ; Desactiver les interruptions
LD HL,(&38) ; Lire l'ancienne interruption
LD (Sauver),HL ; Sauvegarder la valeur 16 bits
LD HL,&C9FB ; Registre 16 bits EI (&FB) + RET (&C9)
LD (&38),HL ; Ecrire en &0038 et &0039 le contenu du registre HL
EI ; Interruption autorisees
;encre 0 - Noir
LD BC,#7F00 ; 3 nops
OUT (c),c ; 4 nops
LD a,&54 ; 2 nops
OUT (c),a ; 4 nops
;encre 1 - Jaune
LD BC,#7F01 ; 3 nops
OUT (c),c ; 4 nops
LD a,&43 ; 2 nops
OUT (c),a ; 4 nops
;encre 2 - Vert citron
LD BC,#7F02 ; 3 nops
OUT (c),c ; 4 nops
LD a,&5A ; 2 nops
OUT (c),a ; 4 nops
;encre 3 - Blanc
LD BC,#7F03 ; 3 nops
OUT (c),c ; 4 nops
LD a,&4B ; 2 nops
OUT (c),a ; 4 nops
.loop
;encre 0
LD BC,#7F00 ; 3 nops
OUT (c),c ; 4 nops
LD B,&F5 ; Se connecter au PPI/8255 port B accessible via &F5xx
.Balayage
IN A,(C) ; Lire le contenu
RRA ; On teste si le bit 0 = 1
JP nc,Balayage ; Si le bit 0 = 0 on boucle jusqu'a la fin du balayage
; On est en haut de l'ecran, on peut continuer le programme
HALT ; Attendre interruption 1
HALT ; Attendre interruption 2
DI ; 1 nop
;NOP ;(la seule difference c'est le decalage d'un nop)
; Position vertical (141 coin haut gauche)
;+8 pour ligne graphique suivante
;+64 pour ligne texte suivante
LD BC,141+8+8+8+8+8+8+8
.WaitLoop
NOP ; 1 nop
DEC BC ; 2 nops
LD A,B ; 1 nop
OR C ; 1 nops
JR NZ,WaitLoop; 3 nops, TOTAL 8 nops
; split colors (6 couleurs = 12 nops)
LD b,&55 ; bleu vif par defaut (2 nops)
LD c,&40 ; gris (2 nops)
LD h,&5B ; cyan (2 nops)
LD l,&4C ; rouge
LD d,&4F ; magenta pastel
LD e,&58
; Position horizontal (40 colonne, 1 nop par colonne)
DEFS 53,0
;8 nops invisible + 4 nops border + 40 nops ecran normal + 4 nops border + 8 nops invisible = 64 nops
;SPLIT-RASTERS 1
;8 nops invisible
LD a,64 ;nombre de ligne graphique (2 nops)
splitrasterligne211:
DEFS 6,0
;4 nops border gauche
OUT (c),b ; 4 nops
;40 nops - ecran normal
NOP
OUT (c),c ; 4 nops
OUT (c),h ; 4 nops
OUT (c),l ; 4 nops
OUT (c),d ; 4 nops
OUT (c),e ; 4 nops
NOP
NOP
OUT (c),d ; 4 nops
OUT (c),l ; 4 nops
OUT (c),h ; 4 nops
OUT (c),c ; 4 nops
OUT (c),b ; 4 nops
NOP
;8 nops invisible
DEFS 6,0
;total 60 NOPS
;engendrera un decalage de 4 nops sur la prochaine boucle
DEC a ; 1 nop
jr nz,splitrasterligne211 ;3 nops
;SPLIT-RASTERS 2
;8 nops invisible + 4 nops border + 40 nops ecran normal + 4 nops border + 8 nops invisible = 64 nops
;8 nops invisible
LD a,120 ;nombre de ligne graphique (2 nops)
splitrasterligne212:
;DEFS 5,0 ;-1 pour compenser le decalage
NOP
LD c,&56 ; vert
LD h,&4E ; orange (2 nops)
;4 nops border gauche
;OUT (c),b ; 4 nops
LD l,&4A ; jaune (2 nops)
LD d,&52 ; vert vif
;40 nops - ecran normal
NOP
OUT (c),c ; 4 nops
DEFS 5,0
OUT (c),h ; 4 nops
DEFS 6,0
OUT (c),l ; 4 nops
DEFS 5,0
OUT (c),d ; 4 nops
DEFS 5,0
NOP
OUT (c),b ; 4 nops
NOP
;8 nops invisible
DEFS 7,0 ;+1 pour compenser le decalage
;total 60 NOPS
;engendrera un decalage de 4 nops sur la prochaine boucle
DEC a ; 1 nop
jr nz,splitrasterligne212 ;3 nops
OUT (c),b ; couleur d'origine (4 nops)
EI ; 1 nop
; Test touche
.Touche21
LD BC,&F40E
OUT (C),C
LD BC,&F6C0
OUT (C),C
XOR A
OUT (C),A
LD BC,&F792
OUT (C),C
LD BC,&F645 ;ligne 5
OUT (C),C
LD B,&F4
IN A,(C)
LD BC,&F782
OUT (C),C
LD BC,&F600
OUT (C),C
RLA ;Charge dans A la valeur du bit 7 (touche ESPACE)
JR NC,Sortir21
LD BC,&F40E
OUT (C),C
LD BC,&F6C0
OUT (C),C
XOR A
OUT (C),A
LD BC,&F792
OUT (C),C
LD BC,&F649 ;ligne 9
OUT (C),C
LD B,&F4
IN A,(C)
LD BC,&F782
OUT (C),C
LD BC,&F600
OUT (C),C
RLA ;Charge dans A la valeur du bit 7 (touche DEL)
RLA ;Charge dans A la valeur du bit 6 (touche JOY_FIRE0)
RLA ;Charge dans A la valeur du bit 5 (touche JOY_FIRE1 Z)
RLA ;Charge dans A la valeur du bit 4 (touche JOY_FIRE2 X)
JP C,loop ;Si TIR du joystick n'a pas etait enfonce on boucle
.Sortir21
;retour au BASIC
DI ; Desactiver les interruptions
LD HL,(Sauver) ; Restauration des anciennes interruptions
LD (&38),hl ; Ecrire
EI ; Interruption autorisees
RET
.Sauver
DW #0000
;00 = &54 noir
;01 = &44 bleu
;02 = &55 bleu vif
;03 = &5C rouge fonce
;04 = &58 magenta
;05 = &5D mauve
;06 = &4C rouge vif
;07 = &45 pourpre
;08 = &4D magenta vif
;09 = &56 vert
;10 = &46 turquoise
;11 = &57 bleu ciel
;12 = &5E jaune
;13 = &40 gris
;14 = &5F bleu pastel
;15 = &4E orange
;16 = &47 rose
;17 = &4F magenta pastel
;18 = &52 vert vif
;19 = &42 vert marin
;20 = &53 turquoise vif
;21 = &5A vert citron
;22 = &59 vert pastel
;23 = &5B turquoise pastel
;24 = &4A jaune vif
;25 = &43 jaune pastel
;26 = &4B blanc