4ô ----------------------------------------------  ô DLOAD : program downloader 4ô ---------------------------------------------- (ã pass%=0 ¸ 2 ˆ 2 2 P%=&7000 <[OPT pass% F.file EQUS "PROG" P EQUB 13 Z.blok EQUW file d.oldload EQUD &1900 n.execadd EQUD &1000 x.size EQUD &1234 ‚.attr EQUD 0 Œ.newload EQUD &F00 –.blokad EQUW blok   .move ª LDX blokad \ load PROG ´ LDY blokad+1 \ at old ¾ LDA #&FF \ load È JSR &FFDD \ address Ò CLC \ for add Ü PHP \ save carry æ LDX #0 \ loop count ð .init ú! LDA newload,X \ save newload  STA &80,X \ in &80-&83 ! LDA oldload,X \ save oldload  STA &70,X \ in &70-&73 " PLP \ get carry ," ADC size,X \ save end addr 6 STA &7C,X \ in &7C-&7F @ PHP \ save carry J INX \ bump count T CPX #4 \ init done? ^" BCC init \ no, loop back h" PLP \ balance stack r- LDY #0 \ zero offset from &70/&80 | .loop † LDA (&70),Y \ copy old  STA (&80),Y \ to new š INC &70 \ bump old ¤ BNE bumpnew \ if overflow ® INC &71 \ bump next ¸ BNC bumpnew \ if overflow  INC &72 \ bump next Ì BNE bumpnew \ if overflow Ö INC &73 \ bump next à .bumpnew ê INC &80 \ bump new ô BNE test \ if overflow þ INC &81 \ bump next  BNE test \ if overflow  INC &82 \ bump next  BNE test \ if overflow & INC &83 \ bump next 0 .test : LDX #3 \ count D .tloop N LDA &70,X \ test X CMP &7C,X \ all done? b" BNE loop \ no, loop back l DEX \ next count v BPL tloop \ try again € LDX #&FF \ clear Š TSX \ the stack ”# JMP (execadd) \ start the PROG ž] ¨ í pass% ² Ö move ¼à ÿ