Samedi 11/04/2009.
Une weblog rapide ayant pour but de montrer l'aspect visuel du prochain
outil destiné en premier lieu à la carte PD8 d'Alex
Freed mais qui aura aussi un intérêt
pour la carte
CFFA de Richard Dreher.
Lancement du disk image que vous trouverez un peu plus bas dans cette
page:
Comme je n'ai plus ma PD8 sous la main (je l'ai envoyée en
Bulgarie chez
Vladitx pour mise à
jour du firmware), le programme de
démo utilise la mémoire auxiliaire pour stocker
le contenu de la carte SD. Il faut donc 128k pour que ça
marche.
Il s'agit d'une démo, donc le contenu est statique et
uniquement prévu ici pour l'exemple. Pas la peine d'essayer
avec une vraie PD8, il n'y aura pas de lien avec son contenu
réel.
Le programme propose une touche d'aide "?" qui affiche la liste des
touches disponibles.
A noter que la touche "S" n'a aucun effet pour le moment.
L'écran affiche alors dans le mode 70 colonnes la liste des
images (.hdv et .nib) ou les répertoires trouvés.
A noter que je ferais aussi une version en mode affichage TEXT 80
colonnes pour les machines dotées d'une extension
appropriée.
La navigation se fait avec les flèches HAUT et BAS. Il est
possible d'utiliser aussi conjointement la touche Open Apple avec HAUT
et BAS
pour faire une page down/page up.
A noter que j'ai opté pour une façon
particulière de naviguer. La ligne de sélection
n'attend pas d'être en bas de l'écran pour
scroller et afficher le nom suivant s'il y a plus d'une page de noms.
C'est en milieu d'écran que le scroll se fait. Je trouve que
ça permet d'avoir une meilleur
visibilité.
Une icone devant un nom signale qu'il s'agit d'un répertoire.
Pour aller dans le sous-répertoire, il suffit de taper
ENTRER sur le nom.
S'il n'y a rien dans le sous-répertoire (tout au moins pas
d'image ou de sous répertoire), c'est signalé et
la touche ESC permet de remonter d'un niveau. La ligne du bas sert pour
l'affichage d'informations et d'erreurs.
D'une manière générale la touche ESC
permet toujours de remonter d'un niveau (sauf si vous êtes
déjà à la racine).
A noter que pour faciliter la navigation, le programme retient
l'endroit dans la liste quand vous avez fait RETURN. En revenant avec
ESC, la liste de sélection sera à l'endroit que
vous avez quitté précédemment. Ce
système supporte jusqu'à 127 niveaux de
sous-répertoires, ce qui me parait largement suffisant.
Pour la PD8, l'idée est de choisir 2 images parmi toutes
celles présentes sur le volume. La PD8 les assignera en
temps que disk 1 et disk 2 rattachés au slot correspondant.
Si vous appuyez sur la touche "B" (pour boot) sans avoir choisi au
moins le contenu pour le disk 1, vous aurez le message suivant:
Pour choisir une image, vous devez utiliser les touches "1" et "2".
Ici j'ai choisi l'image Edd4.NIB en appuyant sur "1". Ce chiffre
apparait
devant le nom.
D'ailleurs le 1er cluster de l'image apparait en bas de
l'écran après D[1].
Les touches "1" et "2" jouent le rôle de switch. En appuyant
une seconde fois sur la touche, l'image est
déselectionnée.
Si une image était sélectionnée pour
le disk 1 et que j'appuie sur "2", cela
déselectionne l'action précédante. En
bas de l'écran, l'info du 1er cluster du disk 1 est remise
à
zéro.
Ici ma sélection des 2 images est ok. Je n'ai plus
qu'à booter (en espérant que le jeu
gère 2 drives!)
Evidemment comme il s'agit d'une démo, ce n'est pas le jeu
proprement dit qui se lance quand on appuie sur "B" mais un petit
programme perso faisant défiler la rom moniteur à
l'intérieur d'un scroll.
Voici les images, sources inclus au cas où ça
vous intéresse de voir comment ça marche.

|
ProDOS
|
Download VFAT Explorer (.dsk) screen
& menu layout
demo (bootable disk)
|

|
ProDOS
|
Download the source code of: VFAT
Explorer (.hdv) screen & menu layout
demo (gzipped)
|
File: SDBoot70.dsk
Disk: ProDOS /PD8 (140KB)
Name
Type Auxtyp
Modified
Format Length
------------------------------------------------------------------------------
PRODOS
SYS $0000 15-Dec-06 09:59
ProDOS 16509
DEMO.SYSTEM
SYS $2000 [No
Date]
ProDOS 2350
CAT001
BIN $5000 02-Apr-09 15:14
ProDOS 70
CAT002
BIN $5000 02-Apr-09 15:14
ProDOS 140
CAT008
BIN $5000 02-Apr-09 15:14
ProDOS 560
CAT009
BIN $5000 02-Apr-09 15:15
ProDOS 630
CAT010
BIN $5000 02-Apr-09 15:15
ProDOS 700
CAT020
BIN $5000 02-Apr-09 15:16
ProDOS 1400
CAT021
BIN $5000 02-Apr-09 15:17
ProDOS 1470
CAT253
BIN $5000 [No
Date]
ProDOS 17710
PSEUDO.BOOT1
BIN $5000 [No
Date]
ProDOS 512
SDBOOT70
BIN $4000 [No
Date]
ProDOS 2778
VIDEO70
BIN $0800 [No
Date]
ProDOS 4773
------------------------------------------------------------------------------
File: SDBoot70.hdv
Disk: ProDOS /PD8 (800KB)
Name
Type Auxtyp
Modified
Format Length
------------------------------------------------------------------------------
PRODOS
SYS $0000 04-Mar-92 23:00
ProDOS 17128
PSEUDO.BOOT1
BIN $5000 [No
Date]
ProDOS 512
RAM.DRV.SYSTEM
SYS $2000 26-May-92 21:27
ProDOS 1209
BASIC.SYSTEM
SYS $2000 13-Feb-92 01:00
ProDOS 10240
SDBOOT70
BIN $4000 [No
Date]
ProDOS 2778
CAT253
BIN $5000 [No
Date]
ProDOS 17710
VIDEO70
BIN $0800 [No
Date]
ProDOS 4773
LNK
DIR $0000 [No
Date]
ProDOS 512
LNK:VIDEO70
DIR $0000 [No
Date]
ProDOS 512
LNK:VIDEO70:SCROLLDWN
$F8 $02CB [No
Date]
ProDOS 733
LNK:VIDEO70:SCROLLUP
$F8 $02CB [No
Date]
ProDOS 732
LNK:VIDEO70:DSPCHAR70
$F8 $0BB2 [No
Date]
ProDOS 3255
LNK:VIDEO70:DSPSTR70
$F8 $0021 [No
Date]
ProDOS 62
LNK:VIDEO70:HGRTOOLS
$F8 $011B [No
Date]
ProDOS 431
LNK:VIDEO70:VIDEO70
$F8 $0021 [No
Date]
ProDOS 199
LNK:TOOLS
DIR $0000 [No
Date]
ProDOS 512
LNK:TOOLS:MULT16
$F8 $0031 [No
Date]
ProDOS 60
LNK:TOOLS:WAITKEY
$F8 $006D [No
Date]
ProDOS 153
LNK:TOOLS:TXTTOOLS
$F8 $01FD [No
Date]
ProDOS 620
LNK:SDBOOT70
DIR $0000 [No
Date]
ProDOS 512
LNK:SDBOOT70:SDBOOT70
$F8 $06EC [No
Date]
ProDOS 2450
LNK:SDBOOT70:MMOVE
$F8 $004B [No
Date]
ProDOS 101
LNK:SDBOOT70:DSPLIST
$F8 $0108 [No
Date]
ProDOS 468
LNK:SYSTEM
DIR $0000 [No
Date]
ProDOS 512
LNK:SYSTEM:DEMO.SYSTEM
$F8 $0677 [No
Date]
ProDOS 2435
LNK:SYSTEM:QSREADP
$F8 $0092 [No
Date]
ProDOS 264
LNK:SYSTEM:QSPRINT
$F8 $00FE [No
Date]
ProDOS 348
LNK:SYSTEM:MLIQUIT
$F8 $000D [No
Date]
ProDOS 29
LNK:SYSTEM:QSREADA
$F8 $00CD [No
Date]
ProDOS 355
TMP
DIR $0000 [No
Date]
ProDOS 512
TMP:TESTMULT16
BAS $0801 28-Mar-09 13:25
ProDOS 229
TMP:FILL253
BAS $0801 [No
Date]
ProDOS 159
DEMO.SYSTEM
SYS $2000 [No
Date]
ProDOS 2350
CAT001
BIN $5000 02-Apr-09 15:14
ProDOS 70
CAT002
BIN $5000 02-Apr-09 15:14
ProDOS 140
CAT008
BIN $5000 02-Apr-09 15:14
ProDOS 560
CAT009
BIN $5000 02-Apr-09 15:15
ProDOS 630
CAT010
BIN $5000 02-Apr-09 15:15
ProDOS 700
CAT020
BIN $5000 02-Apr-09 15:16
ProDOS 1400
CAT021
BIN $5000 02-Apr-09 15:17
ProDOS 1470
SRC
DIR $0000 28-Mar-09 13:32
ProDOS 1536
SRC:PSEUDO.BOOT1
DIR $0000 [No
Date]
ProDOS 512
SRC:PSEUDO.BOOT1:PSEUDO.BOOT1.S TXT
$0000 29-Jan-09 16:51
ProDOS 3660
SRC:PSEUDO.BOOT1:PSEUDO.BOOT1
BIN $5000 [No
Date]
ProDOS 512
SRC:INCLUDE
DIR $0000 [No
Date]
ProDOS 512
SRC:INCLUDE:INCLUDE.S
TXT $0000 28-Mar-09 13:25
ProDOS 4689
SRC:INCLUDE:INCL.VIDEO70.S
TXT $0000 28-Mar-09 13:25
ProDOS 375
SRC:INCLUDE:INCLUDE.PDOS.S
TXT $0000 04-Mar-95 19:59
ProDOS 1496
SRC:SYSTEM
DIR $0000 [No
Date]
ProDOS 512
SRC:SYSTEM:QSREADP.S
TXT $0000 17-Apr-95 17:30
ProDOS 2477
SRC:SYSTEM:QSREADA.S
TXT $0000 17-Apr-95 17:30
ProDOS 3428
SRC:SYSTEM:DEMO.SYSTEM.S
TXT $0000 04-Aug-07 21:26
ProDOS 14370
SRC:SYSTEM:QSPRINT.S
TXT $0000 01-Oct-06 17:43
ProDOS 4111
SRC:SYSTEM:MLIQUIT.S
TXT $0000 01-Oct-06 17:44
ProDOS 342
SRC:SYSTEM:LNK.DEMO.SYS
BIN $8000 [No
Date]
ProDOS 154
SRC:SYSTEM:LNK.DEMO.SYS.S
TXT $0000 [No
Date]
ProDOS 315
SRC:SYSTEM:DEMO.SYSTEM
SYS $2000 [No
Date]
ProDOS 2350
SRC:TOOLS
DIR $0000 [No
Date]
ProDOS 512
SRC:TOOLS:MULT16.S
TXT $0000 28-Mar-09 13:25
ProDOS 791
SRC:TOOLS:WAITKEY.S
TXT $0000 01-Oct-06 17:44
ProDOS 2140
SRC:TOOLS:TXTTOOLS.S
TXT $0000 [No
Date]
ProDOS 3254
SRC:VIDEO70
DIR $0000 28-Mar-09 13:32
ProDOS 512
SRC:VIDEO70:SCROLLDWN.S
TXT $0000 28-Mar-09 13:25
ProDOS 4213
SRC:VIDEO70:SCROLLUP.S
TXT $0000 28-Mar-09 13:25
ProDOS 4211
SRC:VIDEO70:DSPCHAR70.S
TXT $0000 28-Mar-09 13:25
ProDOS 11347
SRC:VIDEO70:DSPSTR70.S
TXT $0000 28-Mar-09 13:25
ProDOS 915
SRC:VIDEO70:LNK.VIDEO70.S
TXT $0000 28-Mar-09 13:25
ProDOS 305
SRC:VIDEO70:LNK.VIDEO70
BIN $8000 [No
Date]
ProDOS 164
SRC:VIDEO70:HGRTOOLS.S
TXT $0000 28-Mar-09 13:25
ProDOS 2750
SRC:VIDEO70:VIDEO70.S
TXT $0000 28-Mar-09 13:25
ProDOS 664
SRC:VIDEO70:VIDEO70
BIN $0800 [No
Date]
ProDOS 4773
SRC:SDBOOT70
DIR $0000 28-Mar-09 13:30
ProDOS 512
SRC:SDBOOT70:SDBOOT70.S
TXT $0000 28-Mar-09 13:25
ProDOS 13423
SRC:SDBOOT70:LNK.SDBOOT70
BIN $8000 [No
Date]
ProDOS 153
SRC:SDBOOT70:LNK.SDBOOT70.S
TXT $0000 28-Mar-09 13:25
ProDOS 296
SRC:SDBOOT70:SDBOOT70
BIN $4000 [No
Date]
ProDOS 2778
SRC:SDBOOT70:DSPLIST.S
TXT $0000 17-Sep-06 22:25
ProDOS 3771
SRC:SDBOOT70:MMOVE.S
TXT $0000 [No
Date]
ProDOS 1307
------------------------------------------------------------------------------
Voila pour aujourd'hui.
Dans la prochaine weblog, je livrerai une petite routine pour lire les
secteurs absolus d'une carte compact flash présente dans une
CFFA.
Ceci est indispensable pour lire le contenu d'un volume FAT16.
Vladitx se charge de
ça pour la PD8.
A présent, un peu de détente avec une connerie...
Il m'arrive des fois de me demander pourquoi je continue à
faire des développements sur Apple II! (Si, si...)
Alors pourquoi je persévère aujourd'hui?
Voyons, je cherche...
Huuummmmmmm...
Peut-être parce que l'informatique "moderne" part en
"couille"? ;-)
Illustration:
J'avais vu il y a quelques jours dans une librairie que le
dernier SVM (avril 2009)
parlait des smartphones qui vont sortir en
milieu de mois chez SFR
(HTC Magic) et Orange (HTC
Dream). Pour suivre un peu l'actualité, je me le suis offert.
Il parle un peu (= toujours le minimum syndical à
mon goût) des modèles avec le système
d'exploitation Android de Google, les google phones
censés concurrencer l'iphone d'Apple.
Et bien très très curieusement (quoi que), on
trouve en page 125 une publicité amusante: la promo d'un
vendeur de préservatifs "le
roi de la capote" (et autres "toys").
Il est vrai que ce genre de presse n'a rien de "bandant" et il faut
bien ça pour s'amuser un peu (dans un monde informatique
quelque peu engorgé... Qui a dit de sous-merdes?)
Additional informations
==================================================================
MAIN MEMORY
==================================================================
$0300-$03CF : Datas
$0800-$1AFF : VIDEO70 (70 column driver)
$1B00-$1B7F : Buffer OFFSET
(low) for ESC
$1B80-$1BFF : Buffer OFFSET (high) for ESC
$1C00-$1C7F : Buffer
PTR_SCRN
for ESC
$1C80-$1FFF : <available>
$2000-$3FFF : HGR mode
$4000-$4FFF : SDBOOT70
$5000-$BFD6 : 409 structures max (len=$7000) : CATXXX
==================================================================
AUX MEMORY
==================================================================
$0800-$0ABB :
CAT010
(file 00) post-analyze catalog cluster
$0ABC-$0B01 :
CAT001
(File 01) post-analyze catalog cluster
$0B02-$1079 :
CAT020
(File 02) post-analyze catalog cluster
$107A-$12A9 :
CAT008
(File 03) post-analyze catalog cluster
$12AA-$57D7 :
CAT253
(File 04) post-analyze catalog cluster
$57D8-$5D95 :
CAT021
(File 05) post-analyze catalog cluster
$5D96-$5D96 :
CAT000
(File 06) post-analyze catalog cluster
$5D97-$600C :
CAT009
(File 07) post-analyze catalog cluster
$600D-$6098 :
CAT002
(File 08) post-analyze catalog cluster
$6100-$62FF : PSEUDO.BOOT1 (File 09) boot of the selected image (disk 1)
Files in aux mem are copied to the $5000-$BFD6 buffer in main memory
**********
VIDEO70 entry points:
$0800 : HGR_ON
$0803 : CLRHGR
$0806 : SET_NORM
$0809 : SET_INV
$080C : SET_SCRN_PTR
$080F : INVLINE
$0812 : DSPCHAR70
$0815 : DSPSTR70
$0818 : SCROLLUP
$081B : SCROLLDWN
$081E : CLRLINE
**********
PAGE 3
$0300 :
INV_NORM for HGR print [$00=normal,$7F=inverse]
$0301 :
PD8SLOT
$0302-$0303 : PD8DISK1 = cluster (low/high) disk 1
$0304-$0305 : PD8DISK2 = cluster (low/high) disk 2
$0306 :
PD8MODE [0=ProDOS,1=Nibble]
$0307 :
VFATLVL [0=root,1=sub-dir 1, ...]
$0308-$0309 : CPT_NAME = nbr of structures (low/high) in current dir
[$0000..$FFFF]
$030A-$030B : DIRCLUST = 1st cluster (low/high) of current dir (VFATLVL
level)
$030C-$030D : DIRPREV = cluster (low/high) of previous dir (..)
$030E-$030F : LAST_NAME = CPT_NAME-1 = index of last structure
(low/high)
$0310-$0311 : TMPCPR = 16 bits val used by CPR/TESTZ macros (Merlin 8)
**********
Structure:
70 bytes/structure
00-67 Filename (bit 7 1st character=1 if type dir)
68-69 1st cluster of the object (low/high)
**********
SCREEN LAYOUT
0000000000111111111122222222223333333333444444444455555555556666666666
0123456789012345678901234567890123456789012345678901234567890123456789
************************************************************************
*[]file0.extension.longfilename.012345678901234567890123456789012345678*
0
*
file1.extension.longfilename.012345678901234567890123456789012345678*
1
*
file2.extension.longfilename.012345678901234567890123456789012345678*
2
*1
file3.extension.longfilename.012345678901234567890123456789012345678*
3
*2
file4.extension.longfilename.012345678901234567890123456789012345678*
4
*
file5.extension.longfilename.012345678901234567890123456789012345678*
5
*
file6.extension.longfilename.012345678901234567890123456789012345678*
6
*
file7.extension.longfilename.012345678901234567890123456789012345678*
7
*
file8.extension.longfilename.012345678901234567890123456789012345678*
8
*
file9.extension.longfilename.012345678901234567890123456789012345678*
9
*
fileA.extension.longfilename.012345678901234567890123456789012345678* 10
*
fileB.extension.longfilename.012345678901234567890123456789012345678* 11
*
fileC.extension.longfilename.012345678901234567890123456789012345678* 12
*
fileD.extension.longfilename.012345678901234567890123456789012345678* 13
*
fileE.extension.longfilename.012345678901234567890123456789012345678* 14
*
fileF.extension.longfilename.012345678901234567890123456789012345678* 15
*
fileG.extension.longfilename.012345678901234567890123456789012345678* 16
*
fileH.extension.longfilename.012345678901234567890123456789012345678* 17
*
fileI.extension.longfilename.012345678901234567890123456789012345678* 18
*
fileJ.extension.longfilename.012345678901234567890123456789012345678* 19
************************************************************************
0000000000000000111111111111111122222222
0123456789ABCDEF0123456789ABCDEF01234567
******************************************
$0650 *PD8 VFAT SELECTOR V.20090411 VTX+DECKARD* 20
$06D0 *[S]=5 D[1]=$FFFF D[2]=$FFFF [M]od=ProDOS* 21
$0750 *[B]oot [ESC] OA-[Up] OA-[Down] [RTN] [?]* 22
$07D0
*
* 23 <- Status line
******************************************
0000000000111111111122222222223333333333
0123456789012345678901234567890123456789
**********
Pointers:
NAME00
NAME01
0000000000111111111122222222223333333333444444444455555555556666666666
0123456789012345678901234567890123456789012345678901234567890123456789
************************************************************************
*[]NAME02 <- OFFSET
(2)
* 0
*[]NAME03
* 1
*
NAME04
* 2
*[]NAME05
* 3
*
NAME06
* 4
*
NAME07
* 5
*[]NAME08
* 6
*[]NAME09
* 7
*[]NAME10
* 8
*[]NAME11==<- PTR_SCRN
(9)=============================================* 9
*[]NAME12
* 10
*[]NAME13
* 11
*[]NAME14
* 12
*[]NAME15
* 13
*[]NAME16
* 14
*
NAME17
* 15
*
NAME18
* 16
*
NAME19
* 17
*
NAME20
* 18
*
NAME21
* 19
************************************************************************
[]NAME22
NAME23 <- LAST_NAME (CPT_NAME=24)
**********
Num Name
Len Main
mem Aux
mem
Dir
Clust Level Prev
Clust
00 CAT010
700
$5000-$52BB
$0800-$0ABB
root
$0000
0 $0000
01 CAT001
70
$5000-$5045
$0ABC-$0B01
Utilitites
$0002
1 $0000
02 CAT020
1400 $5000-$5577
$0B02-$1079
Disk
$0003
2 $0002
03 CAT008
560
$5000-$522F
$107A-$12A9
Games
$0090 1
$0000
04 CAT253
17710 $5000-$952D
$12AA-$57D7
Adventure
$0091
2 $0090
05 CAT021
1470 $5000-$55BD
$57D8-$5D95
RPG
$0784
2 $0090
06 CAT000
0
$5000-$5000
$5D96-$5D96
Wizardry_Saga
$0785 3
$0784
07 CAT009
630
$5000-$5275
$5D97-$600C
Ultima_Saga
$07A9 3
$0784
08 CAT002
140
$5000-$508B
$600D-$6098
Ultima_6_Preview_NO_DIFFUSION
$07E2 4
$07A9
0
1
2
3
4
CAT010 (root) CAT001 (Utilities) CAT020
(Disk)
CAT008
(Games) CAT253
(Adventure)
CAT021
(RPG)
CAT000 (Wizardry_Saga)
CAT009
(Ultima_Saga) CAT002
(Ultima_6_Preview_NO_DIFFUSION)
Cluster
$0000 CAT010 (root)
======
$0002
Utilities
$0090
Games
$088F My Hard
Drive.hdv
$0C8F
Fast_Compare_Sam_20051019_Final.nib
$0C96
Cracking_Techniques_1983.NIB
$0C9D
Cracking_Techniques_1984.NIB
$0CA4
Cracking_Techniques_1985.NIB
$0CAB
Cracking_Techniques_1986.NIB
$0CB2
Kraking_Disk_Jockey_Vol1_1984.nib
$0CB9 Kraking_Disk_Jockey_Vol2_1985.nib
$0002 CAT001 (utilities)
======
$0003
Disk
$0003 CAT020 (Disk)
======
$0004
Dy00003b_Lock_It_Up.nib
$000B
Dy00005b_Copy_II_Plus_6_0_ProDOS.nib
$0012
Dy00005f_Pack_Copieurs_Anciens.nib
$0019
Dy00008f_Ultra_Disk_Pack_1.nib
$0020
Dy00010b_The_Locksmith_6_3_f2.nib
$0027
Dy00010f_The_Locksmith_6_3_f1.nib
$002E
Dy00011f_Secret_Of_Dos.nib
$0035
Du00002f_Universal_File_Conversion.nib
$003C
Du00007b_Copy2Plus_9_0_f2.nib
$0043
Du00007f_Copy2Plus_9_0_f1.nib
$004A
Du00010b_ProSel_f2.nib
$0051
Du00010f_ProSel_f1.nib
$0058
Du00019b_Disk_Watson_6_0_err.nib
$005F
Dy00003f_Protector_3_0_ACS.nib
$0066
Dy00003f_Protector_3_0_ACS_Patched.nib
$006D
Fast_Compare_Sam_20051019_Final.NIB
$0074 ShrinkIt
3.4.nib
$007B
Edd4.NIB
$0082
Bag_Of_Tricks_CIA.NIB
$0089
Disk_Alignment_Aid_Apple_Computer.nib
$0090 CAT008 (Games)
======
$0091
Adventure
$0784
RPG
$0865
De00002f_Chessmaster_2100_f1.nib
$086C
De00002b_Chessmaster_2100_f2.nib
$0873
DX00082F_Battle_Chess_f3_Boot_HF.NIB
$087A
Df00003b_Cyclone_Lightning_Bolt_Night_Mission.nib
$0881
Df00001b_Pinball_Construction_Set.nib
$0888
DX00029F_Chuck_Yeager_S_Advanced_Flight_Trainer_f1.NIB
$0091 CAT253 (Adventure)
======
$0092
Dg00001b_The_Black_Cauldron_f2_err.nib
$0099
Dg00001f_The_Black_Cauldron_f1.nib
$
Dg00002b_The_Black_Cauldron_f4.nib
$
Dg00002f_The_Black_Cauldron_f3.nib
$
Dg00003b_King_s_Quest_f2.nib
$
Dg00003f_Kings_s_Quest_f1.nib
$
Dg00004b_The_Black_Cauldron_f5.nib
$
Dg00004f_King_Quest_f3.nib
$
Dg00005b_King_s_Quest2_f2.nib
$
Dg00005f_King_s_Quest2_f1.nib
$
Dg00006b_King_s_Quest2_f4.nib
$
Dg00006f_King_s_Quest2_f3.nib
$
Dg00007b_King_s_Quest2_f6.nib
$
Dg00007f_King_s_Quest2_f5.nib
$
Dg00008b_King_s_Quest3_f02.nib
$
Dg00008f_King_s_Quest3_f01.nib
$
Dg00009b_King_s_Quest3_f04.nib
$
Dg00009f_King_s_Quest3_f03.nib
$
Dg00010b_King_s_Quest3_f06.nib
$
Dg00010f_King_s_Quest3_f05.nib
$
Dg00011b_King_s_Quest3_f08.nib
$
Dg00011f_King_s_Quest3_f07.nib
$
Dg00012b_King_s_Quest3_f10.nib
$
Dg00012f_King_s_Quest3_f09.nib
$
Dg00013b_King_s_Quest4_f02.nib
$
Dg00013f_King_s_Quest4_f01.nib
$
Dg00014b_King_s_Quest4_f04.nib
$
Dg00014f_King_s_Quest4_f03.nib
$
Dg00015b_King_s_Quest4_f06.nib
$
Dg00015f_King_s_Quest4_f05.nib
$
Dg00016b_King_s_Quest4_f08.nib
$
Dg00016f_King_s_Quest4_f07.nib
$
Dg00017b_King_s_Quest4_f10.nib
$
Dg00017f_King_s_Quest4_f09.nib
$
Dg00018b_King_s_Quest4_f12.nib
$
Dg00018f_King_s_Quest4_f11.nib
$
Dg00019b_King_s_Quest4_f14.nib
$
Dg00019f_King_s_Quest4_f13.nib
$
Dg00020b_King_s_Quest4_f16.nib
$
Dg00020f_King_s_Quest4_f15.nib
$
Dg00021b_Space_Quest_f2.nib
$
Dg00021f_Space_Quest_f1.nib
$
Dg00022b_Space_Quest_f4.nib
$
Dg00022f_Space_Quest_f3.nib
$
Dg00023b_Space_Quest_f6.nib
$
Dg00023f_Space_Quest_f5.nib
$
Dg00024b_Space_Quest_f8.nib
$
Dg00024f_Space_Quest_f7.nib
$
Dg00116b_Jaws_f2.nib
$
Dg00116f_Jaws_f1.nib
$
Dg00117f_Jaws_f3.nib
$
Dr00110b_Journey_f2.nib
$
Dr00110f_Journey_f1.nib
$
Dr00111b_Journey_f4.nib
$
Dr00111f_Journey_f3.nib
$
Dr00112b_Journey_f6.nib
$
Dr00112f_Journey_f5.nib
$
Dw00001b_LA_Crackdown_f2.nib
$
Dw00001f_LA_Crackdown_f1.nib
$
Dw00003b_Gruds_In_Space_f2.nib
$
Dw00003f_Gruds_In_Space_f1.nib
$
Dw00004b_Death_In_The_Caribbean_f2.nib
$
Dw00004f_Death_In_The_Caribbean_f1.nib
$
Dw00005b_The_Coveted_Mirror_f2.nib
$
Dw00005f_The_Coveted_Mirror_f1_err.nib
$
Dw00006b_The_Spy_S_Adventure_In_Europe_f2.nib
$
Dw00006f_The_Spy_S_Adventure_In_Europe_f1.nib
$
Dw00007b_The_Spy_S_Adventure_In_North_America_Crack_US_f2.nib
$
Dw00007f_The_Spy_S_Adventure_In_North_America_Crack_US_f1.nib
$
Dw00008b_The_Spy_S_Adventure_In_North_America_Crack_ToD_f2.nib
$
Dw00008f_The_Spy_S_Adventure_In_North_America_Crack_ToD_f1.nib
$
Dw00034b_Alter_Ego_f2.nib
$
Dw00034f_Alter_Ego_f1.nib
$
Dw00035b_Alter_Ego_f4.nib
$
Dw00035f_Alter_Ego_f3.nib
$
Dw00036b_Alter_Ego_f6.nib
$
Dw00036f_Alter_Ego_f5.nib
$
Dw00037b_O_O_Topos_f2.nib
$
Dw00037f_O_O_Topos_f1.nib
$
Dw00038b_Ulysses_And_The_Golden_Fleece_f2.nib
$
Dw00038f_Ulysses_And_The_Golden_Fleece_Race_For_Midnight_f1.nib
$
Dw00039b_La_Cite_Perdue_f2.nib
$
Dw00039f_La_Cite_Perdue_f1.nib
$
Dw00040b_Land_Of_The_Lounge_Wizards_f2.nib
$
Dw00040f_Land_Of_The_Lounge_Wizards_f1.nib
$
Dw00041b_Land_Of_The_Lounge_Wizards_f4.nib
$
Dw00041f_Land_Of_The_Lounge_Wizards_f3.nib
$
Dw00042b_Land_Of_The_Lounge_Wizards_f6.nib
$
Dw00042f_Land_Of_The_Lounge_Wizards_f5.nib
$
Dw00043b_Land_Of_The_Lounge_Wizards_f8.nib
$
Dw00043f_Land_Of_The_Lounge_Wizards_f7.nib
$
Dw00044b_Faial_I_f2.nib
$
Dw00044f_Faial_I_f1.nib
$
Dw00045b_Faial_II_f2.nib
$
Dw00045f_Faial_II_f1.nib
$
Dw00046b_Steve_Keene_f2.nib
$
Dw00046f_Steve_Keene_f1.nib
$
Dw00047b_Steve_Keene_f4.nib
$
Dw00047f_Steve_Keene_f3.nib
$
Dw00048b_Steve_Keene_f6.nib
$
Dw00048f_Steve_Keene_f5.nib
$
Dw00049b_Mixed_Up_Mother_Goose_f2.nib
$
Dw00049f_Mixed_Up_Mother_Goose_f1.nib
$
Dw00050b_Mixed_Up_Mother_Goose_f4.nib
$
Dw00050f_Mixed_Up_Mother_Goose_f3.nib
$
Dw00051b_Dragon_World_f2.nib
$
Dw00051f_Dragon_World_f1.nib
$
Dw00052b_Dragon_World_f4_Incertain.nib
$
Dw00052f_Dragon_World_f3.nib
$
Dw00053b_The_Neverending_Story.nib
$
Dw00053f_Dragon_World_f5.nib
$
Dw00054b_Maniac_Mansion_f2_Incertain.nib
$
Dw00054f_Maniac_Mansion_f1_err.nib
$
Dw00055b_Star_Trek_f2.nib
$
Dw00055f_Star_Trek_f1.nib
$
Dw00056b_Star_Trek_f4.nib
$
Dw00056f_Star_Trek_f3.nib
$
Dw00057b_9_Princes_In_Amber_f2.nib
$
Dw00057f_9_Princes_In_Amber_f1.nib
$
Dw00058b_9_Princes_In_Amber_f4.nib
$
Dw00058f_9_Princes_In_Amber_f3.nib
$
Dw00059b_The_Dark_Crystal_f2.nib
$
Dw00059f_The_Dark_Crystal_f1.nib
$
Dw00060b_The_Dark_Crystal_f4.nib
$
Dw00060f_The_Dark_Crystal_f3.nib
$
Dw00064b_Where_In_Europe_Is_Carmen_San_Diego_f2.nib
$
Dw00064f_Where_In_Europe_Is_Carmen_San_Diego_f1.nib
$
Dw00065b_Where_In_USA_Is_Carmen_San_Diego_f2.nib
$
Dw00065f_Where_In_USA_Is_Carmen_San_Diego_f1.nib
$
Dw00066b_Where_In_North_Dakota_Is_Carmen_San_Diego_f2.nib
$
Dw00066f_Where_In_North_Dakota_Is_Carmen_San_Diego_f1.nib
$
Dw00067b_Where_In_America_S_Past_Is_Carmen_San_Diego_f2.nib
$
Dw00067f_Where_In_America_S_Past_Is_Carmen_San_Diego_f1.nib
$
Dw00068b_Where_In_America_S_Past_Is_Carmen_San_Diego_f4.nib
$
Dw00068f_Where_In_America_S_Past_Is_Carmen_San_Diego_f3.nib
$
Dw00069b_Where_In_The_World_Is_Carmen_San_Diego_f2.nib
$
Dw00069f_Where_In_The_World_Is_Carmen_San_Diego_f1.nib
$
Dw00070b_The_Hobbit_f2.nib
$
Dw00070f_The_Hobbit_f1.nib
$
Dw00071b_The_Shadows_Of_Mordor_f2.nib
$
Dw00071f_The_Shadows_Of_Mordor_f1_err.nib
$
Dw00072b_Dark_Lord_f2.nib
$
Dw00072f_Dark_Lord_f1.nib
$
Dw00073b_Spiderman_f2.nib
$
Dw00073f_Spiderman_f1.nib
$
Dw00074b_Fantastic_4_f2.nib
$
Dw00074f_Fantastic_4_f1.nib
$
Dw00075b_Portal_f2.nib
$
Dw00075f_Portal_f1.nib
$
Dw00076b_Portal_f4.nib
$
Dw00076f_Portal_f3.nib
$
Dw00077b_Portal_f6.nib
$
Dw00077f_Portal_f5.nib
$
Dw00078b_Adventure_Construction_Set_f2.nib
$
Dw00078f_Adventure_Construction_Set_f1.nib
$
Dw00079b_Adventure_Construction_Set_f4.nib
$
Dw00079f_Adventure_Construction_Set_f3.nib
$
Dw00080b_The_Missing_Ring.nib
$
Dw00080f_The_Sands_Of_Egypt.nib
$
Dw00081b_Destiny_f2.nib
$
Dw00081f_Destiny_f1.nib
$
Dw00082b_Rambo_II_Text.nib
$
Dw00082f_Batman_Text.nib
$
Dw00083b_Tass_Times_In_ToneTown_f2.nib
$
Dw00083f_Tass_Times_In_ToneTown_f1.nib
$
Dw00084b_Intrigue_f2.nib
$
Dw00084f_Intrigue_f1.nib
$
Dw00085b_Lucifer_S_Realm_f2.nib
$
Dw00085f_Lucifer_S_Realm_f1.nib
$
Dw00086b_Quest_Of_The_Gem_f2.nib
$
Dw00086f_Quest_Of_The_Gem_f1.nib
$
Dw00087b_Escape_From_Rungistan.nib
$
Dw00087f_ET_Comes_Back.nib
$
Dw00088b_Amazon_f2.nib
$
Dw00088f_Amazon_f1.nib
$
Dw00089b_Amazon_f4.nib
$
Dw00089f_Amazon_f3_err.nib
$
Dw00090b_the_Dallas_Quest_f2.nib
$
Dw00090f_the_Dallas_Quest_f1.nib
$
Dw00091b_Universe_II_f3.nib
$
Dw00091f_Universe_II_f2.nib
$
Dw00092b_Universe_II_f5.nib
$
Dw00092f_Universe_II_f4.nib
$
Dw00093b_The_Blade_Of_Blackpoole_f2.nib
$
Dw00093f_The_Blade_Of_Blackpoole_f1.nib
$
Dw00094b_Borrowed_Time_f2.nib
$
Dw00094f_Borrowed_Time_f1.nib
$
Dw00095b_The_Quest_f2.nib
$
Dw00095f_The_Quest_f1.nib
$
Dw00096b_The_Count_f2.nib
$
Dw00096f_The_Count_f1.nib
$
Dw00097b_Gunslinger_f2.nib
$
Dw00097f_Gunslinger_f1.nib
$
Dw00098f_New_World.nib
$
Dw00099b_The_Crimson_Crown_f2_err.nib
$
Dw00099f_The_Crimson_Crown_f1.nib
$
Dw00100b_Universe_II_f1.nib
$
Dw00100f_Guild_Of_Thieves.nib
$
Dw00101b_Fraktured_Faebles_f2.nib
$
Dw00101f_Fraktured_Faebles_f1.nib
$
Dw00102b_The_Tracer_Sanction_f2.nib
$
Dw00102f_The_Tracer_Sanction_f1.nib
$
Dw00103b_Mindshadow_f2.nib
$
Dw00103f_Mindshadow_f1.nib
$
Dw00104b_Mummy_S_Curse.nib
$
Dw00104f_Fortress_Of_The_Witch_King.nib
$
Dw00105b_221b_Baker_Street_f2.nib
$
Dw00105f_221b_Baker_Street_f1.nib
$
Dw00106b_The_Pawn_Text.nib
$
Dw00106f_Robots_Of_Dawn_Text.nib
$
Dw00107b_Sherlock_Holmes_f2.nib
$
Dw00117b_Madventure.nib
$
Dw00107f_Sherlock_Holmes_f1.nib
$
Dw00108b_Abyssal_Zone_f2.nib
$
Dw00108f_Abyssal_Zone_f1.nib
$
Dw00109b_Farenheit_451_f2.nib
$
Dw00109f_Farenheit_451_f1.nib
$
Dw00110b_Farenheit_451_f4.nib
$
Dw00110f_Farenheit_451_f3.nib
$
Dw00111b_San_Francisco_1906_f2.nib
$
Dw00111f_San_Francisco_1906_f1.nib
$
Dw00112b_Space_Station_f2.nib
$
Dw00112f_Space_Station_f1.nib
$
Dw00113f_Crown_Of_Arthain.nib
$
Dw00114b_Colonization_f2.nib
$
Dw00114f_Colonization_f1.nib
$
Dw00115b_Foreign_Policy_f2.nib
$
Dw00115f_Foreign_Policy_f1.nib
$
Dw00116b_Murder_Party_f2.nib
$
Dw00116f_Murder_Party_f1.nib
$
Dw00117f_Goldfinger.nib
$
Dw00118b_The_Lion_S_Share_f2.nib
$
Dw00118f_The_Lion_S_Share_f1.nib
$
Dw00119b_Birthday_Castle_f2.nib
$
Dw00119f_Birthday_Castle_f1.nib
$
Dw00120b_Buckaroo_Banzai_f2.nib
$
Dw00120f_Buckaroo_Banzai_f1.nib
$
Dw00121b_The_Usurper_Doc_f2.nib
$
Dw00121f_The_Usurper_f1.nib
$
Dw00122b_Demon_S_Forge.nib
$
Dw00122f_Profession_Detective.nib
$
Dw00123b_Kabul_Spy_f2.nib
$
Dw00123f_Kabul_Spy_f1.nib
$
Dw00124b_La_Pierre_De_Vie_Incertain_Boot_Err.nib
$
Dw00124f_Odyssey_The_Complete_Adventure.nib
$
Dw00125b_The_Spy_S_Adventure_In_South_America_Crack_ToD_f2.nib
$
Dw00125f_The_Spy_S_Adventure_In_South_America_Crack_ToD_f1.nib
$
Dw00126b_Shogun_f2.nib
$
Dw00126f_Shogun_f1.nib
$
Dw00127b_SHogun_f4.nib
$
Dw00127f_Shogun_f3.nib
$
Dw00128b_Shogun_f6.nib
$077D Dw00128f_Shogun_f5.nib
$0784 CAT021 (RPG)
======
$0785
Wizardry_Saga
$0786
Db00003b_Hera_Sword_Of_Rhin_PlayerDisk_CopyThisSideBeforePlaying.nib
$078D
Dr00024f_Sword_Of_Kadash_f1.nib
$0794
Dr00024b_Sword_Of_Kadash_f2_DontPlayWithThisSide.nib
$079B
Dr00037b_Pool_Of_Radiance__Quick_Start_Disk_Cracker_Boot.nib
$07A2
Dr00049f_The_Bard_S_Tale2_Solve_Might_And_Magic_Editor.nib
$07A9
Ultima_Saga
$0803
DX00045F_Champion_Of_Krynn_Boot_Unsigned.NIB
$080A
Dz00019b_Dungeon_Master_Assistant_Volume2_Cracked_Dckd.nib
$0811
Dr00089b_The_Dark_Heart_Of_Uukrul_f5.nib
$0818
Dr00083b_Legacy_Of_The_Ancients_Player_Disk.nib
$081F
Dr00082f_Temple_Of_Aphsai_Trilogy_f1.nib
$0826
Dr00082b_Temple_Of_Aphsai_Trilogy_f2.nib
$082D
Dr00081f_Deathlord_Boot_f1.nib
$0834
Dr00080f_Deathlord_Masters_Scenario_f2.nib
$083B
Dr00077f_Alternate_Reality_The_City_f1.nib
$0842
Dr00078f_Alternate_Reality_The_Dungeon_f1.nib
$0849
Dr00074b_The_Standing_Stones_f2.nib
$0850
Dr00066f_Might_And_Magic2_f1.nib
$0857
Dr00062f_The_Bard_S_Tale3_f1.nib
$085E
Dr00046f_Demon_S_Winter_f1.nib
$0785 CAT000 (Wizardry_Saga)
======
$07A9 CAT009 (Ultima_Saga)
======
$07AA
Dr00012b_Ultima_V_Dungeon.nib
$07B1
Dr00012f_Ultima_V_Program_Boot.nib
$07B8
Dr00013b_Ultima_V_Underworld.nib
$07BF
Dr00013f_Ultima_V_Britannia.nib
$07C6
Dr00014b_Ultima_V_Dwelling.nib
$07CD
Dr00014f_Ultima_V_Towne.nib
$07D4
Dr00015b_Ultima_V_Keep.nib
$07DB
Dr00015f_Ultima_V_Castle_Villages.nib
$07E2
Ultima_6_Preview_NO_DIFFUSION
$07E2 $CAT002 (Ultima_6_Preview_NO_DIFFUSION)
======
$07E3
Ultima_VI_Rolling_Demo_For_8_Bits_Apple_II__Special_E3__INTERNAL.nib
$07EA Ultima 6 128k Game Demo ProDOS CONFIDENTIAL NO
DIFFUSION.hdv
**********
Codage folder (caractères $7E et $7F)
Nécessite 2 caractères:
XXX
X XXX
X X
X X
XXXXXXx
Cas pour le 1er caractère (screen):
0000000111111122222223333333
0123456012345601234560123456
XXX XXX XXX XXX XXX XXX XXX
X XX XX XX XX
XX XX X
X X X
X X X
X
X X X
X X X
X
XXXXXXXXXXXXXXXXXXXXXXXXXXXX
Cas pour le 2nd caractère (screen):
0000000111111122222223333333
0123456012345601234560123456
XX XX XX XX XX
XX XX
X X
X X X
X X
X X
X X X
X X
XXx XXx XXx XXx XXx XXx XXx
Codage 1er caractère (memory):
76543210
.XXX XXX $77
. XX X $19
. X X $11
. X X $11
.XXXXXXX $7F
$00
.XX XXX $6E
. XX XX $32
. X X $22
. X X $22
.XXXXXXX $7F
$00
.X XXX X $5D
.XX XX $66
.X X $44
.X X $44
.XXXXXXX $7F
$00
. XXX XX $3B
.X XX $4C
. X $08
. X $08
.XXXXXXX $7F
$00
Codage 2nd caractère (memory):
76543210
$00
. XX XX $33
.X X $44
.X X $44
.XXX XXX $77
$00
$00
.XX XX $66
. X $08
. X $08
.XX XXX $6E
$00
$00
.X XX $4C
. X X $11
. X X $11
.X XXX X $5D
$00
$00
. XX X $19
. X X $22
. X X $22
. XXX XX $3B
$00
Rassemblement des 2 caractères (font):
7700
6E00
5D00
3B00
1933
3266
664C
4C19
1144
2208
4411
0822
1144
2208
4411
0822
7F77
7F6E
7F5D
7F3B
0000
0000
0000
0000
**********
HGR Screen addresses:
Screen Line (character)
Byte
Mem address
Font line
00 000 2000
001 2400 1
002 2800 2
003 2C00 3
004 3000 4
005 3400 5
006 3800 6
007 3C00
01 008 2080
009 2480 1
010 2880 2
011 2C80 3
012 3080 4
013 3480 5
014 3880 6
015 3C80
02 016 2100
017 2500 1
018 2900 2
019 2D00 3
020 3100 4
021 3500 5
022 3900 6
023 3D00
03 024 2180
025 2580 1
026 2980 2
027 2D80 3
028 3180 4
029 3580 5
030 3980 6
031 3D80
04 032 2200
033 2600 1
034 2A00 2
035 2E00 3
036 3200 4
037 3600 5
038 3A00 6
039 3E00
05 040 2280
041 2680 1
042 2A80 2
043 2E80 3
044 3280 4
045 3680 5
046 3A80 6
047 3E80
06 048 2300
049 2700 1
050 2B00 2
051 2F00 3
052 3300 4
053 3700 5
054 3B00 6
055 3F00
07 056 2380
057 2780 1
058 2B80 2
059 2F80 3
060 3380 4
061 3780 5
062 3B80 6
063 3F80
08 064 2028
065 2428 1
066 2828 2
067 2C28 3
068 3028 4
069 3428 5
070 3828 6
071 3C28
09 072 20A8
073 24A8 1
074 28A8 2
075 2CA8 3
076 30A8 4
077 34A8 5
078 38A8 6
079 3CA8
10 080 2128
081 2528 1
082 2928 2
083 2D28 3
084 3128 4
085 3528 5
086 3928 6
087 3D28
11 088 21A8
089 25A8 1
090 29A8 2
091 2DA8 3
092 31A8 4
093 35A8 5
094 39A8 6
095 3DA8
12 096 2228
097 2628 1
098 2A28 2
099 2E28 3
100 3228 4
101 3628 5
102 3A28 6
103 3E28
13 104 22A8
105 26A8 1
106 2AA8 2
107 2EA8 3
108 32A8 4
109 36A8 5
110 3AA8 6
111 3EA8
14 112 2328
113 2728 1
114 2B28 2
115 2F28 3
116 3328 4
117 3728 5
118 3B28 6
119 3F28
15 120 23A8
121 27A8 1
122 2BA8 2
123 2FA8 3
124 33A8 4
125 37A8 5
126 3BA8 6
127 3FA8
16 128 2050
129 2450 1
130 2850 2
131 2C50 3
132 3050 4
133 3450 5
134 3850 6
135 3C50
17 136 20D0
137 24D0 1
138 28D0 2
139 2CD0 3
140 30D0 4
141 34D0 5
142 38D0 6
143 3CD0
18 144 2150
145 2550 1
146 2950 2
147 2D50 3
148 3150 4
149 3550 5
150 3950 6
151 3D50
19 152 21D0
153 25D0 1
154 29D0 2
155 2DD0 3
156 31D0 4
157 35D0 5
158 39D0 6
159 3DD0
*** NOT USED (TXT DISPLAY)
20 160 2250
161 2650 1
162 2A50 2
163 2E50 3
164 3250 4
165 3650 5
166 3A50 6
167 3E50
21 168 22D0
169 26D0 1
170 2AD0 2
171 2ED0 3
172 32D0 4
173 36D0 5
174 3AD0 6
175 3ED0
22 176 2350
177 2750 1
178 2B50 2
179 2F50 3
180 3350 4
181 3750 5
182 3B50 6
183 3F50
23 184 23D0
185 27D0 1
186 2BD0 2
187 2FD0 3
188 33D0 4
189 37D0 5
190 3BD0 6
191 3FD0