; Hello World VG5000 ; ; Faire un HELLO WORLD sous VG5000 n'est pas si evident que cela, car la machine ; ne propose pas un vecteur systeme simple pour afficher un caractere. Il y a bien ; le vecteur &95, mais comme il ne passe pas par l'intermediaire du buffer ecran ; (&4000-&47CF), des qu'on rend la main au basic, le texte s'efface. ; La methode utilisee consiste a poker dans le fameux buffer ecran gere par le ; systeme les caracteres et codes de controle. ; Cet exemple efface l'ecran, et affiche sur la premiere ligne caractere un texte. ; Assembler le source sous WINAPE. ; Lancer l'emulateur DcVG5K. ; En Basic ; > taper la commande CLEAR 100,&"6FFF" ; - Touche F9 pour acceder au mode "Mise au point" ; Dans la zone desassemblage - dump - patch ; > Saisir dans la case adresse 7000 ; - cliquer sur le bouton "charger un fichier binaire" ; - Selectionner le fichier HELLO.BIN. ; - Fermer la fenetre de mise au point ; de retour en Basic : ; Taper la commande CALL &"7000" ORG &7000 NOLIST WRITE "HELLO.BIN" JP main base_video equ &4000 texte db "Hello VG5000 World !",&00 main DI PUSH IX ; on desactive les interruptions et on sauvegarde les registres PUSH HL ; IX et HL pour pouvoir revenir proprement au Basic a la fin de la ; routine. CALL &9E ; vecteur effacement ecran LD DE,texte ; pointeur sur le texte qu'on veut afficher LD HL,base_video+2 ; on pointe sur le 1er caractere affichable de la ram video, LD A,(DE) ; les deux premiers octets etant reserves pour la commande DELIM LD B,&0 ; Selection mode texte (Bit 7 a 0) couleur noire du texte (bit 0,1,2 a 0) main_1 INC DE LD (HL),A INC HL LD (HL),B INC HL LD A,(DE) AND A JR NZ,main_1 POP HL ; retour Basic POP IX EI RET