[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]