partie\Numéro nibble
1 : $000, $001, $002, ..., $053, $054, $055. (86 nibbles,
packs de 2 bits regroupés)
2 : $056, $057, $058, ..., $0A9, $0AA, $0AB. (86 nibbles,
packs de 6 bits)
3 : $0AC, $0AD, $0AE, ..., $0FF, $100, $101. (86 nibbles,
packs de 6 bits)
4 : $102, $103, $104, ...,
$155.
(84 nibbles, packs de 6 bits)
|
|
|
|
|
|
|
|
|
|
Fboot + ProDOS |
Download FBoot ProDOS .NIB (gzipped) |
|
Fboot + ProDOS |
Download FBoot ProDOS .DSK (gzipped) |
|
DOS 3.3 |
Download FBoot ProDOS sources (gzipped) |
Disk : Fboot_Prodos_Chip_Select_Sources.dsk
"-" files are DELETED files | "*" files are LOCKED files
----------------------------------------------------------------------
A A$0000 (000000) L$0003 (000003) 002
HELLO
B A$0800 (002048) L$0100 (000256) 003
BOOT1.ORIGINAL
T A$0000 (000000) L$2400 (009216) 036
T.BOOT1.APRES.EOR
B A$0800 (002048) L$0100 (000256) 003
BOOT1.APRES.EOR
B A$8000 (032768) L$103E (004158) 018
READ.ME.ORIGINAL
B A$1000 (004096) L$0050 (000080) 002
READ.ME.DECODE
B A$8000 (032768) L$103E (004158) 018
READ.ME.HACK.BRUNABLE
B A$1000 (004096) L$1000 (004096) 018
BOOT2.ORIGINAL
B A$1000 (004096) L$1000 (004096) 018
BOOT2.APPLEWIN
B A$B000 (045056) L$1000 (004096) 018
BOOT2
T A$0000 (000000) L$3D00 (015616) 061
T.BOOT2
This catalog contains 11 files. 0 were DELETED.
----------------------------------------------------------------------
Lien | Contenu |
Source Boot 1. | |
Message de Chip Select avec l'historique des Fast Boots. | |
Doc du Fast Boot ProDOS. |
:asm
1
2
ORG $0800
3
4 ********************************
5
*
*
6 * BOOT 1 FBOOT PRODOS
2.0 *
7 * CHIP
SELECT *
8 * Source by
Deckard *
9
*
*
10 ********************************
11
12 NB_SECT
EQU $00 ; nbr de
secteurs à charger
13
CPT
EQU $01 ;
compteur couple nibble datas
14 INDICE_WT EQU
$03 ; indice écriture
15 ADR_LOAD
EQU $26 ; et $27
: pointeur adresse implantation
16 SECTOR
EQU $3D ; secteur
à charger
17
18
IN
EQU $0200 ; buffer clavier!
19 BOOT2
EQU $B000 ; lancement fboot
20
21 HC08C
EQU $C08C ; remplit le latch
(indexation slot16)
22 HC0E0
EQU $C0E0 ; $C080,60 ->
motor phase 0 off
23 HC0E2
EQU $C0E2 ; $C082,60 ->
motor phase 1 off
24 HC0E3
EQU $C0E3 ; $C083,60 ->
motor phase 1 on
25 HC0E5
EQU $C0E5 ; $C085,60 ->
motor phase 2 on
26 HC0EC
EQU $C0EC ; $C08C,60 :
remplit le latch slot 6
27
HOME
EQU $FC58 ; efface
écran
28
WAIT
EQU $FCA8 ; tempo
29
30 *-------------------------------
31
32
BOOT1
; Y=0
0800: 01
33
DFB 1
; 1 secteur à charger
34
0801: B9 00 08 35
:1
LDA BOOT1,Y ; recopie le code du boot1
-> buffer clavier!
0804: 49 60
36
EOR #$60 ; après
déprotection EOR
0806: 99 00 02
37
STA IN,Y
0809: 88
38
DEY
080A: D0 F5
39
BNE :1 ;
recopie toute la page
080C: 4C 0F 02
40
JMP BOOT1_GO ; lance la suite sur le buffer
clavier
41
42 *-------------------------------
43
44 * Tout le programme qui suit est normalement codé
par
45 * un EOR #$60. Le programme est difficilement modifiable,
46 * mais en rusant on peut s'en sortir. En effet, comme
47 * protection mémoire, Chip Select a
utilisé le propre
48 * code du boot1 comme référence pour le
décodage des
49 * nibbles. Il y a ainsi 64 octets de ce boot 1 qui sont
50 * intouchables! Il s'agit des octets dont les indices
51 * dans cette page sont compris entre $96 et $FF (enfin
52 * pas tous mais une bonne partie).
53 * Au moindre de ces octets changé, le
décodage des nibbles
54 * sera inexact.
55 * Bien entendu les passages importants comme le
décodage des
56 * nibbles font parties de ces octets intouchables!!
57
58
ORG $020F ; on est dans le
buffer clavier normalement
59
; au moment de l'exec
60
BOOT1_GO
020F: EE F3 03
61
INC $03F3 ; reset provoque
reboot
0212: EE F0 03
62
INC $03F0 ; crash BRK
63
0215: E0 60
64
CPX #$60 ; doit booter
depuis slot 6
0217: D0 FE 65
H0817
BNE H0817 ; sinon, boucle
sans fin
66
0219: 20 A6 02
67
JSR H02A6 ; signature +
passage piste 1
68
021C: A9 00
69
LDA #0
021E: 85 03
70
STA INDICE_WT ; on commencera avec Y=0
0220: A9 B0
71
LDA #>BOOT2
0222: 85 27
72
STA ADR_LOAD+1
0224: A9 10
73
LDA #$10
0226: 85 00
74
STA NB_SECT ; nbr de secteurs à
charger
75
0228: A9 FF
76
LDA #$FF
022A: 85 3D
77
STA SECTOR ; secteur à
charger
78
; +1 -> commence par secteur 0
79
80 ********************************
81 * Traitement d'un secteur
82 ********************************
83
022C: E6 3D 84
H082C
INC SECTOR
022E: A9 AB
85
LDA #$AB ; repositionne
compteur couple nibbles
0230: 85 01
86
STA CPT
0232: C6 00
87
DEC NB_SECT ; un secteur de moins
à charger
0234: F0 6D
88
BEQ H08A3 ; si 0, le compte
est bon -> boot 2
89
90 *-------------------------------
91 * Recherche markers secteur
92 *-------------------------------
93
0236: A2 60
94
LDX #$60 ; slot*16
0238: 18 95
H0838
CLC
; c=0 -> on commence par la phase adresse
96
0239: 08 97
H0839
PHP
; mémorise phase
98
023A: BD 8C C0 99
H083A
LDA HC08C,X ; lecture nibble
023D: 10 FB
100
BPL H083A
101
023F: 49 D5 102
H083F
EOR #$D5 ; 1er marker
0241: D0 F7
103
BNE H083A
104
0243: BD 8C C0 105
H0843
LDA HC08C,X ; lecture nibble
0246: 10 FB
106
BPL H0843
107
0248: C9 AA
108
CMP #$AA ; 2nd marker
024A: D0 F3
109
BNE H083F
110
024C: EA
111
NOP
024D: BD 8C C0 112
H084D
LDA HC08C,X ; lecture nibble
0250: 10 FB
113
BPL H084D
114
0252: C9 96
115
CMP #$96 ; 3eme marker
(test marker adresse par défaut)
0254: F0 09
116
BEQ H085F ; ok marker D5AA96
found (champ adresses)
117
0256: 28
118
PLP
; récupère phase
0257: 90 DF
119
BCC H0838 ; si on
était en phase adresse et que le 3eme
120
; marker n'est pas le bon, on recommence la
121
; recherche à partir du 1er marker adresse
122
0259: 49 AD
123
EOR #$AD ; phase data
-> check dernier marker
025B: F0 25
124
BEQ H0882 ; ok marker D5AAAD
found (champ datas)
125
126
; bad!
025D: D0 D9
127
BNE H0838 ; recommence tout
depuis phase champ adresse
128
129 *-------------------------------
130 * Analyse champ adresse
131 *-------------------------------
132
133 * On a trouvé les markers adresse. On analyse la suite.
134 * D5AA96
135 * XX XX ->
volume
codage 4x4 (2 nibbles)
136 * XX XX ->
track
codage 4x4 (2 nibbles)
137 * XX XX -> secteur physique codage 4x4 (2 nibbles)
138 * XX XX ->
checksum codage 4x4 (2
nibbles)
139 * D5AAAD
140
025F: A0 03 141
H085F
LDY #$03 ; skip volume
et track
0261: 85 40 142
H0861
STA $40 ; sauve
dernier octet reconstruit lu
143
0263: BD 8C C0 144
H0863
LDA HC08C,X ; 1A1B1C1D
0266: 10 FB
145
BPL H0863
146
0268: 2A
147
ROL
; 1er nibble octet en 4x4
0269: 85 3C
148
STA $3C ; A1B1C1D1
149
026B: BD 8C C0 150
H086B
LDA HC08C,X ; 1E1F1G1H
026E: 10 FB
151
BPL H086B
152
0270: 25 3C
153
AND $3C ; 2nd
nibble octet en 4x4
154
; = AEBFCGDH (octet reconstruit)
0272: 88
155
DEY
0273: D0 EC
156
BNE H0861
157
; après lecture 2 nibbles du secteur
0275: 28
158
PLP
; dépile état (en retard) avant phase data
0276: C5 3D
159
CMP SECTOR ; est-ce le bon secteur?
0278: D0 BE 160
H0878
BNE H0838 ; non, passe
à un autre secteur
161
027A: A5 40
162
LDA $40 ; dernier
octet reconstitué=track
027C: C9 01
163
CMP #$01 ; le code du
fboot doit se trouver en piste 1
027E: D0 B8
164
BNE H0838 ; pas la piste 1
-> anormal, recommence!
165
0280: B0 B7
166
BCS H0839 ; toujours. Signale
passage à phase data (c=1)
167
168 *-------------------------------
169 * Analyse champ data
170 *-------------------------------
171
172 * Dans un secteur normal de datas, il y a $156 (=342) nibbles
173 * plus un checksum. Le codage est en 6x2 et au final, on
174 * récupère 256 octets.
175 * Ici on en utilise 2*$AB=$156, c'est à dire le meme
chiffre
176 * mais le codage est trafiqué (2 nibbles pour un octet
mais ce
177 * n'est pas du 4x4). L'objectif de Chip Select était
d'une part
178 * de faire une protection mémoire (son fast boot n'est
pas
179 * lisible directement avec un éditeur de secteurs)
mais aussi
180 * en terme de rapidité, on grignote quelques parcelles
de
181 * temps en s'épargnant un denibblizing 6x2
forcément plus lent.
182 * Par contre, il y a une perte de place sur la piste 1:
183 * on ne récupère que $AB (=171) octets par
secteur.
184 * En chargeant 16 secteurs, on récupère
16*171=2736=$AB0 octets.
185 * La mèmoire correspondante est: $B000-$BAAF
186
0282: A4 03 187
H0882
LDY INDICE_WT ; reprend indice où on l'avait
laissé
188
189 * Lecture de 2 * $AB nibbles
190
0284: AE EC C0 191
H0884
LDX HC0EC ; lecture 1er
nibble (=offset)
0287: 10 FB
192
BPL H0884
193
0289: BD 00 02
194
LDA IN,X ; transco avec
les octets du programme
028C: AE EC C0 195
H088C
LDX HC0EC ; lecture 2nd
nibble (=offset)
028F: 10 FB
196
BPL H088C
197
0291: 1D 00 02
198
ORA IN,X ; mixage octet
(toujours avec code programme)
0294: 91 26
199
STA (ADR_LOAD),Y ; sauvegarde octet
200
; //nibble $96 = $C8
0296: C8
201
INY
202
; //nibble $97 = $D0
0297: D0 02
203
BNE H089B ; pas encore fin de
page
204
; //nibble $9A = $27
0299: E6 27
205
INC ADR_LOAD+1 ; adr implantation high +1
206
207
; //nibble $9B = $C6
029B: C6 01 208
H089B
DEC CPT ;
compteur-1
209
; //nibble $9D = $D0
210
; //nibble $9E = $E5
029D: D0 E5
211
BNE H0884 ; pas encore 2*$AB
nibbles
212
; //nibble $9F = $84
029F: 84 03
213
STY INDICE_WT ; sauve indice Y pour reprise prochain
secteur
02A1: F0 89
214
BEQ H082C ; toujours
215
02A3: 4C 00 B0 216
H08A3
JMP BOOT2 ; lance boot 2
217
218 *-------------------------------
219 * Signature texte <ABC> + trck 1
220 *-------------------------------
221
222 * Déplacement tete de lecture sur la piste 1
223 * La tete était actuellement en piste 0.
224
225
; //nibble $A6 = $8D
226
; //nibble $A7 = $E0
02A6: 8D E0 C0 227
H02A6
STA $C0E0 ; phase 0 off (slot
6)
228
; //nibble $AB = $C0
02A9: 8D E3 C0
229
STA $C0E3 ; phase 1 on
230
; //nibble $AC = $A9
231
; //nibble $AD = $30
02AC: A9 30
232
LDA #$30 ; délai
233
; //nibble $AE = $20
234
; //nibble $AF = $A8
02AE: 20 A8 FC
235
JSR WAIT
236
; //nibble $B2 = $E2
237
; //nibble $B3 = $C0
02B1: 8D E2 C0
238
STA $C0E2 ; phase 1 off
239
; //nibble $B4 = $8D
240
; //nibble $B5 = $E5
241
; //nibble $B6 = $C0
02B4: 8D E5 C0
242
STA $C0E5 ; phase 2 on
243
244 * Signature codée <ABC> en inverse
245
246
; //nibble $B7 = $20
247
; //nibble $B9 = $FC
02B7: 20 58 FC
248
JSR HOME
249
; //nibble $BA = $A0
250
; //nibble $BB = $05
02BA: A0 05
251
LDY #$05 ; indice de 1
à 5
252
; //nibble $BC = $18
02BC: 18 253
H08BC
CLC
254
; //nibble $BD = $98
02BD: 98 255
H08BD
TYA
; utilise l'indice comme valeur d'ajout
256
; //nibble $BE = $79
257
; //nibble $BF = $DF
02BE: 79 DF 02
258
ADC H02E0-1,Y ; à la signature elle meme
02C1: 99 B9 05
259
STA $05B9,Y ; directement sur
l'écran 40 colonnes
02C4: 88
260
DEY
02C5: D0 F5
261
BNE H08BC
02C7: 60
262
RTS
263
264 *-------------------------------
265
02C8: 00 00 00
266
DS 3,0 ;
not used
267
02CB: 00 268
H02CB
HEX 00 ;
nibble $CB = $00
269
02CC: 00
270
HEX 00 ;
not used
271
02CD: 00 272
H02CD
HEX 00 ;
nibble $CD = $00
02CE: 00 273
H02CE
HEX 00 ;
nibble $CE = $00
02CF: 00 274
H02CF
HEX 00 ;
nibble $CF = $00
275
02D0: 00 00 00
276
DS 3,0 ;
not used
277
02D3: 00 278
H02D3
HEX 00 ;
nibble $D3 = $00
279
02D4: 00 00
280
DS 2,0 ;
not used
281
282 * Liste "pratique" de nibbles car ils représentent
283 * toutes les possibilités pour les 4 derniers bits
284 * de l'octet à reconstituer.
285
02D6: 00 286
H02D6
HEX 00 ;
nibble $D6
02D7: 01 287
H02D7
HEX 01 ;
nibble $D7
288
02D8: D8
289
HEX D8 ;
not used
290
02D9: 02 291
H02D9
HEX 02 ;
nibble $D9
02DA: 03 292
H02DA
HEX 03 ;
nibble $DA
02DB: 04 293
H02DB
HEX 04 ;
nibble $DB
02DC: 05 294
H02DC
HEX 05 ;
nibble $DC
02DD: 06 295
H02DD
HEX 06 ;
nibble $DD
02DE: 07 296
H02DE
HEX 07 ;
nibble $DE
02DF: 08 297
H02DF
HEX 08 ;
nibble $DF
298
299 *-------------------------------
300
02E0: 3B FF FF 301
H02E0
HEX 3BFFFFFF39 ; signature <ABC> codée
02E3: FF 39
302
303 *-------------------------------
304
02E5: 09 305
H02E5
HEX 09 ;
nibble $E5
02E6: 0A 306
H02E6
HEX 0A ;
nibble $E6
02E7: 0B 307
H02E7
HEX 0B ;
nibble $E7
308
02E8: 11
309
HEX 11 ;
not used
310
02E9: 0C 311
H02E9
HEX 0C ;
nibble $E9
02EA: 0D 312
H02EA
HEX 0D ;
nibble $EA
02EB: 0E 313
H02EB
HEX 0E ;
nibble $EB
02EC: 0F 314
H02EC
HEX 0F ;
nibble $EC
315
316 * Liste "pratique" de nibbles car ils représentent
317 * toutes les possibilités pour les 4 premiers bits
318 * de l'octet à reconstituer.
319
02ED: 00 320
H02ED
HEX 00 ;
nibble $ED
02EE: 10 321
H02EE
HEX 10 ;
nibble $EE
02EF: 20 322
H02EF
HEX 20 ;
nibble $EF
323
02F0: C4 D9
324
HEX C4D9 ; not used
325
02F2: 30 326
H02F2
HEX 30 ;
nibble $F2
02F3: 40 327
H02F3
HEX 40 ;
nibble $F3
02F4: 50 328
H02F4
HEX 50 ;
nibble $F4
02F5: 60 329
H02F5
HEX 60 ;
nibble $F5
02F6: 70 330
H02F6
HEX 70 ;
nibble $F6
02F7: 80 331
H02F7
HEX 80 ;
nibble $F7
332
02F8: F8
333
HEX F8 ;
not used
334
02F9: 90 335
H02F9
HEX 90 ;
nibble $F9
02FA: A0 336
H02FA
HEX A0 ;
nibble $FA
02FB: B0 337
H02FB
HEX B0 ;
nibble $FB
02FC: C0 338
H02FC
HEX C0 ;
nibble $FC
02FD: D0 339
H02FD
HEX D0 ;
nibble $FD
02FE: E0 340
H02FE
HEX E0 ;
nibble $FE
02FF: F0 341
H02FF
HEX F0 ;
nibble $FF
342
343
SAV BOOT1.APRES.EOR
Object saved as BOOT1.APRES.EOR,A$0800,L$0100
--End assembly, 256 bytes, Errors: 0
Symbol table - alphabetical order:
ADR_LOAD
=$26
BOOT1
=$0800 BOOT1_GO
=$020F
BOOT2 =$B000
CPT
=$01
H02A6 =$02A6
? H02CB
=$02CB ?
H02CD =$02CD
? H02CE
=$02CE ?
H02CF =$02CF
? H02D3
=$02D3 ?
H02D6 =$02D6
? H02D7
=$02D7 ?
H02D9 =$02D9
? H02DA
=$02DA ?
H02DB =$02DB
? H02DC
=$02DC ?
H02DD =$02DD
? H02DE
=$02DE ?
H02DF =$02DF
H02E0
=$02E0 ?
H02E5 =$02E5
? H02E6
=$02E6 ?
H02E7 =$02E7
? H02E9
=$02E9 ?
H02EA =$02EA
? H02EB
=$02EB ?
H02EC =$02EC
? H02ED
=$02ED ?
H02EE =$02EE
? H02EF
=$02EF ?
H02F2 =$02F2
? H02F3
=$02F3 ?
H02F4 =$02F4
? H02F5
=$02F5 ?
H02F6 =$02F6
? H02F7
=$02F7 ?
H02F9 =$02F9
? H02FA
=$02FA ?
H02FB =$02FB
? H02FC
=$02FC ?
H02FD =$02FD
? H02FE
=$02FE ?
H02FF =$02FF
H0817
=$0217
H082C
=$022C
H0838
=$0238
H0839 =$0239
H083A
=$023A
H083F
=$023F
H0843
=$0243
H084D =$024D
H085F
=$025F
H0861
=$0261
H0863
=$0263
H086B =$026B
? H0878
=$0278
H0882
=$0282
H0884
=$0284
H088C =$028C
H089B
=$029B
H08A3
=$02A3
H08BC =$02BC
? H08BD =$02BD
HC08C
=$C08C ?
HC0E0 =$C0E0
? HC0E2
=$C0E2 ?
HC0E3 =$C0E3
? HC0E5
=$C0E5
HC0EC
=$C0EC
HOME
=$FC58
IN =$0200
INDICE_WT
=$03
NB_SECT
=$00
SECTOR
=$3D
WAIT =$FCA8
Symbol table - numerical order:
NB_SECT
=$00
CPT
=$01
INDICE_WT
=$03
ADR_LOAD =$26
SECTOR
=$3D
IN
=$0200 BOOT1_GO
=$020F
H0817 =$0217
H082C
=$022C
H0838
=$0238
H0839
=$0239
H083A =$023A
H083F
=$023F
H0843
=$0243
H084D
=$024D
H085F =$025F
H0861
=$0261
H0863
=$0263
H086B =$026B
? H0878 =$0278
H0882
=$0282
H0884
=$0284
H088C
=$028C
H089B =$029B
H08A3
=$02A3
H02A6
=$02A6
H08BC =$02BC
? H08BD =$02BD
? H02CB
=$02CB ?
H02CD =$02CD
? H02CE
=$02CE ?
H02CF =$02CF
? H02D3
=$02D3 ?
H02D6 =$02D6
? H02D7
=$02D7 ?
H02D9 =$02D9
? H02DA
=$02DA ?
H02DB =$02DB
? H02DC
=$02DC ?
H02DD =$02DD
? H02DE
=$02DE ?
H02DF
=$02DF
H02E0 =$02E0
? H02E5 =$02E5
? H02E6
=$02E6 ?
H02E7 =$02E7
? H02E9
=$02E9 ?
H02EA =$02EA
? H02EB
=$02EB ?
H02EC =$02EC
? H02ED
=$02ED ?
H02EE =$02EE
? H02EF
=$02EF ?
H02F2 =$02F2
? H02F3
=$02F3 ?
H02F4 =$02F4
? H02F5
=$02F5 ?
H02F6 =$02F6
? H02F7
=$02F7 ?
H02F9 =$02F9
? H02FA
=$02FA ?
H02FB =$02FB
? H02FC
=$02FC ?
H02FD =$02FD
? H02FE
=$02FE ?
H02FF
=$02FF
BOOT1
=$0800
BOOT2 =$B000
HC08C
=$C08C ?
HC0E0 =$C0E0
? HC0E2
=$C0E2 ?
HC0E3 =$C0E3
? HC0E5
=$C0E5
HC0EC
=$C0EC
HOME
=$FC58
WAIT =$FCA8
----------------------------------------
D'ABORD QUELQUES MESSAGES PERSONNELS
UN GRAND BONJOUR A
- CTHULHU,
- YOG-SOTHOTH,
- DAGON ...
ET TOUS LES AUTRES MEMBRES DU CMS
- DOM,CHRIS ... DE COPYART
- NUMERO 6
- LOT & TMM
- MISTER Z ET MERLIN
- ALDO RESET
- JPL ET MICMAC
SANS OUBLIER CE CHER SOFTMAN
- LE COCHONOU CRACK BAND
- TEUTON HEROIQUE
- THE COPIRATE
- CAPTAIN SHOCK
- CLING CLANG CLUNG
- EM FROM US-IMPORT
- BILL
- BERNARD, LAURENT,HERVE..
- SERGE, DENIS, MICHAEL
- PATRICK,
- BRUNO,JEAN,JEAN-FRANCOIS,FRANCK
- MARC,JD BUG,TBK,HUGO,CONCOMBRE..
- FRANCOISE, AGATHE, VERONIQUE
- SABINE, JACQUELINE,CATHY...
- LE GUIOCHON FAN CLUB
- ET BIEN SUR TOUS LES MEMBRES DE
-= A B C =-
*** ERIC IRQ ***
*** THE WILDMAN ***
UN GRAND BONJOUR A TOUS..
----------------------------------------
ET MAINTENANT LES CHOSES SERIEUSES !!
J'AI ENTENDU DIRE PAR UN DENOMME
GODFATHER QUE JE N'AURAI POINT FAIT DE
FAST-BOOT. SOIT, VU QU'IL DONNE
L'IMPRESSION D'AVOIR PRIS LE FILM EN
ROUTE VOICI POUR SA GOUVERNE UNE PETITE
RETROSPECTIVE DES FAST-BOOT
D'ABORD L'ORIGINE DE CETTE ROUTINE DE
CHARGEMENT RAPIDE :
ELLE VIENT EN GRANDE PARTIE DE PASCAL
ET A ETE RECUPEREE PAR ELECTRONIC ART
POUR SES JEUX .
DE MEME ON LA RETROUVE SOUS UNE FORME
DIFFERENTE DANS LE DRIVER DISK II PRODOS
JE N'AI RIEN INVENTE JE LE RECONNAIS
BIEN VOLONTIERS AYANT JUSTE MODIFIE
CETTE ROUTINE POUR LA FAIRE CONVENIR
A MES BESOINS.
(MAINTENANT ELLE NE RESSEMBLE PLUS
TELLEMENT A LA ROUTINE D'ORIGINE)
VU QUE L'ON PARLE DE FBOOT IL EST
INTERESSANT DE REMARQUER QUE LA
DENOMINATION FBOOT OU FAST-BOOT A ETE
TROUVEE PAR ERIC ET MOI EN ANALOGIE AU
SPEEDY BOOT DE MICMAC & THE SOFTMAN
(REGARDEZ LA PRESENTATION DES DEUX )
EN EFFET C'EST LA VUE DU SPEEDY BOOT QUI
NOUS A DONNE L'ENVIE DE FAIRE NOTRE
PROPRE COMPILATION DE COPIEURS A
CHARGEMENT RAPIDE. LE PREMIER ESSAI NE
FUT PAS TERRIBLE.UTILISANT LA RWTS IL
N'AVAIT DE FBOOT QUE LE NOM.
PUIS ERIC A MIS LA MAIN SUR LA ROUTINE
DE CHARGEMENT DE GO ONE ON ONE.
ROUTINE QUI MODIFIEE ET AMELIOREE
EST AU CENTRE DE TOUS MES FBOOTS, DE
CETTE REVELATION EST APPARU
COURANT 84 MON PREMIER FBOOT (TM)
LE COPY DISK BCB, CONJOINTEMENT AVEC
CELUI D'ERIC : COPYDISK DCA.
POUR EN REVENIR A LA PARTIE HISTORIQUE
LE PREMIER FAST-BOOT (A MA CONNAISSANCE)
EST LE SPEEDY-BOOT DE MICMAC AND THE
SOFTMAN EN 1983
ARRIVE DERRIERE LE 1ER FBOOT TEXTE DE
LUKE SKYWALKER (EN 84).
C'EST SEULEMENT EN 84 QUE MON 1ER FBOOT
APPARAIT
CE FBOOT TRES CARACTERISTIQUE AU NON
ARRET DU DRIVE A ETE LE PLUS POMPE
JE L'AI RETROUVE PRESQUE NON MODIFIE
(L'ARRET DU DRIVE EN PLUS...) SOUS
LA DENOMINATION TSUNOO FROM TROLL & CO
ZORRO FBOOT.....
DE MEME M JL LEBRETON LA OBLIGEAMMENT
UTILISE POUR CERTAINS DE SES JEUX ...
(MEME LES POMMES DE TERRE ....
LE MUR DE BERLIN...
LA FEMME QUI NE SUPPORTAIT)
EN LAISSANT MEME LA ROUTINE DE CHECKSUM
DE LA PAGE GRAPHIQUE
TOUJOURS VERS LA MEME EPOQUE
UN DENOMME FREDERIC MUTTER EN A PUBLIE
UN DUMP HEXA DANS HEBDOGICIEL SOUS LE
NOM DE FBOOT MAKER. A QUAND LA PERSONNE
LEUR ENVOYANT UN DUMP HEXA DU LOCKSMITH
M'ENFIN ? BON JE M'EGARE ...
QUELQUES MOIS PLUS TARD JE SORS UN
NOUVEAU FBOOT SOUS LE NOM DE COPY DISK
ABC.
85 - SORTIE DE L'HYPERQUICK LOADER DE
TROLL & CO LARGEMENT POMPE SUR LE
FBOOT DE LUKE SKYWALKER
VERS LA MEME EPOQUE LE SPEEDY
BOOT EST PUBLIE PAR P GUIOCHON SOUS LE
NOM DE GOLD-QQCHOSE DANS GOLDEN
ET UN POMPEUR UN...
D'AILLEURS EN PARLANT DE POMPEUR DANS
L'HYPER QUICK LOADER DU 17 JUIN 85
ON A DROIT AUX AVEUX COMPLETS DE TSUNOO
85 C'EST AUSSI LA SORTIE DE MON FBOOT
CONTENANT LE COPY II+ 5.0 ET UN DOS
COMME QUOI...
BON J'ARRIVE A LA FIN DE MON PETIT
RAPPEL AVEC MON DERNIER FBOOT EN DATE :
LE FBOOT 2.0
LE SEUL FBOOT PRODOS (POUR L'INSTANT)
UTILISANT DES FICHIERS PRODOS NORMAUX
ET FONCTIONNANT AVEC DEUX DRIVES
LE PIED QUOI !
MAINTENANT GODFATHER SI TU N'AS PAS
COMPRIS C'EST QUE TU ES REELLEMENT
BOUCHE.
SALUT A TOUS.
-------------- > CHIP SELECT A.B.C.
PS: LISEZ DONC LE FICHIER DOC..
AVANT DE RALER.!!
BAISEZ UNE MOUCHE POUR POURSUIVRE
FBOOT 2.0 REVISION A
COPYRIGHT CHIP SELECT
------------------
! DOC PROVISOIRE !
------------------
]1 RAJOUT DE PROGRAMMES .
Pour ce faire utiliser tout simplement le
filer Prodos ou bien le
copy II+ 6.X;
Tous fichier binaire prodos est rajoutable au
Fboot et apparaitra
au catalogue s'il est verrouillé
]2 CREATION D'UNE DISQUETTE FBOOT .
- Copiez cette disquette avec le locksmith
(fast backup),
- Deletez le disk avec le copy 2+
- Editez le bloc 6 (Bit map) et marquez
occupé les blocs
0 à 15 ( deux premiers
octets à zéro )
- Modifiez la page de boot si
nécéssaire
- Installez les nouveaux fichiers avec un
filer.
]3 COMMANDES DU FBOOT .
^S : Son On/Off
^B : Sortie sous basic (sans le
basic.system)
ESC : Equivalent du quit prodos si
prodos est chargé
Fleches droite gauche
:
sélectionne le drive et lit son catalogue
Lettres entre crochets
: Run le
programme
]4 ORGANISATION PHYSIQUE .
Bloc 0 : Secteur de boot
Bloc 1
Bloc 2 : Catalogue ProDOS
à 4
Bloc 6 : Bit map
Bloc 7 : page texte de boot et
paramettres
Piste 1 : Image du Fboot ( Bloc 8 à 15 )
Description des blocs 1 et 7
Représente une page texte
Block 1 $400-$5FF
7 $600-$7FF
la premiere et la derniere ligne de cette page
sont affichées sur
le catalogue à leur place respective.
le reste de la page est affichée
à la place du catalogue suivant
les options.
Options
$478 : numéro de piste à
éviter $FF aucune piste
ex
$11 pour éviter le catalogue Dos.
$479 : $FF : Lors du boot lance le premier
programme verrouillé du
catalogue.
$00
ne le lance pas.
$47A : $00 ne lance rien.
code
de la touche du programme à charger au
boot
si ascii negatif run sinon load
$C1
run A
$41
load A.
$47B : $FF affiche la page texte se trouvant
Bloc 1 et 7, à la place du catalogue.
$00
ne l'affiche pas affiche le catalogue.
Nota
: le fait d'appuyer sur une fleche
réaffiche le catalogue.
$47C : $FF supprime les animations (et le
bruit)
$00
met les animations.
]5 AMELIORATIONS FUTURES .
- Reconnaissance et chargement correcte des
programmes basics.
- Acces au fboot à partir du basic via
l'ampersand.
- Acces aux sous-catalogues.
- Reconnaissance de l'Uni disk et de la
Ram-work.
- Mise en place d'une routine de sauvegarde
rapide.
- Mise en place dans le code Quit.
et pourquoi pas
- reconnaissance de la souris.
Bon fast Boot à tous .!!!!
CHIP SELECT
from the Association of Broadcasting Crackers 1986.
NOTA :
Si vous voulez charger automatiquement le prodos au boot il faut que
le fichier FBOOT.SYSTEM soit le premier fichier system de la disquette.
Signalez moi toutes bugs dans ma Bal sur HG (6115)
nom: chipselect
Petite remarque :
Utilisation commerciale INTERDITE sans mon
autorisation.
Ceci est particulierement valable pour M Lebreton & Co.