[an error occurred while processing this directive]

****************************************
* ------------------------------------ *
* НАСТРОЙЩИК ПСЕВДОПЕРЕМЕЩАЕМЫХ ФАЙЛОВ *
* ------------------------------------ *
* by Serkov S.V. version 15.08.94      *
****************************************

; перемещает 3 и 2 байтовые команды, а также псевдокоманды
; DFB и DW. Из-за ошибки разработчиков ассемблера    
; нельзя использовать в псевдоперемещаемой программе 
; выражения DDB.


         ORG ¤4000      



; ОБ'ЯВЛЕНИЕ МЕТОК

; ячеики ZERO PAGE

RADR     EQU ¤06
NAS      EQU ¤08
SERO     EQU ¤2A
ADR      EQU ¤4E
HRAN     EQU ¤01
LIR      EQU ¤C9
KOM      EQU ¤15
STEK     EQU ¤100

; константа     

REBDLL   EQU ¤C4
REBDLH   EQU ¤00
           
; подпрограммы          

RTSPZU   EQU ¤FFCB
         
         
         JSR ¤FF4B       сохранить регистры
BEGIN    JSR RTSPZU      установка RADR
         TSX
         DEX
         LDA #REBDLL
         CLC
         ADC STEK,X
         STA RADR
         INX
         LDA #REBDLH
         ADC STEK,X
         STA RADR+1

         LDA#6           установка NAS
         CLC
         ADC RADR
         STA NAS
         LDA#0
         TAY
         ADC RADR+1
         STA NAS+1
         
         LDA (RADR),Y    установить LIR
         STA LIR
         INY
         LDA (RADR),Y
         STA LIR+1

         LDY#4           установка ADR и SERO
         LDA (RADR),Y
         CLC    
         ADC NAS
         STA ADR
         INY
         LDA (RADR),Y
         ADC NAS+1
         STA ADR+1
         LDA #4
         CLC
         ADC ADR
         STA ADR
         STA SERO
         LDA #0
         TAY
         ADC ADR+1
         STA ADR+1
         STA SERO+1
         
CSICL    LDA (ADR),Y     Y=0
         BNE RETURN
         TYA             A=0
         STA (SERO),Y
         
         JSR ¤FF40       восстановить регистры
START    JMP (NAS)

RETURN   INY             Y=1
         LDA (ADR),Y
         CLC
         ADC NAS
         STA HRAN
         INY             Y=2
         LDA (ADR),Y
         ADC NAS+1
         STA HRAN+1
         
         LDY#0
         LDA (HRAN),Y
         TAX
         LDA (ADR),Y     Y=0
         PHA
         BMI CS1         3 BYTES
         ASL A
         BMI CS2         2 BYTES
         PLA
         TXA
         SEC
         SBC LIR
         CLC
         ADC NAS
CS7      STA (HRAN),Y

CS6      LDA#4
         CLC
         ADC ADR
         STA ADR
         LDA#0
         TAY             Y=0
         ADC ADR+1
         STA ADR+1
         TYA             A=0
         BEQ CSICL       (JMP)

CS1      INY             Y=1
         LDA (HRAN),Y
         TAX
         DEY             Y=0
         LDA (HRAN),Y
         SEC
         BCS CS4         (JMP)

CS2      LDY#3
         LDA (ADR),Y     2 BYTES LOW
         SEC
CS4      SBC LIR
         STA KOM
         TXA
         SBC LIR+1
         STA KOM+1
         
         LDA NAS
         CLC
         ADC KOM
         TAX             X=LOW
         LDA NAS+1
         ADC KOM+1
         TAY             Y=HIGH
         PLA
         BMI CS5         3 BYTES
         TYA
         LDY#0
         BEQ CS7
         
CS5      TYA
         LDY#1
         STA (HRAN),Y
         TXA
         DEY             Y=0
         BEQ CS7         (JMP)
         

     

.ст Раздел I:Приложение 6

[an error occurred while processing this directive]