Index du Forum
IDENTIFICATION SERVEUR : 51.83.8.70 - CLIENT : 3.235.66.217

 FAQFAQ   RechercherRechercher   Liste des MembresListe des Membres   Groupes d'utilisateursGroupes d'utilisateurs   S'enregistrerS'enregistrer 
 ProfilProfil   Se connecter pour vérifier ses messages privésSe connecter pour vérifier ses messages privés   ConnexionConnexion 

Outpost (Sirius Software, 1981)

 
Poster un nouveau sujet   Répondre au sujet     Index du Forum -> PROTECTION MALEFIQUE
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
toinet
Site Admin


Inscrit le: 15 Juin 2007
Messages: 3043
Localisation: Le Chesnay, France

MessagePosté le: Ven 14 Déc 2007, 14:10    Sujet du message: Outpost (Sirius Software, 1981) Répondre en citant

Another wonderful game from Sirius Software.

DISK STRUCTURE
It is a non-standard disk, only T0/S0 can be copied! Each track contains the equivalent of thirteen sectors with markers DD AD DA followed by thirteen 512 4*4 coded nibbles.

Last but not least, the first track is track 1.5


BOOT TRACE
Sirius games are actively protected against boot tracing. That is quite mandatory as, once loaded, there are no more calls to the disk, meaning all the program is loaded into memory!

I will not go into the details of boot tracing it as it will take time and place.


MEMORY ORGANIZATION
- T0/S0 - $0800..$08FF
- T0/S1..4 - $0400..$07FF
- T1.5 - $0800..$13FF
- T2.5 - $1400..$1FFF
- T3.5 - $4000..$4BFF
- T4.5 - $4C00..$57FF
- T5.5 - $5800..$63FF
- T6.5 - $6400..$6FFF
- T7.5 - $7000..$7BFF
- T8.5 - $7C00..$87FF
- T9.5 - $8800..$93FF


DISK COPY
You now have all the information to get the complete game and create a DOS binary file. As always, I believe it is better to rewrite the read routines...

Toinet


Derničre édition par toinet le Ven 14 Déc 2007, 21:27; édité 2 fois
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur
toinet
Site Admin


Inscrit le: 15 Juin 2007
Messages: 3043
Localisation: Le Chesnay, France

MessagePosté le: Ven 14 Déc 2007, 14:10    Sujet du message: Répondre en citant

This is the original boot1 code from Outpost:

Code:

*
* Outpost
* (c) 1981, Sirius Software
*
* (k) 2007, LoGo
*

         org   $0800
         mx    %11
         lst   off

*
* EQUATES
*

TXTCLR   EQU   $C050
MIXCLR   EQU   $C052
TXTPAGE1 EQU   $C054
HIRES    EQU   $C057

L0400    =     $0400      ; Boot2 address

*
* CODE
*

L0800    HEX   01

         STA   TXTCLR
         STA   MIXCLR
         STA   TXTPAGE1
         STA   HIRES
         LDX   $2B
         LDA   #>L0400
         STA   $11
         LDY   #<L0400
         STY   $10
L0817    LDA   $C08C,X
         BPL   L0817
L081C    CMP   #$DD
         BNE   L0817
L0820    LDA   $C08C,X
         BPL   L0820
         CMP   #$AD
         BNE   L081C
L0829    LDA   $C08C,X
         BPL   L0829
         CMP   #$DA
         BNE   L081C
L0832    LDA   $C08C,X
         BPL   L0832
         SEC
         ROL
         STA   $0E
L083B    LDA   $C08C,X
         BPL   L083B
         AND   $0E
         STA   ($10),Y
         INY
         BNE   L0832
         INC   $11
         LDA   $11
         CMP   #>L0800
         BNE   L0832

         LDA   $C080,X    ; Remember what Apple said

         LDA   #$09       ; Clear RAM from $0900 to $BFFF
         STA   $01
         LDA   #$00
         STA   $00
         TAY
         LDX   #$B7
L085D    STA   ($00),Y
         INY
         BNE   L085D
         INC   $01
         DEX
         BNE   L085D
         TXA

L0868    INX              ; EOR with Boot1 code
         BEQ   L0871
         EOR   L0800,X
         JMP   L0868

L0871    TAX              ; Move stack pointer
         TXS              ; to the EOR value ($20)

         LDX   #$00       ; Clear ZP
         TXA
L0876    EOR   $00,X
         INX
         BNE   L0876
         LDX   $2B
         JMP   L0400      ; Go to Boot2

         DS    $80
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur
toinet
Site Admin


Inscrit le: 15 Juin 2007
Messages: 3043
Localisation: Le Chesnay, France

MessagePosté le: Ven 14 Déc 2007, 14:11    Sujet du message: Répondre en citant

This is the original boot2 code from Outpost:

Code:

*
* Outpost
* (c) 1981, Sirius Software
*
* (k) 2007, LoGo
*

         org   $0400
         mx    %11
         lst   off

*
* EQUATES
*

SOFTEV   EQU   $03F2
PWREDUP  EQU   $03F4
SPKR     EQU   $C030
TXTCLR   EQU   $C050
TXTPAGE2 EQU   $C055
HIRES    EQU   $C057
RDBANK2  EQU   $C080
ROMIN2   EQU   $C081
INIT     EQU   $FB2F
WAIT     EQU   $FCA8
RESETV   EQU   $FFFC

L0800    =     $0800

*
* CODE
*

L0400    LDY   #$00       ; Clear ZP
L0402    EOR   |$0000,Y
         INY
         BNE   L0402
         TAY
         BEQ   L040E
         JMP   L0774

L040E    LDA   #<L0770    ; The Reset vector
         STA   SOFTEV
         LDA   #>L0770
         STA   SOFTEV+1
         EOR   #$A5
         STA   PWREDUP

         STX   $2B
         NOP

         LDA   ROMIN2     ; Bye bye wildcards
         LDA   ROMIN2
         LDY   #$00
         STY   $00
         LDA   #$D0
         STA   $01
L042E    LDA   ($00),Y
         STA   ($00),Y
         INY
         BNE   L042E
         INC   $01
         BNE   L042E

         LDA   #<L0770    ; The Reset vector
         STA   RESETV
         LDA   #>L0770
         STA   RESETV+1
         LDA   RDBANK2

         LDA   #<L0774    ; the COUT vector
         STA   $36
         STA   $38
         LDA   #>L0774
         STA   $37
         STA   $39

         LDA   #$00       ; Another EOR
         TSX
         STX   $0B
         STA   $0C
         STA   $0D
         STA   $0E
         LDA   $0B
         LDX   #$00
L0461    EOR   L0400,X
         EOR   L0500,X
         EOR   L0600,X
         EOR   L0700,X
         INX
         BNE   L0461

         PHA              ; Values pushed to
         PHA              ; jump to the game

*
*
*

         LDY   #$03       ; Move to track 1.5
         JSR   L0500
L0477    LDY   $0E
         LDA   L05F0,Y
         BNE   L0481
         JMP   L0520      ; All data loaded, next step

L0481    JSR   L0490      ; Load data
         JSR   L04D8      ; Move to next track
         STA   TXTCLR
         INC   $0E
         JMP   L0477

         HEX   BE

*
* LOAD DATA
*

L0490    STA   $05
         CLC
         LDA   #$0C
         STA   $06
         LDY   #$00
         STY   $04
L049B    LDA   $C08C,X
         BPL   L049B
L04A0    CMP   #$DD
         BNE   L049B
L04A4    LDA   $C08C,X
         BPL   L04A4
         CMP   #$AD
         BNE   L04A0
L04AD    LDA   $C08C,X
         BPL   L04AD
         CMP   #$DA
         BNE   L04A0
L04B6    LDA   $C08C,X
         BPL   L04B6
         STA   HIRES
         SEC
         ROL
         STA   TXTCLR
         STA   $0F
L04C5    LDA   $C08C,X
         BPL   L04C5
         AND   $0F
         STA   ($04),Y
         INY
         BNE   L04B6
         INC   $05
         DEC   $06
         BNE   L04B6
         RTS

*
* MOVE ARM
*

L04D8    LDY   #$02
         STX   $2B
L04DC    INC   $0C
         LDA   $0C
         AND   #$03
         ASL
         ORA   $2B
         TAX
         LDA   $C081,X
         JSR   L04F8
         LDA   $C080,X
         JSR   L04F8
         DEY
         BNE   L04DC
         LDX   $2B
         RTS

*
* WAIT
*

L04F8    STA   TXTCLR
         LDA   #$40
         JMP   WAIT

*
* MOVE ARM
*

L0500    JSR   L04DC      ; Move Y phases
         STX   $2B

         LDA   #$00
         LDX   #$0F
         LDY   #$18
         JSR   L0560      ; Display logo
         LDX   $2B
         RTS

         HEX   000000000000000000000000000000

*
* NEXT STEP
*

L0520    LDA   $C088,X
         JSR   L07D0      ; EOR program

                          ; Remember 2 PHA's on entry
                          ; both values are $00

         PLA              ; c <= 00
         TAX              ; c
         PLA              ; d <= 00
         SEC              ; d
         ADC   #$7E       ; d
         PHA              ; d => 82
         TXA              ; c
         CLC              ; c
         SBC   #$00       ; c
         PHA              ; c => 00

         SEC              ; c
         ADC   #$36       ; c
         STA   $00        ; c => $CA
         SEC              ; c
         SBC   #$36       ; c
         STA   $01        ; c => $94
         TAY              ; c

         PLA              ; c <= 00
         PHA              ; c => 00
         CLC              ; c
         ADC   #$64       ; c
         STA   ($00),Y    ; c => $94CA,94 = $64
         INY              ; c
         SEC              ; c
         ADC   #$00       ; c
         STA   ($00),Y    ; c => $94CA,95 = $64

         LDA   #$00       ; c
         STA   $00        ; c
         PLA              ; c <= 00
         PHA              ; c => 00
         STA   ($00),Y    ; c => $9400,95 = $00
         INY              ; c
         SEC              ; c
         SBC   #$08       ; c
         STA   ($00),Y    ; c => $9400,96 = $F8
         RTS

         HEX   00000000000000

*
* SHOW LOGO
*

L0560    STX   $10
         STY   $11
         TAX
         LDA   L05B4,X
         CLC
         ADC   $10
         STA   $12
         LDA   L05B6,X
         CLC
         ADC   $11
         STA   $13
         LDA   L05B0,X
         STA   L058F+1
         LDA   L05B2,X
         STA   L058F+2
         LDX   $11
L0583    LDA   L0738,X
         STA   $14
         LDA   L0700,X
         STA   $15
         LDY   $10
L058F    LDA   L0600+$6C
         STA   ($14),Y
         INC   L058F+1
         BNE   L059C
         INC   L058F+2
L059C    INY
         CPY   $12
         BNE   L058F
         INX
         CPX   $13
         BNE   L0583
         RTS

         HEX   000000000000000000

*
* LOGO TABLES
*

L05B0    HEX   0000
L05B2    HEX   0600
L05B4    HEX   0900
L05B6    HEX   0C00

         HEX   00000000000000000000000000000000
         HEX   00000000000000000000000000000000
         HEX   00000000000000000000000000000000
         HEX   0000000000000000

*
* GAME POINTER
*

L05F0    HEX   0814404C5864707C8800000000000076

*
* LoGo (arf!)
*

L0600    HEX   A8D5AAD5AAD5AAD58288000000000000
         HEX   0082881E333F1F1E1E3F82883F333F3F
         HEX   3F3F3F828833330C3333030C82883333
         HEX   0C3F331E0C828833330C1F33300C8288
         HEX   3F3F0C033F3F0C82881E1E0C031E1E0C
         HEX   82880000000000000082A8D5AAD5AAD5
         HEX   AAD58200000000000000000000000000
         HEX   00000000000000000000000000000000
         HEX   00000000000000000000000000000000
         HEX   00000000000000000000000000000000
         HEX   00000000000000000000000000000000
         HEX   00000000000000000000000000000000
         HEX   00000000000000000000000000000000
         HEX   00000000000000000000000000000000
         HEX   00000000000000000000000000000000
         HEX   00000000000000000000000000000000

*
* HGR address lines
*

L0700    HEX   2024282C3034383C2024282C3034383C
         HEX   2125292D3135393D2125292D3135393D
         HEX   22262A2E32363A3E22262A2E32363A3E
         HEX   23272B2F33373B3F
L0738    HEX   2828282828282828A8A8A8A8A8A8A8A8
         HEX   2828282828282828A8A8A8A8A8A8A8A8
         HEX   2828282828282828A8A8A8A8A8A8A8A8
         HEX   2828282828282828

*
* RESTART ROUTINES
*

L0770    LDA   #$00
         BEQ   L0788
L0774    LDA   #$01
         BNE   L0788
         LDA   #$02
         BNE   L0788
         LDA   #$03
         BNE   L0788
L0780    LDA   #$04
         BNE   L0788
         LDA   #$05
         BNE   L0788

L0788    ORA   #$B0       ; Bing Bong Restart
         BIT   $0800
         JSR   INIT
         LDA   TXTPAGE2
         LDA   #$08
         STA   $01
         LDA   #$01
         STA   $00
         LDY   #$00
         LDX   #$B8
         LDA   #$A0
L07A1    STA   ($00),Y
         INY
         BNE   L07A1
         INC   $01
         DEX
         BNE   L07A1
         LDA   #$08
         STA   $00
L07AF    LDY   #$80
L07B1    LDA   SPKR
         LDX   #$60
L07B6    DEX
         BNE   L07B6
         DEY
         BNE   L07B1
         DEC   $00
         BNE   L07AF

         LDX   $2B        ; I like that routine!
         DEX
         TXA
         LSR
         LSR
         LSR
         LSR
         ORA   #$C0
         PHA
         LDA   #$FF
         PHA
         RTS

         HEX   00

*
* FINAL EOR...
*

L07D0    LDY   #<L0800    ; The last EOR
         STY   $04        ; of the complete
         LDA   #>L0800    ; game...
         STA   $05
         LDA   #$00
L07DA    EOR   ($04),Y
         INY
         BNE   L07DA
         INC   $05
         LDX   $05
         CPX   #$20
         BNE   L07DA
         ASL   $05        ; $2000 => $4000
L07E9    EOR   ($04),Y
         INY
         BNE   L07E9
         INC   $05
         LDX   $05
         CPX   #$94       ; until end of game
         BNE   L07E9
         TAY
         BNE   L0780
         RTS

         HEX   000000000000
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur
toinet
Site Admin


Inscrit le: 15 Juin 2007
Messages: 3043
Localisation: Le Chesnay, France

MessagePosté le: Ven 14 Déc 2007, 14:12    Sujet du message: Répondre en citant

And now, my modified boot1 code:

Code:

*
* Outpost
* (c) 1981, Sirius Software
*
* (k) 2007, LoGo
*

         org   $0800
         mx    %11
         lst   off

*
* Assume SLOT 6 !
* Really optimized !
* Maybe too much...
*

TXTCLR   EQU   $C050
MIXCLR   EQU   $C052
TXTPAGE1 EQU   $C054
HIRES    EQU   $C057

dpBUF    =     $00
dpNIBBLE =     $0E
dpBUFFER =     $10
dpSLOT   =     $2B
dpSECTOR =     $3D
dpBYTE   =     $40
dpTRACK  =     $41

L0300    =     $0300
L0356    =     $0356
BOOT2    =     $A000
BOOT2_END =    $A600

*
*
*

         HEX   01

L0800    STA   TXTCLR     ; HGR mode
         STA   MIXCLR
         STA   TXTPAGE1
         STA   HIRES

         LDA   #<BOOT2
         STA   dpBUFFER
         LDA   #>BOOT2
         STA   dpBUFFER+1

         lda   #0
         sta   dpTRACK

* Read header

mainLOOP ldx   dpTRACK
         lda   INTER,x
         sta   dpSECTOR

readHEADER CLC
readDATA PHP
read1    LDA   $C0EC
         BPL   *-3
read2    EOR   #$D5
         BNE   read1
         LDA   $C0EC
         BPL   *-3
         CMP   #$AA
         BNE   read2
         LDA   $C0EC
         BPL   *-3
         CMP   #$96
         BEQ   doHEADER
         PLP
         BCC   readHEADER
         EOR   #$AD
         BEQ   doDATA
         BNE   readHEADER

* Read header

doHEADER LDY   #$03
]lp      STA   dpBYTE
         LDA   $C0EC
         BPL   *-3
         ROL
         STA   dpNIBBLE
         LDA   $C0EC
         BPL   *-3
         AND   dpNIBBLE
         DEY
         BNE   ]lp
         PLP
         CMP   dpSECTOR   ; Right sector ?
         BNE   readHEADER
         BCS   readDATA

* Read data

doDATA   LDY   #$56
]lp      LDX   $C0EC
         BPL   *-3
         EOR   L0356-$80,X
         DEY
         STA   L0300,Y
         BNE   ]lp

]lp      LDX   $C0EC      ; Y equals 0 ;-)
         BPL   *-3
         EOR   L0356-$80,X
         STA   (dpBUFFER),Y
         INY
         BNE   ]lp

         LDX   $C0EC      ; checksum
         BPL   *-3
         EOR   L0356-$80,X
         BNE   readHEADER

* Deniblize

doNIBBLE1 LDX  #$56       ; Y equals 0 ;-)
doNIBBLE2 DEX
         BMI   doNIBBLE1
         LDA   (dpBUFFER),Y
         LSR   L0300,X
         ROL
         LSR   L0300,X
         ROL
         STA   (dpBUFFER),Y
         INY
         BNE   doNIBBLE2

* Next sector

         inc   dpTRACK    ; next sector
         inc   dpBUFFER+1 ; next buffer
         lda   dpBUFFER+1
         cmp   #>BOOT2_END
         beq   doNEXT
         jmp   mainLOOP

*

doNEXT   LDA   $C0E0      ; Remember what Apple said

         LDX   #$20
         TXS

         JMP   BOOT2      ; Boot 2...

*

INTER    HEX   0D0B09070503

         ds    22

SIGNATURE HEX  20204C4F474F2020
         HEX   2020323030372020

         ds    \
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur
toinet
Site Admin


Inscrit le: 15 Juin 2007
Messages: 3043
Localisation: Le Chesnay, France

MessagePosté le: Ven 14 Déc 2007, 14:14    Sujet du message: Répondre en citant

And my new boot2 code that copies the original $0400..$07FF at the right place and jumps to the right location at $0520:

Code:

*
* Outpost
* (c) 1981, Sirius Software
*
* (k) 2007, LoGo
*

         org   $A000
         mx    %11
         lst   off

*
*
*

dpBUFFER =     $04
dpSECTORS =    $06
dpPHASE  =     $0C
dpNIBBLE =     $0E
dpINDEX  =     $0F

dpSECTOR =     $3D
dpBYTE   =     $40
dpTRACK  =     $41

nbSECTORS =    $0C

L0300    =     $0300
L0356    =     $0356

OUTPOST  =     $0520

WAIT     EQU   $FCA8

*
*
*

         LDA   #$00
         STA   dpPHASE
         STA   dpINDEX

         jsr   showLoGo

L0416    JSR   L0480      ; move arm

         LDY   dpINDEX
         LDA   L0428,Y
         BEQ   L047C
         JSR   L0434      ; load data
         INC   dpINDEX
         JMP   L0416      ; loop

L047C    JMP   BOOT3

L0428    HEX   0814404C5864707C8800

*
* LOAD DATA
*

L0434    STA   dpBUFFER+1

         LDA   #$0C
         STA   dpTRACK

         LDY   #$00
         STY   dpBUFFER

]lp      ldx   dpTRACK
         lda   INTER,x
         sta   dpSECTOR

         JSR   readHEADER

         inc   dpBUFFER+1
         dec   dpTRACK
         bne   ]lp
         rts

*
* We are at $0700 ;-)
*

readHEADER CLC
readDATA PHP
read1    LDA   $C0EC
         BPL   *-3
read2    EOR   #$D5
         BNE   read1
         LDA   $C0EC
         BPL   *-3
         CMP   #$AA
         BNE   read2
         LDA   $C0EC
         BPL   *-3
         CMP   #$96
         BEQ   doHEADER
         PLP
         BCC   readHEADER
         EOR   #$AD
         BEQ   doDATA
         BNE   readHEADER

* Read header

doHEADER LDY   #$03
]lp      STA   dpBYTE
         LDA   $C0EC
         BPL   *-3
         ROL
         STA   dpNIBBLE
         LDA   $C0EC
         BPL   *-3
         AND   dpNIBBLE
         DEY
         BNE   ]lp
         PLP
         CMP   dpSECTOR   ; Right sector ?
         BNE   readHEADER
         BCS   readDATA

* Read data

doDATA   LDY   #$56
]lp      LDX   $C0EC
         BPL   *-3
         EOR   L0356-$80,X
         DEY
         STA   L0300,Y
         BNE   ]lp

]lp      LDX   $C0EC      ; Y equals 0 ;-)
         BPL   *-3
         EOR   L0356-$80,X
         STA   (dpBUFFER),Y
         INY
         BNE   ]lp

         LDX   $C0EC      ; checksum
         BPL   *-3
         EOR   L0356-$80,X
doDATA1  BNE   readHEADER

* Denibblize

doNIBBLE1 LDX  #$56       ; Y equals 0 ;-)
doNIBBLE2 DEX
         BMI   doNIBBLE1
         LDA   (dpBUFFER),Y
* STA $0500,X
         LSR   L0300,X
* STA $0600,X
         ROL
         LSR   L0300,X
* STA $0700,X
         ROL
         STA   (dpBUFFER),Y
         INY
         BNE   doNIBBLE2
         rts

* Interleaving

INTER    HEX   06080A0C0E
         HEX   01030507090B0D00

*
* MOVE ARM
*

L0480    LDY   #$02       ; by 2 phases
]lp      INC   dpPHASE
         LDA   dpPHASE
         AND   #$03
         ASL
         TAX
         LDA   $C0E1,X
         JSR   L04A0
         LDA   $C0E0,X
         JSR   L04A0
         DEY
         BNE   ]lp
         RTS
L04A0    LDA   #$40
         JMP   WAIT

         ds    \

*
* NEXT STEP
*

BOOT3    ldx   #0
]lp      lda   PAGE4,x
         sta   $0400,x
         lda   PAGE5,x
         sta   $0500,x
         lda   PAGE6,x
         sta   $0600,x
         lda   PAGE7,x
         sta   $0700,x
         inx
         bne   ]lp

         LDA   #$00       ; Another EOR
         TSX
         STX   $0B
         STA   $0C
         STA   $0D
         STA   $0E
         LDA   $0B
         LDX   #$00
]lp      EOR   $0400,X
         EOR   $0500,X
         EOR   $0600,X
         EOR   $0700,X
         INX
         BNE   ]lp

         PHA              ; Values pushed to
         PHA              ; jump to the game

         ldx   $2B
         JMP   OUTPOST

*
* SHOW LOGO
*

showLoGo LDA   #$0F
         STA   $10
         CLC
         ADC   #$09
         STA   $12

         LDA   #$18
         STA   $11
         CLC
         ADC   #$0C
         STA   $13

         LDX   $11
L0583    LDA   L0738,X
         STA   $14
         LDA   L0700,X
         STA   $15
         LDY   $10
L058F    LDA   PAGE6
         STA   ($14),Y
         INC   L058F+1
         BNE   L059C
         INC   L058F+2
L059C    INY
         CPY   $12
         BNE   L058F
         INX
         CPX   $13
         BNE   L0583
         RTS

L0700    HEX   2024282C3034383C2024282C3034383C
         HEX   2125292D3135393D2125292D3135393D
         HEX   22262A2E32363A3E22262A2E32363A3E
         HEX   23272B2F33373B3F
L0738    HEX   2828282828282828A8A8A8A8A8A8A8A8
         HEX   2828282828282828A8A8A8A8A8A8A8A8
         HEX   2828282828282828A8A8A8A8A8A8A8A8
         HEX   2828282828282828

         ds    \

*
*
*

PAGE4    HEX   A000590000C8D0FAA8F0034C7407A970
         HEX   8DF203A9078DF30349A58DF403862BEA
         HEX   AD81C0AD81C0A0008400A9D08501B100
         HEX   9100C8D0F9E601D0F5A9708DFCFFA907
         HEX   8DFDFFAD80C0A97485368538A9078537
         HEX   8539A900BA860B850C850D850EA50BA2
         HEX   005D00045D00055D00065D0007E8D0F1
         HEX   4848A003200005A40EB9F005D0034C20
         HEX   0520900420D8048D50C0E60E4C7704BE
         HEX   850518A90C8506A0008404BD8CC010FB
         HEX   C9DDD0F7BD8CC010FBC9ADD0F3BD8CC0
         HEX   10FBC9DAD0EABD8CC010FB8D57C0382A
         HEX   8D50C0850FBD8CC010FB250F9104C8D0
         HEX   E5E605C606D0DF60A002862BE60CA50C
         HEX   29030A052BAABD81C020F804BD80C020
         HEX   F80488D0E7A62B608D50C0A9404CA8FC
PAGE5    HEX   20DC04862BA900A20FA018206005A62B
         HEX   60000000000000000000000000000000
         HEX   BD88C020D00768AA6838697E488A18E9
         HEX   0048386936850038E9368501A8684818
         HEX   69649100C83869009100A90085006848
         HEX   9100C838E90891006000000000000000
         HEX   86108411AABDB4051865108512BDB605
         HEX   1865118513BDB0058D9005BDB2058D91
         HEX   05A611BD38078514BD00078515A410AD
         HEX   6C069114EE9005D003EE9105C8C412D0
         HEX   EEE8E413D0DD60000000000000000000
         HEX   0000060009000C000000000000000000
         HEX   00000000000000000000000000000000
         HEX   00000000000000000000000000000000
         HEX   00000000000000000000000000000000
         HEX   0814404C5864707C8800000000000076
PAGE6    HEX   A8D5AAD5AAD5AAD58288000000000000
         HEX   0082881E333F1F1E1E3F82883F333F3F
         HEX   3F3F3F828833330C3333030C82883333
         HEX   0C3F331E0C828833330C1F33300C8288
         HEX   3F3F0C033F3F0C82881E1E0C031E1E0C
         HEX   82880000000000000082A8D5AAD5AAD5
         HEX   AAD58200000000000000000000000000
         HEX   00000000000000000000000000000000
         HEX   00000000000000000000000000000000
         HEX   00000000000000000000000000000000
         HEX   00000000000000000000000000000000
         HEX   00000000000000000000000000000000
         HEX   00000000000000000000000000000000
         HEX   00000000000000000000000000000000
         HEX   00000000000000000000000000000000
         HEX   00000000000000000000000000000000
PAGE7    HEX   2024282C3034383C2024282C3034383C
         HEX   2125292D3135393D2125292D3135393D
         HEX   22262A2E32363A3E22262A2E32363A3E
         HEX   23272B2F33373B3F2828282828282828
         HEX   A8A8A8A8A8A8A8A82828282828282828
         HEX   A8A8A8A8A8A8A8A82828282828282828
         HEX   A8A8A8A8A8A8A8A82828282828282828
         HEX   A900F014A901D010A902D00CA903D008
         HEX   A904D004A905D00009B02C0008202FFB
         HEX   AD55C0A9088501A9018500A000A2B8A9
         HEX   A09100C8D0FBE601CAD0F6A9088500A0
         HEX   80AD30C0A260CAD0FD88D0F5C600D0EF
         HEX   A62BCA8A4A4A4A4A09C048A9FF486000
         HEX   A0008404A9088505A9005104C8D0FBE6
         HEX   05A605E020D0F306055104C8D0FBE605
         HEX   A605E094D0F3A8D08760000000000000
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur
toinet
Site Admin


Inscrit le: 15 Juin 2007
Messages: 3043
Localisation: Le Chesnay, France

MessagePosté le: Ven 14 Déc 2007, 14:24    Sujet du message: Répondre en citant

And a short routine to load the complete game into memory... Disassembling, reassembling takes less time than boot tracing Wink

Code:

*
* Outpost
* (c) 1981, Sirius Software
*
* (k) 2007, LoGo
*

         org   $3000
         mx    %11
         lst   off

*
* CODE
*

         LDX   #$60
         STX   $2B

         LDA   #$00       ; Another EOR
         STA   $0C
         STA   $0E

*
*
*

         LDY   #$03       ; Move to track 1.5
         JSR   L04DC

L0477    LDY   $0E
         LDA   L05F0,Y
         BNE   L0481
         RTS

L0481    JSR   L0490      ; Load data
         JSR   L04D8      ; Move to next track
         INC   $0E
         JMP   L0477

*
* LOAD DATA
*

L0490    STA   $05
         CLC
         LDA   #$0C
         STA   $06
         LDY   #$00
         STY   $04
L049B    LDA   $C08C,X
         BPL   L049B
L04A0    CMP   #$DD
         BNE   L049B
L04A4    LDA   $C08C,X
         BPL   L04A4
         CMP   #$AD
         BNE   L04A0
L04AD    LDA   $C08C,X
         BPL   L04AD
         CMP   #$DA
         BNE   L04A0
L04B6    LDA   $C08C,X
         BPL   L04B6
         SEC
         ROL
         STA   $0F
L04C5    LDA   $C08C,X
         BPL   L04C5
         AND   $0F
         STA   ($04),Y
         INY
         BNE   L04B6
         INC   $05
         DEC   $06
         BNE   L04B6
         RTS

*
* MOVE ARM
*

L04D8    LDY   #$02
         STX   $2B
L04DC    INC   $0C
         LDA   $0C
         AND   #$03
         ASL
         ORA   $2B
         TAX
         LDA   $C081,X
         JSR   L04F8
         LDA   $C080,X
         JSR   L04F8
         DEY
         BNE   L04DC
         LDX   $2B
         RTS

*
* WAIT
*

L04F8    LDA   #$40
         JMP   $FCA8

*
* GAME POINTER
*

L05F0    HEX   0814404C5864707C8800

         ds    \
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet     Index du Forum -> PROTECTION MALEFIQUE Toutes les heures sont au format GMT + 1 Heure
Page 1 sur 1

 
Sauter vers:  
Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum


Powered by phpBB © 2001, 2005 phpBB Group
Traduction par : phpBB-fr.com