; Desasemblage loader Loriciel jeu 3D-Fight par T&J/GPA
; Page ecran avec le chat !

9068  RET  PE  ; adresse de chargement du fichier
9069  INC  BC

906A  RET   C  ; longueur du fichier 
906B  LD   E,C

906C  CP   L   ; adresse d'execution (codee)
906D  DEC  BC

906E  INC  SP  ; nom du fichier, uniquement utile pour l'affichage, pas
906F  LD   B,H ; le chargement.
9070  DEC  L
9071  LD   B,(HL)
9072  LD   C,C
9073  LD   B,A
9074  LD   C,B
9075  LD   D,H
9076  NOP  
9077  NOP  
9078  NOP  
9079  NOP  
907A  NOP  
907B  NOP  
907C  NOP  
907D  NOP  
907E  NOP  
907F  NOP  
9080  NOP  
9081  NOP  
9082  NOP  
9083  NOP  
9084  NOP  
9085  NOP  
9086  NOP  
9087  NOP  
9088  NOP  
9089  NOP  
908A  NOP  
908B  NOP  
908C  NOP  
908D  NOP  
908E  NOP  

908F  LD   HL,&0000  ; CPC a la benne !
9092  LD   DE,&0001
9095  LD   BC,&B000
9098  LD   (HL),&C9
909A  DI   
909B  LDIR 
909D  JP   &908F

; Point d'entree du loader

; Connexion ROM inferieure
90A0  DI           
90A1  EXX  
90A2  RES  2,C     ; LD BC,&7F8A
90A4  OUT  (C),C
90A6  EXX  
90A7  EI   

90A8  LD   HL,&0040 ; recopie ROM entre &00 et &3F en RAM
90AB  DEC  L
90AC  LD   A,(HL)
90AD  LD   (HL),A
90AE  JR   NZ,&90AB

90B0  LD   A,&BD37 ; Verification si le vecteur &BD37 n'a pas ete
90B3  CP   &CF     ; detourne. Si oui, vidage memoire !
90B5  JR   NZ,&908F

90B7  CALL &BD37   ; initialisation des vecteurs systemes
90BA  CALL &BB03   ; un peu de tout...
90BD  CALL &BB4E
90C0  CALL &BBBA
90C3  CALL &BBFF
90C6  CALL &BC65
90C9  CALL &BCA7
90CC  CALL &BCC8

90CF  CALL &BB48
90D2  LD   A,&C9
90D4  LD   &BDEE,A
90D7  CALL &BBFF
90DA  CALL &BB4E
90DD  LD   HL,&0B0B
90E0  CALL &BB75

90E3  LD   DE,&81E9
90E6  LD   HL,&91A3 ; Message "LORICIELS prsente"
90E9  CALL &91F2

90EC  LD   A,&03
90EE  CALL &BB90
90F1  LD   HL,&906E
90F4  LD   B,&00
90F6  LD   A,(HL)
90F7  OR   A
90F8  JR    Z,&9101
90FA  INC  B
90FB  INC  HL
90FC  JR   &90F6
90FE  LD   HL,&21E9

9101  SRL  B
9103  LD   A,&14
9105  SUB  B
9106  LD   H,A
9107  LD   L,&0F
9109  CALL &BB75

910C  LD   HL,&906E ; Message "3D-FIGHT"
910F  CALL &91F2
9112  LD   A,&02
9114  CALL &BB90
9117  LD   HL,&0815
911A  CALL &BB75
911D  LD   HL,&922D ; Message "Veuillez patienter S.V.P"
9120  CALL &91F2

9123  LD   HL,&0917
9126  CALL &BB75
9129  LD   HL,&9247 ; Message "Le programme se charge"
912C  CALL &91F2

912F  LD   DE,&00FF
9132  LD   HL,&93CB  ; Init table des caracteres
9135  CALL &BBAB

9138  LD   B,&04     ; Affichage du LOGO avec le chat sous la forme de
913A  LD   HL,&0F04  ; caracteres redefinis !
913D  LD   DE,&925E

9140  LD   C,&0A 
9142  PUSH HL    
9143  CALL &BB75
9146  POP  HL

9147  PUSH BC
9148  PUSH HL
9149  PUSH DE
914A  LD   A,&FF
914C  EX   DE,HL
914D  CALL &BBA8
9150  LD   A,&FF
9152  CALL &BB5A
9155  POP  HL
9156  LD   DE,&0008
9159  ADD  HL,DE
915A  EX   DE,HL
915B  POP  HL
915C  POP  BC
915D  DEC  C
915E  JR   NZ,&9147
9160  INC  L
9161  DJNZ &9140

9163  CALL &BC65  ; Init MOS

9166  LD   HL,&00FA ; Vitesse d'ecriture, utile ?
9169  LD   A,&25
916B  CALL &BC68

916E  DI          ; Rebelote, connexion ROM inferieure
916F  EXX         ; Utile car les vecteurs systemes utilises precedemment ont
9170  RES  2,C    ; remis la page RAM &0000-&3FFF en "ligne".
9172  OUT  (C),C
9174  EXX  

9175  LD   A,&C9
9177  LD   &BDEE,A

917A  LD   HL,&91B6    ; Saut vers la routine de decodage de l'adresse
917D  PUSH HL          ; d'execution.
917E  LD   HL,(&9068)  ; Adresse implantation donnees a charger
9181  LD   DE,(&906A)  : longueur du code a charger
9185  LD   A,&29E2
9188  CP   &C9
918A  LD   A,H
918B  JP    Z,&91FB
918E  CALL &2873
9191  PUSH AF
9192  LD   HL,&28B8
9195  PUSH HL
9196  CALL &2919
9199  POP  HL
919A  CALL  C,&91D5
919D  JP   NC,&908F
91A0  JP   &2860

91A3  LD   C,H  ; Message "LORICIELS Presente"
91A4  LD   C,A
91A5  LD   D,D
91A6  LD   C,C
91A7  LD   B,E
91A8  LD   C,C
91A9  LD   B,L
91AA  LD   C,H
91AB  LD   D,E
91AC  JR   NZ,&91FE
91AE  LD   (HL),D
91AF  LD   H,L
91B0  LD   (HL),E
91B1  LD   H,L
91B2  LD   L,(HL)
91B3  LD   (HL),H
91B4  LD   H,L
91B5  NOP  

91B6  DI          ; Hop, On deconnecte la ROM inferieure
91B7  EXX                   
91B8  SET  2,C
91BA  OUT  (C),C
91BC  EXX  
91BD  EI   

91BE  LD   A,&906C  ; Decodage adresse d'execution du programme charge.
91C1  LD   B,&00    ; Le resultat est mis dans HL. 
91C3  XOR  &A5      ; La routine fait un bete XOR &A5 sur l'octet de
91C5  CP   &34      ; poids faible de l'adresse d'execution. 
91C7  JR   NC,&91CB
91C9  LD   B,&03
91CB  XOR  &A5
91CD  LD   L,A
91CE  LD   A,&906D
91D1  LD   H,A
91D2  JP   &90E4  ; = JP (HL)

91D5  SLA  D
91D7  LD   A,D
91D8  OR   A
91D9  JR    Z,&91E8
91DB  PUSH HL
91DC  PUSH DE
91DD  LD   E,&80
91DF  CALL &28AE
91E2  POP  DE
91E3  POP  HL
91E4  RET  NC
91E5  DEC  D
91E6  JR   NZ,&91DB
91E8  LD   BC,&FFFF
91EB  LD   (&B8D3),BC
91EF  LD   D,&81
91F1  JP   (HL)

91F2  LD   A,(HL) ; Affichage d'une chaine de caracteres
91F3  OR   A
91F4  RET   Z
91F5  CALL &BB5A
91F8  INC  HL
91F9  JR   &91F2

; Loader K7 664/6128

91FB  CALL &29E3    ; demarrage moteur K7
91FE  PUSH AF
91FF  LD   HL,&2A28
9202  PUSH HL
9203  CALL &2A89
9206  POP  HL
9207  CALL  C,&9210
920A  JP   NC,&908F
920D  JP   &29D0
9210  SLA  D
9212  LD   A,D
9213  OR   A
9214  JR    Z,&9223
9216  PUSH HL
9217  PUSH DE
9218  LD   E,&80
921A  CALL &2A1E
921D  POP  DE
921E  POP  HL
921F  RET  NC
9220  DEC  D
9221  JR   NZ,&9216
9223  LD   BC,&FFFF
9226  LD   (&B1EB),BC
922A  LD   D,&81
922C  JP   (HL)      

922D  LD   D,(HL)  ; Message "Veuillez patienter S.V.P"
922E  LD   H,L
922F  LD   (HL),L
9230  LD   L,C
9231  LD   L,H
9232  LD   L,H
9233  LD   H,L
9234  LD   A,D
9235  JR   NZ,&92A7
9237  LD   H,C
9238  LD   (HL),H
9239  LD   L,C
923A  LD   H,L
923B  LD   L,(HL)
923C  LD   (HL),H
923D  LD   H,L
923E  LD   (HL),D
923F  JR   NZ,&9294
9241  LD   L,&56
9243  LD   L,&50
9245  LD   L,&00
9247  LD   C,H    ; Message "Le programme se charge"
9248  LD   H,L
9249  JR   NZ,&92BB
924B  LD   (HL),D
924C  LD   L,A
924D  LD   H,A
924E  LD   (HL),D
924F  LD   H,C
9250  LD   L,L
9251  LD   L,L
9252  LD   H,L
9253  JR   NZ,&92C8
9255  LD   H,L
9256  JR   NZ,&92BB
9258  LD   L,B
9259  LD   H,C
925A  LD   (HL),D
925B  LD   H,A
925C  LD   H,L
925D  NOP  

925E  NOP  ; table de caracteres correspondant au petit chat
----
93A7  NOP 

Fin du desassemblage