&ô >Sloader BudgieSoft screen saver !ô V1.01 © 1997 Richard Murray ô (%ô Assembler programming example 1 2:ô Downloaded from: http://www.heyrick.co.uk/assembler/ <: Fî … ñ ö$+" at "+Ã(ž/10) : à P: ZÞ code% &1000 dã pass% = 4 ¸ 6 ˆ 2 n P%=0 x O%=code% ‚ [ OPT pass% Œ – MOV R10, R14   MOV R0, #&4C ª SWI "XOS_Find" ´ BVS exit ¾ MOV R5, R0 È Ò MOV R8, #0 Ü .skip_header æ MOV R1, R5 ð BL read_byte ú ADD R8, R8, #1  CMP R8, #26  BLT skip_header  " MOV R0, #&87 , SWI "XOS_Byte" 6 @ MOV R1, R5 J BL read_byte T CMP R0, R2 ^ SWINE &100 + 22 h SWINE "OS_WriteC" r | ADR R0, vdu_block † ADD R1, R0, #12 $ SWI "OS_ReadVduVariables" š LDR R2, [R1] ¤ LDR R3, [R1, #4] ® ADD R3, R3, R2 ¸ SUB R2, R2, #1 Â Ì MOV R4, #0 Ö ADR R7, os_block à .col_loop ê MOV R1, R5 ô STRB R4, [R7, #0] þ MOV R0, #17  STRB R0, [R7, #1]  BL read_byte  STRB R0, [R7, #2] & BL read_byte 0 STRB R0, [R7, #3] : BL read_byte D STRB R0, [R7, #4] N MOV R0, #&0C X MOV R1, R7 b SWI "OS_Word" l MOV R1, R5 v MOV R0, #18 € STRB R0, [R7, #1] Š BL read_byte ” STRB R0, [R7, #2] ž BL read_byte ¨ STRB R0, [R7, #3] ² BL read_byte ¼ STRB R0, [R7, #4] Æ MOV R0, #&0C Ð MOV R1, R7 Ú SWI "OS_Word" ä ADD R4, R4, #1 î CMP R4, #16 ø BLT col_loop    MOV R0, #0  MOV R1, R5   .main_loop * BL read_byte 4 MOV R4, R0 > BL read_byte H .loop2 R SUB R0, R0, #1 \ STRB R4, [R2, #1]! f CMP R0, #0 p BGT loop2 z CMP R2, R3 „ BLT main_loop Ž ˜ MOV R0, #0 ¢ MOV R1, R5 ¬ SWI "XOS_Find" ¶ À .exit Ê MOV PC, R10 Ô Þ .read_byte è SWI "XOS_BGet" ò MOVVC PC, R14 ü  .error  MOV R2, R0  MOV R1, R5 $ MOV R0, #0 . SWI "XOS_Find" 8 MOV R0, R2 B „R PC, R7, #1<<28 L V .vdu_block ` EQUD 149 j EQUD 7 t EQUD -1 ~ EQUD 0 ˆ EQUD 0 ’ œ .os_block ¦ EQUD 0 ° EQUB 0 º ALIGN Ä Î ] Øí â ì5ÿ("Save .Loader "+Ã~(code%)+" "+Ã~(O%)) ö'ÿ("SetType .Loader &FFC") ÿ