source: vital-to8-sdk/samples/C/test.c @ 1

Last change on this file since 1 was 1, checked in by svn, 6 years ago

Import initial

File size: 3.6 KB
Line 
1/*
2 * fills screen with vertical lines
3 */
4
5#asm
6(main)test.asm
7        ORG $A000
8#endasm
9
10char toto[5];
11
12int
13main() {
14
15        char* i;
16        for (i=0x4000;i<0x5F40;i++) {
17                *i=0xAA;
18        }
19        if (toto[2]=='a') exit();
20        while (1);
21}
22
23#asm
24__init
25          LDA    #$60     | Fixe le
26          TFR    A,DP     | DP $60
27          ORCC   #$50     Gel des interruptions
28          CLR    $6019    Plus d'interruptions
29          CLR    $60D1    Reset du basic demande
30          LDB    $E7E7    |
31          ANDB   #$EF     | Commutation RAM par PIA
32          STB    $E7E7    |
33          LDB    #$F0      | Les terminateurs
34          STB    $601A     | de ligne pointent
35          STB    $601C     | desormais en ROM
36          STB    $601E     |
37          RTS
38
39  *--------------------------------------*
40  * Module de chargement pour un fichier *
41  * Entrees:                             *
42  * A = Type du fichier                  *
43  * B = Flag du fichier ($00/$FF)        *
44  * X = Pointeur sur nom de fichier      *
45  * U = Adresse d'implantation           *
46  *--------------------------------------*
47__load
48         STD    $60EB   Type de fichier   
49         STX    $60E7   Nom du fichier   
50         STU    $60F1   Adr d'implantation
51  * Chargement de la FAT                 
52         JSR    $E00D   Charge la FAT     
53         BCS    ERRIO   Si "I/O Error"   
54  * Recherche du fichier                 
55         LDA    #1      | Initialise     
56         STA    $60F0   | en LOAD         
57         JSR    $E010   Recherche fichier
58         TST    $60F9   | Si $60F9 a 0,   
59         BEQ    ERRNF   | fich non trouv
60  * Convertit numero de bloc             
61  LOAD0  JSR    $E01F   Convertit bloc   
62         STB    $604B   Initialise piste 
63         LDX    $60ED   Pointeur sur FAT 
64         LDB    $60F6   Bloc courant     
65         INCB           | Bloc           
66         LDB    B,X     | suivant         
67         STB    $60F6   Sauve le bloc     
68         CMPB   #$C0    | Si dernier bloc,
69         BHI    LOAD1   | recupre taille
70         LDB    #$08    8 secteurs a charg
71  LOAD1  ANDB   #$0F    Isole taille bloc
72         STA    $604C   Sauve premier bloc
73         ADDB   $604C   Ajoute dpart bloc
74         DECB           Ajuste dern bloc 
75         STB    $60F3   Sauve dernier bloc
76         LDU    $60F1   Rcupre ptr mem 
77  * Charge les secteurs                   
78  LOAD2  JSR    $E82A   Charge le secteur
79         BCS    ERRIO   Si "I/O Error"   
80         LDX    $604F   Ptr buffer secteur
81         LDA    $604C   | Si secteur pas 
82         CMPA   $60F3   | secteur maximum,
83         BNE    LOAD3   | passe           
84         LDA    $60F6    | Si dernier     
85         CMPA   #$C0     | secteur du     
86         BHI    LOAD4    | fichier, sort 
87         BSR    TFR     Transfre donnes
88         STU    $60F1   Sauve implantation
89         BRA    LOAD0   Bloc suivant     
90  LOAD3  BSR    TFR     Transfre donnes
91         INC    $604C   Secteur + 1       
92         BRA    LOAD2   Secteur suivant   
93  * Chargement dernier secteur et sortie 
94  LOAD4  LDD    $60F7   Taille dern sect 
95         BEQ    LOAD5   Si 0, sort       
96         BSR    TFR0    Transfere donnees
97  LOAD5  CLRA           C de CC  0       
98         RTS             |               
99                                         
100  * Transfert des donnes                 
101  TFR    LDB    $6058    | Ajuste taille 
102         COMB            | maximum du     
103         ORB    #$80     | secteur       
104  TFR0   LDA    ,X+     |                 
105         STA    ,U+     | Transfere       
106         DECB           | les donnes     
107         BNE    TFR0    |                 
108  TFR1   RTS             |               
109#endasm
110
Note: See TracBrowser for help on using the repository browser.