CODING ★ L'OVERSCAN ★

Graphic - 40 - Overscan (SOS Programmeurs)

OVERSCAN CHAPITE 1

Enfin nous y-sommes ! Il fallait bien que je vous explique comment fonctionne le CRTC avant d'y parvenir car tout passe par lui ! Alors pour ouvrir l'écran à l'overscan c'est tout simple . Bien qu'on puisse affecter une RAM écran de 32K , le cadre en plastique qui entoure votre moniteur est un peu trop petit pour y loger tout ça ! Le maximum autorisé sera de 92 octets (46 colonnes CRTC) et 33 lignes caractère (264 lignes écran) . Ces dimensions laissent un petit bout de bordure visible mais si on pousse d'encore une colonne ou une ligne , une partie de l'affichage se fera derrière le plastique !

Pour donner à l'écran cette nouvelle dimension , vous mettrez :

  • 46 (Colonnes) dans R1
  • 49 dans R2 (Ce qui avance la synchro horizontale de 3 colonnes)
  • 33 (lignes) dans R6
  • 34 Dans R7 (Ce qui avance la synchro verticale de 4 colonnes)

Faites l'essai avec le programme CRTC (Autre face SOS7) et vous verrez l'écran s'éclater joyeusement . Reste à faire disparaître la répétition de l'écran vers le bas ! Il suffit de mettre 60 dans le registre R12 et vous aurez un écran de 32K commençant en #C000 !

Et c'est là que ça devient caca ! Avec un écran de 32K en #C000 , la seconde zone de 16K s'étendra de 0 à #3FFF . Comme la zone de 0 à #170 est utilisée par le système bonjour les dégts ...

Alors entre #8000 & #C000 ? Dites adieu aux vecteurs et aux paramètres du drive ! Ce secteur est réservé aux spécialistes qui savent réécrire le système d'exploitation dans une zone préservée .

Entre #4000 et #8000 c'est pareil , on bouffe le système et entre 0 et #7FFF on redétruit la zone 0-#170 . Alors on se le met où l'overscan ?? Ne répondez pas svp. Je vais vous le dire .

Comme on n'utilisera jamais les 32K , on le met un peu au-dessus de 0 en décalant le départ de la RAM écran . On peu choisir 3 possibilités :

  • #40C: Donner 14 dans R12 pour adresse 0 , 32K de RAM et décalage de #400 et 6 dans R13 pour décaler encore de 12 octets .
  • #240: Donner 13 dans R12 pour adresse 0 , 32K de RAM et décalage de #200et 32 dans R13 pour décaler encore de 64 octets .
  • #D0 : Donner 12 dans R12 pour adresse 0 , 32K de RAM et 104 dans R13 pour décaler encore de 208 octets .

Je vous entends déjà demander pourquoi toujours décaler la RAM dans R13 alors que vous devriez deviner ... Il y-a une jointure à effectuer entre les 2 zones de 16K (#3FFF/#4000) et si l'adresse #4000 ne correspond pas exactement au début d'une ligne écran , amusez vous donc à calculer les adresses pour afficher un écran ou animer un sprite sur ce chevauchement ! Le décalage de R13 amène l'adresse #4000 sur la colonne la plus à gauche de la ligne où elle se trouve .

A part ça pourquoi pas #600 et des poussières ? Parceque dans ce cas , la seconde zone écran excède un peu 16K et il faudrait réduire la hauteur d'une ligne .

Laquelle des 3 choisir ? #240 et #40C permettent de préserver un petit bout de basic . #D0 détruit tout ce qui est basic mais préserve le système . Les 3 sont donc valables , d'autant plus que la zone écran #C000/#FFFF n'est plus utilisée comme écran et peu contenir une zone programme de même que la zone RAM de #8000 à &A6FF donc , overscan où pas , on dispose encore d'à peu près 28K pour la programmation ou pour sauvegarder une partie de la RAM basse pendant l'overscan .

Pour les 3 programmes overscan qui figurent dans le chapitre suivant j'ai choisi l'adresse #D0 . Ce choix s'explique par le fait que le programme d'affichage doit charger un fichier écran de 24K EN DEHORS DE LA ZONE OVERSCAN car il faut répartir ces 24K dans 32K écran et toute location trop basse entrainerait un recouvrement des données et un affichage incorrect . On peut bien sur charger plus bas mais dans ce cas , il faut jongler avec des zones de transit pour pour que tout se passe bien . Autre solution , séparer le fichier overscan en 2 fichiers de 12K , c'est plus simple mais plus long à charger .

Dernière précision vitale ! Comment calculer ADINF et ADSUP avec des écrans à coucher dehors ? C'est relativement aisé . Voici comment modifier les routines classiques :

Ca c'est la version  Pour 92 colonnes
80 colonnes en #C000 en #C000 on fera
;        ;
ADINF LD A,H    ADINF LD A,H
  ADD A,8     ADD A,8
  LD H,A      LD H,A
  RET NC     ; RET NC
  PUSH DE     PUSH DE
  LD DE,#C050    LD DE,#C050+12 ;Puisqu'il y-a 12 colonnes
  ADD HL,DE     ADD HL,DE   ;de plus . Pour un écran en
  POP DE      POP DE   ;88 colonnes devinez donc ?
  RET     ; RET
;       ;
ADSUP LD A,H    ADSUP LD A,H
   SUB 8       SUB 8
  LD H,A      LD H,A
  AND %01000000    AND %01000000
  RET NZ     ; RET NZ
  PUSH DE     PUSH DE
  LD DE,#3FB0    LD DE,#3FB0+12
  ADD HL,DE     ADD HL,DE
  POP DE      POP DE
  RET     ; RET
;

Mais en overscan il faut gérer des adresses différentes de 0 à # 7FFF , il y-à de nombreuses solutions et la plus évidente est celle-ci . Les vecteurs #BC26 & #BC29 font ces calculs et le font sur toute adresse de 0 à #FFFF ! Alors pourquoi se casser la tête surtout quand comme moi on a définitivement voué une haine féroce à toute forme de calcul ? On recopie les bouts de ROM intéressants ce qui nous donnera les 2 nouvelles routines :

;
ADINFUNI LD A,H
  ADD A,8
  LD H,A
  AND #38
  RET NZ
;
  LD A,H
   SUB #40
  LD H,A
  LD A,L
  ADD A,#50 ;A modifier selon la différence entre le nombre de colonnes
  LD L,A ;en plus ou en moins de 80 .
  RET NC
;
  INC H
  LD A,H
  AND 7
  RET NZ
;
  LD A,H
   SUB 8
  LD H,A
  RET
;
ADSUPUNI LD A,H
   SUB 8
  LD H,A
  AND #38
  CP #38
  RET NZ
;
  LD A,H
  ADD A,#40
  LD H,A
  LD A,L
   SUB #50 ;A modifier selon la différence entre le nombre de colonnes
  LD L,A ;en plus ou en moins de 80 .
  RET NC
;
  LD A,H
  DEC H
  AND 7
  RET NZ
;
  LD A,H
  ADD A,8
  LD H,A
  RET
;

Les 3 programmes pour créer vos écrans overscan dans le chapitre suivant .

OVERSCAN CHAPITE 2

Je décris ici les 3 programmes qui permettent de créer et afficher un écran en overscan . Le plus difficile sera de réaliser votre dessin . Il n'existe aucun D.A.O fonctionnant en mode overscan ! Il faut donc ruser et couper l'overscan en 4 .

Ce 1er programme va sauvegarder un à un 4 écrans normaux sur lesquels il définira préalablement une zone de 46 colonnes par 132 lignes ce qui est le quart d'un écran de 92 colonnes par 264 lignes . Un texte repère sera sauvé avec l'écran . Cela nous donnera :

+---------------------+---------------------+
!ECRAN HAUT GAUCHE !ECRAN HAUT DROIT  !
!    ...........!...........    !
!    ...........!...........    !
!    ...........!...........    !
!    ...........!...........    !
+---------------------+---------------------+
!    ...........!...........    !
!    ...........!...........    !
!    ...........!...........    !
!    ...........!...........    !
!      ;!      ;!
!ECRAN BAS GAUCHE  !ECRAN BAS DROIT   !
+---------- ----------+---------------------+

Ou les pointillés figurent les 4 zones de l'écran overscan . Il vous faudra créer votre image en 4 fois à l'intérieur de ces zones et resauvegarder séparément chaque écran . Les 4 fichiers de 17K sont toujours sauvegardés sous les noms OVERSCR1.SCR - OVERSCR2.SCR - OVERSCR3.SCR - OVERSCR4.SCR -

Libre à vous de changer les noms lors de la création du dessin .

Le code source du programme est peu commenté , tout ce qui le concerne se trouve dans les cours de graphisme et les routines disquette .

;
 ORG 41000
;
;- Creation de 4 écrans pour OVERSCAN -
;
  XOR A    ;Remise a zero eventuelle erreur fichier
  LD (FLGERR),A
;
  LD HL,#E280+34 ;Adresse deépart 1er écran
  LD B,46    ;de 46 colonnes par 132 lignes
  LD C,132
;
  PUSH BC
  LD DE,TSC1   ;Afficher texte écran 1 et sauver .
  CALL SAVE
  POP BC
;
  LD HL,#E280   ;Encore 3 a faire de la meme maniere
  PUSH BC
  LD DE,TSC2
  CALL SAVE
  POP BC
;
  LD HL,#C000+34
  PUSH BC
  LD DE,TSC3
  CALL SAVE
  POP BC
;
  LD HL,#C000
  PUSH BC
  LD DE,TSC4
  CALL SAVE
  POP BC
  RET    ;C'est fini
;
;- Marquer la zone overscan et sauver un écran -
;
SAVE PUSH BC   ;Preserver registres
  PUSH HL
  PUSH DE
  LD A,(MODE) ;L'octet de remplissage n'est pas le meme
  LD HL,BCLFLIN+1 ;selon le mode écran choisi cela evite d'avoir
  LD (HL),48   ;un écran a rayures .
  OR A
  JR Z,SETMODE
  LD (HL),255
SETMODE CALL #BC0E
  POP DE
  POP HL
  POP BC
;
BCLFLIN1 PUSH BC   ;Remplissage de la zone écran qui sera
  PUSH HL   ;utilisee par l'overscan
BCLFLIN LD (HL),48
  INC HL
  DJNZ BCLFLIN
  POP HL
  PUSH DE
  CALL #BC26   ;Routine systeme qui fait la meme chose que
  POP DE    ;ADINF mais en plus lent . Ici on n'est pas presse
  POP BC
  DEC C
  JR NZ,BCLFLIN1
  CALL PRT
;
  LD HL,NOMSCR ;Sauver l'ecran , voyez donc notre cours sur les
  LD B,12   ;vecteurs disque dans ce numéro pour comprendre .
  LD DE,34000
  CALL #BC8C
  JR NC,ERRFICH
  LD HL,#C000
  LD DE,#4000
  LD A,2
  CALL #BC98
  JR NC,ERRFICH
  CALL #BC8F
  JR NC,ERRFICH
  LD HL,NOMSCR+7 ;On augmente de 1 le 8eme caractere du nom de fichier
  INC (HL)   ;pour avoir OVERSCR1.SCR , OVERSCR2.SCR , Etc ..
  RET
;
ERRFICH LD (FLGERR),A ;Sort ici si erreur de fichier .
  CALL #BC92
  LD DE,TERFICH
  JP PRT
;
PRT  LD A,(DE)   ;Routine PRINT .
  OR A
  RET Z
  CALL #BB5A
  INC DE
  JR PRT
;
TSC1 DB 31,1,2,"ECRAN HAUT GAUCHE",0
TSC2 DB 31,1,2,"ECRAN HAUT DROITE",0
TSC3 DB 31,1,24,"ECRAN BAS GAUCHE",0
TSC4 DB 31,1,24,"ECRAN BAS DROITE",0
TERFICH DB 31,1,1,"ERREUR FICHIER",0
LIST
NOMSCR DB "OVERSCR1.SCR"
FLGERR DB 0
MODE DB 0
NOLIST
;

Une fois le dessin créé à l'intérieur des 4 écrans séparés , il faut regrouper le tout en un seul fichier utilisable en overscan . Pour cela il faut extraire de chaque écran les portions utiles et les sauvegarder en une seule zone RAM . Voici ce qu'il faut obtenir :

              ; Adresse 10046
               ;.
               ;.
          ; 46 Oct. . 46 Oct.
        ; .
 Adresse 10000 -----> +-------------+-------------+        ; ! OVERSCR1 ! OVERSCR2 !
        ; ! Commence ! Commence !
        ; ! en   ;! en   ;! Hauteur 134 lignes
        ; ! #E280+34 ! #E280   !
        ; !    ; !    ;!
 Adresse 22144 -----> +-------------+-------------+
(10000+92 Col.*134 Lin.)! OVERSCR3 ! OVERSCR4 !
        ; ! Commence ! Commence !
        ; ! en   ;! en   ;! Hauteur 134 lignes
        ; ! #C000+34 ! #C000   !
        ; !    ;!    ;!
        ; +-------------+-------------+

Voici le listing source qui permet d'obtenir ce résultat .

;
;- Extraire et regrouper en un écran de 24K les 4 zones definies par OVERSCR -
;
NOLIST
  ORG 41500
;
  CP 5    ;5 Noms de fichiers a transmettre . 4 a charger
  RET NZ   ;et un a sauver en sortie .
;
  LD B,65   ;RAZ de la zone noms de fichier
  LD HL,NOM1
BCLRAZ LD (HL),0
  INC HL
  DJNZ BCLRAZ
;
  XOR A
  LD (FLGERR),A
;
  LD L,(IX+0) ;Passer le nom de sauvegarde . (Voyez les routines
  LD H,(IX+1) ;du drive dans ce numéro pour l'explication sur
  LD C,(HL)   ;le passage des parametres)
  INC HL
  LD E,(HL)
  INC HL
  LD D,(HL)
;
  LD HL,NOMSAV
  LD (HL),C   ;Stocker la longueur du nom de sauvegarde
  INC HL
  EX DE,HL   ;et le nom du fichier a la suite .
  LD B,0
  LDIR
;
  LD HL,NOM1
  LD B,4
;
TRANS4N PUSH HL
  LD L,(IX+8) ;Passer les noms des 4 fichiers
  LD H,(IX+9) ;En pensant que pour conserver l'ordre
  LD C,(HL)   CALL àfic(1)$,àfic(2)$,àfic(3)$,àfic(4)$,àficsav$
  INC HL   ;Il faut commencer par le pointeur le plus haut
  LD E,(HL)   ;et decrementer !
  INC HL
  LD D,(HL)
;
  POP HL   ;Adresse du nom en cours
  PUSH BC
  PUSH HL
;
  LD (HL),C   ;Ranger longeur dans le 1er octet nom
  INC HL
  EX DE,HL   ;Copier le nom a la suite
  LD B,0
  LDIR
;
  POP HL   ;Adresse du nom en cours
  LD BC,13
  ADD HL,BC   ;Pointer le nom suivant
  POP BC
;
  DEC IX
  DEC IX
  DJNZ TRANS4N ;4 fois .
;
;- Charger et transferer les fichiers -
;
  LD HL,NOM1
  CALL LOAD
  LD HL,#E280+34 ;Adresse de la portion écran haut gauche
  LD DE,10000   ;Debut de la zone overscan
  CALL COPYSCR
;
  LD HL,NOM2
  CALL LOAD
  LD HL,#E280   ;Adresse de la portion écran haut droite
  LD DE,10046   ;Debut de la zone overscan + decalage de 46 octets
  CALL COPYSCR
;
  LD HL,NOM3
  CALL LOAD
  LD HL,#C000+34 ;Adresse de la portion écran bas gauche
  LD DE,22144   ;Milieu de la zone overscan
  CALL COPYSCR
;
  LD HL,NOM4
  CALL LOAD
  LD HL,#C000   ;Adresse de la portion écran bas droite
  LD DE,22190   ;Milieu de la zone overscan + decalage de 46 octets
  CALL COPYSCR
;
;- Sauvegarde de la zone overscan -
;
  LD HL,TPUTDIS ;Attendre disquette
  CALL PRT
  CALL #BB06
;
  LD HL,NOMSAV  ;Sauvegarde de la zone overscan
  LD B,(HL)   ;Longeur du nom
  INC HL    ;Adresse du nom
  LD DE,5000   ;Buffer drive
  CALL #BC8C
  JR NC,ERRDRIV
  LD HL,10000   ;Adresse debut sauvegarde
  LD DE,24298   ;Longueur a sauver
  LD BC,0
  LD A,2    ;Type binaire
  CALL #BC98
  JR NC,ERRDRIV
  CALL #BC8F
  JR NC,ERRDRIV
  RET
;
;- Routine de transfert -
;
COPYSCR LD B,132   ;132 lignes (264/2)
COPY PUSH BC
  PUSH HL    ;Adresse source dans l'ecran
  LD BC,46   ;46 colonnes a transferer
  LDIR
  LD HL,46   ;Et on saute 46 colonnes pour laisser la place
  ADD HL,DE   ;a la moitie opposee
  EX DE,HL   ;Remet adresse suivante de la zone overscan dans DE
  POP HL    ;Recuperer adresse source écran
  CALL #BC26   ;Et pointer la ligne en dessous
  POP BC
  DJNZ COPY   ;On recommence pour 132 colonnes
  RET
;
;- Routine de chargement des écrans -
;
LOAD LD B,(HL)  ;Charger un des 4 fichiers . Longueur du nom dans B
  INC HL   ;Puis pointer sur le nom
  LD DE,#C000 ;Buffer drive
  CALL #BC77 ;Ouvrir fichier
  JR NC,ERRDRIV
  LD HL,#C000 ;Adresse chargement
  CALL #BC83
  JR NC,ERRDRIV
  CALL #BC7A
  JR NC,ERRDRIV
  RET
;
ERRDRIV LD (FLGERR),A ;Sort ici si erreur drive
  CALL #BC7D
  CALL #BC92
  LD HL,TERRDRIV
  JP PRT
;
PRT  LD A,(HL)
  OR A
  RET Z
  CALL #BB5A
  INC HL
  JR PRT
;
TERRDRIV DB 31,1,1," ERREUR DISQUE !",7,0
TPUTDIS DB 31,1,1," PLACER DISQUETTE",10,13
  DB " SAUVEGARDE IMAGE",10,13
  DB " OVERSCAN ",10,13
  DB " ET PRESSER UNE",10,13
  DB " TOUCHE",7,0
LIST
NOM1 DS 13
NOLIST
NOM2 DS 13
NOM3 DS 13
NOM4 DS 13
NOMSAV DS 13
LIST
FLGERR DB 0
NOLIST
;

Et pour finir , il ne reste plus qu'à afficher l'overscan . Nous allons avoir quelques problemes d'emplacement memoire ... Comme expliqué dans le chapitre 1 , l'adresse la plus utilisable est #D0 alors utilisons la comme départ de la nouvelle RAM écran . Le 1er bloc de 16K commencera en #D0 , le second en #4000 . La RAM écran d'origine en #C000 ne sera pas utilisée par le CRTC . Nous y recopierons donc le contenu d'origine à partir de #D0 et sur 16K avant d'activer le CRTC . Avant de quitter le programme , cette zone sera ramenée de #C000 vers #D0 avant de provoquer le reset du CRTC . Nous pourrons
ainsi retrouver intact un éventuel programme basic ou tout autre code situé en RAM basse pour peu qu'il n'excède pas 16K .

L'écran overscan ne remplissant pas exactement les 32K , il faudra le transférer ligne par ligne en #D0 puis en #4000 par LDIR . Pour éviter des chevauchements désagréables lors de LDIR , il sera chargé en 17000 puis transféré . Cela nous donne :

#D0 -----> 16999 : Ecran overscan .
17000 ---> 41298 : Chargement overscan .
41500 ---> 42500 : Programmes overscan .

Donc toute la RAM est occupée et si un code binaire doit être ensuite utilisé , il faut d'abord effectuer le transfert et l'affichage overscan et seulement après , charger le code en #8000 . Si l'on ne souhaite pas préserver la RAM basse au cours de cette opération , on pourra utiliser les 16K en #C000 comme zone de programmation .

;
;- Charger et afficher un écran en overscan -
;
;
  ORG 42000
NOLIST
  CP 1    ;1 Parametre pour le nom de fichier .
  RET NZ
;
  CALL LOADSCR ;Charger l'ecran AVANT TOUT .
  RET NC
;
  CALL SAVERAM ;Sauver la RAM basse en #C000 (L'ancien écran)
  LD HL,TOVERCRT ;Puis passer l'ecran en 92 colonnes 264 lignes
  CALL OUTCRTC ;avec #D0 comme deépart .
;
  CALL AFFSCR ;L'afficher .
;
  CALL #BB06  ;Attendre une touche
  LD HL,TRESTORE ;Remettre le CRTC aux normes CPC
  CALL OUTCRTC
  JP RESTORAM ;Recuperer la RAM basse et c'est fini
;
LOADSCR LD L,(IX+0) ;Passer nom de fichier
  LD H,(IX+1)
  LD B,(HL)   ;Longueur dans B
  INC HL
  LD E,(HL)
  INC HL
  LD D,(HL)
;
  EX DE,HL   ;Adresse du nom
  LD DE,#1000 ;Buffer
  CALL #BC77
  RET NC
;
  LD HL,17000 ;Charger en 17000
  CALL #BC83
  CALL #BC7A
  RET
;
AFFSCR LD B,255   ;264 lignes ca ne tient pas dans un registre 8 bits !
  LD C,92   ;On procedera en 2 fois .
  LD DE,#D0   ;Adresse de l'ecran
  LD HL,17000 ;Adresse de la zone overscan
  CALL BCLT1  ;Transferer 255 lignes
  LD B,9   ;Puis les 9 qui manquent pour faire 264
;
BCLT1 PUSH DE   ;Preserver adresse écran
  PUSH BC
  LD B,0
  LDIR    ;Transferer 1 ligne
  POP BC
  POP DE
;
  PUSH HL   ;ADINFUNI est une routine qui a le meme effet que
  EX DE,HL   ;ADINF mais calcule le decalage écran pour toute
  CALL ADINFUNI ;adresse de 0 a #FFFF . Autre avantage , lorsque
  LD A,H   ;le 1er groupe est depasse (de 0 à #3FFF) H revient
  OR A    ;a 0 ce qui permet de tester rapidement si on doit
  JR NZ,OKAFF ;passer au second groupe en #4000
  LD H,#40
OKAFF EX DE,HL
  POP HL
  DJNZ BCLT1
  RET
;
OUTCRTC LD BC,#BC00 ;Activation du CRTC
BCLOUTC LD A,(HL)
  CP #FF
  RET Z
  OUT (C),C   ;Selection des port #BC00 a #BC12
  INC B
  OUT (C),A   ;Port BDxx envoyer l'octet voulu .
  DEC B    ;Port #BCnn
  INC C    ;incremente
  INC HL   ;Pointer octet CRTC suivant .
  JR BCLOUTC
;
ADINFUNI LD A,H   ;Routine ADINF speciale
  ADD A,8
  LD H,A
  AND #38
  RET NZ
;
  LD A,H
   SUB #40
  LD H,A
  LD A,L
  ADD A,#5C
  LD L,A
  RET NC
;
  INC H
  LD A,H
  AND 7
  RET NZ
;
  LD A,H
   SUB 8
  LD H,A
  RET
;
RESTORAM LD DE,#D0 ;Recuperer la RAM depuis #C000
  LD HL,#C000
  JR TRANS
;
SAVERAM LD HL,#D0 ;Sauver la RAM en #C000
  LD DE,#C000
TRANS LD BC,#4000
  LDIR
  RET
;
;ci-dessous : La 1ere ligne indique les registres du CRTC concernes .
;La seconde les valeurs a envoyer aux registres correspondants pour
;activer l'overscan en #D0 .
;La troisieme les valeurs pour restaurer le CTRC aux normes CPC
;
;    ;0 1 2 3 4 5 6 7 8 9 10 11 12 13
TOVERCRT DB 62,46,48,14,38,00,32,34,00,07,00,00,12,104,#FF
TRESTORE DB 63,40,46,14,38,00,25,30,00,07,00,00,48,00,#FF
;
list
db 0

A suivre dans SOS8 ....

SOS PROGRAMMEURS

★ ANNÉE: ???
★ AUTEUR: MICHEL MAIGROT

Page précédente : Graphic - 30 - Etude du Crtc
★ AMSTRAD CPC ★ DOWNLOAD ★

Other platform tool:
» SOS7OVERSCANDATE: 2011-06-03
DL: 563
TYPE: ZIP
SiZE: 14Ko
NOTE: 40 Cyls
.HFE: Χ

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

Lien(s):
» Coding Src's » Decompactage d'un ecran OCP
» Coding Src's » Sierpinski-Dreiecke (CPC Amstrad International)
» Coding Src's » Kreisbeschleunigung (Schneider Aktiv)
» Applications » Initiation à l'Overscan : Runstrad Disk Overscan
» Applications » Proverscan
» Coding Src's » Interlace Demo
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/c
Page créée en 751 millisecondes et consultée 3352 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.