source: thomson/code/3rdparty/sources2-hcl/FORMAT.ASM@ ceffc47

main
Last change on this file since ceffc47 was ceffc47, checked in by Adrien Destugues <pulkomandy@…>, 10 years ago

Add that collection of 3rdparty source I had lying on my disk for some time...

git-svn-id: svn://localhost/thomson@51 85ae3b6b-dc8f-4344-a89d-598714f2e4e5

  • Property mode set to 100644
File size: 5.2 KB
Line 
1FTRACK EQU 01 première piste
2LTRACK EQU 04 dernière piste
3SECTOR EQU 10 secteurs par piste
4SIZE EQU 2 256oct par secteur
5LACE EQU 1 entrelacement
6
7 ORG $9800
8FORMAT PSHS CC,A,B,DP,X,Y,U
9 ORCC #$50
10 JSR >$E09D init DP, X et <4E
11 JSR >$E0A7 allume la LED
12 LDA #FTRACK
13 STA <$4B
14 JSR >$E45A lance le moteur
15 BCS RETURN
16 JSR >$E134 positionne piste 0
17 BCS RETURN
18 JSR >$E521 attente
19 BCS RETURN
20 JSR >$E452 avance jusqu'à la
21 BCS RETURN piste de départ
22
23 BSR SECLST liste secteurs
24NXTTRK BSR IDENTF
25 LDX #$E7D0
26 JSR >$E45A
27 BSR ONETRK formate une piste
28 LDA <$4B
29 INCA
30 STA <$4B
31 CMPA #LTRACK+1
32 BEQ RETURN
33 JSR >$E47A
34 BRA NXTTRK
35RETURN JMP >$E08A
36
37SECLST LDX #BUFFER construit la
38 LDB #SECTOR liste des secteurs
39 CLR ,X+ sur chaque piste
40 DECB d'après la valeur
41 BNE *-3 de l'entrelacement
42
43 LDX #BUFFER
44 LDA #1 secteur courant
45 LDB #LACE
46INSSEC STA ,X insère le secteur
47 LEAX B,X dans la liste
48 INCA
49 CMPA #SECTOR casé tous secteurs
50 BHI LISTOK => fin du parcours
51NXTNOD CMPX #BUFFER+SECTOR
52 BLO NOMODU
53 LEAX -SECTOR,X modulo SECTOR
54NOMODU TST ,X place libre dans
55 BEQ INSSEC la liste => case !
56 LEAX 1,X
57 BRA NXTNOD ...cherche place
58LISTOK RTS
59
60
61IDENTF LDX #BUFFER prépare les champs
62 LDU #BUFFER+SECTOR
63IDNSEC LDB ,X+ d'identification
64 BEQ IDEND
65 LDA <$4B
66 STA ,U numéro de piste
67 LDA <$49
68 ANDA #1
69 STA 1,U numéro de face
70 STB 2,U numéro de secteur
71 LDY #4
72 LDA #SIZE
73 STA 3,U longueur secteur
74 LDD #$B230
75 JSR >$E364
76 STD ,U++ contrôle CRC
77 BRA IDNSEC
78IDEND RTS
79
80
81******** Champ d'identification ********
82
83ONETRK LDA #SECTOR
84 PSHS A
85 LDU #BUFFER+SECTOR
86 JSR >$E341
87INDEX LDB 1,X
88 BITB #$40 détection d'index
89 BEQ INDEX
90 LDB 3,X lecture en RDATA
91 LDB ,X
92 BPL *-4
93 LDB ,X
94 BPL *-2
95 LDD #$48FF configuration =
96 STD 3,X mots de données 48
97 LDB #4
98 STB ,X autorisation Write
99
100 LDA #22
101H22X48 LDB ,X
102 BPL *-2
103 LDB #$48 écrit 22 fois $48
104 STB 3,X
105 DECA
106 BNE H22X48 (@ ESPACES)
107
108ONESEC
109 LDA #12
110I12X00 LDB ,X
111 BPL *-2
112 CLR 3,X écrit 12 fois $00
113 DECA
114 BNE I12X00 (@ SYNCRO BITS)
115
116 LDB ,X
117 BPL *-2
118 LDD #$A10A configuration =
119 STD 3,X mots de syncro A1
120 LDB ,X
121 BPL *-2
122 STA 3,X écrit 3 fois $A1
123 LDB ,X
124 BPL *-2
125 STA 3,X (@ SYNCRO CARACTR)
126
127 LDB ,X
128 BPL *-2
129 LDD #$FEFF configuration =
130 STD 3,X mots de données FE
131 LDA #6
132WIDENT LDB ,X écrit $FE et les
133 BPL *-2 6 octets du champs
134 LDB ,U+ identification
135 STB 3,X (numéro piste,face
136 DECA secteur,longueur,
137 BNE WIDENT contrôle CRC)
138
139 LDA #22
140C22X43 LDB ,X
141 BPL *-2
142 LDB #$43 écrit 22 fois $43
143 STB 3,X
144 DECA
145 BNE C22X43 (@ ESPACES)
146
147
148*********** Champ de données ***********
149
150 LDA #12
151D12X00 LDB ,X
152 BPL *-2
153 CLR 3,X écrit 12 fois $00
154 DECA
155 BNE D12X00 (@ SYNCRO BITS)
156
157 LDB ,X
158 BPL *-2
159 LDD #$A10A configuration =
160 STD 3,X mots de syncro A1
161 LDB ,X
162 BPL *-2
163 STA 3,X écrit 3 fois $A1
164 LDB ,X
165 BPL *-2
166 STA 3,X
167 LDB ,X
168 BPL *-2 (@ SYNCRO CARACTR)
169
170 LDD #$72FF configuration =
171 STD 3,X mots de données 72
172* (@ ADR DEBUT DONN)
173 LDY #SIZE*256
174 PSHS U
175 LDU >DATAS
176FILLSC LDB ,X
177 BPL *-2
178 LDA ,U+
179 STA 3,X remplit le secteur
180 LEAY -1,Y
181 BNE FILLSC (@ DONNEES)
182 CMPU #$E000
183 BNE *+5
184 LDU #$4000
185 STU >DATAS
186 PULS U
187
188 LDB ,X
189 BPL *-2
190 LDB #'L écrit $2B
191 STB 3,X
192 LDB ,X
193 BPL *-2 écrit $F6
194 LDB #'o
195 STB 3,X (@ CONTROLE CRC)
196
197 LDA #23
198L22X4C LDB ,X
199 BPL *-2
200 LDB #$4C écrit 22 fois $4C
201 STB 3,X
202 DECA
203 BNE L22X4C (@ ESPACES)
204
205
206
207 DEC ,S
208 LBNE ONESEC secteur suivant
209
210INDEXF LDA 1,X détection d'index
211 BITA #$40
212 BNE ENDTRK -> piste suivante
213 LDA ,X
214 BPL *-2 remplit de $4E
215 STB 3,X jusqu'à la fin de
216 BRA INDEXF la piste
217ENDTRK PULS A
218 CLR ,X opération = RESET
219 RTS
220
221DATAS FDB $A000
222
223BUFFER RMB SECTOR
224 RMB 6*SECTOR
225
226 END
Note: See TracBrowser for help on using the repository browser.