Home » CEEFAX disks » telesoftware7.adl » 16-05-88/B\OSB26
16-05-88/B\OSB26
This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.
Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.
Tape/disk: | Home » CEEFAX disks » telesoftware7.adl |
Filename: | 16-05-88/B\OSB26 |
Read OK: | ✔ |
File size: | 04E3 bytes |
Load address: | 0000 |
Exec address: | 0000 |
File contents
*| Osbits Module B/osb26 *| Word Processors for Source Code *| Version 1.1 7.6.87 *| *| Save and then Exec *BASIC AUTO REM Osbits Module B/osb26 REM Break Intercept to Disable a ROM REM Version 1.2 13.6.87 *KEY1MO.3|M|NL.|M code% = &380 osbyte = &FFF4 rom_number=0 :REM Number of ROM to unplug A%=234 X%=0 Y%=&FF IF (USR(osbyte) AND &FF00)>0 THEN PRINT "I think you have a second processor"'"Please switch it off and start again":STOP FOR pass% = 0 TO 3 STEP 3 P% = code% [OPT pass% \ OSBYTEs 247-9 read/write BREAK intercept code \ &4C is op-code for JUMP, written with 247, and \ address for jump written with 248/9. Code is \ executed twice each BREAK. First time is before \ messages are printed, with carry clear. Second time \ after messages and tube initialisation, with carry set. LDA #247 LDX #&4C LDY #0 JSR osbyte \ OSBYTEs 247-9 write BREAK intercept LDA #248 LDX # break MOD 256 JSR osbyte LDA #249 LDX # break DIV 256 JSR osbyte RTS .break \ This code executed on BREAK BCS exit LDA #0 LDX #rom_number STA &2A1, X \ Write 0 into &2A1 offset rom_number .exit RTS ] NEXT PRINT '"To unplug ROM number ";rom_number;" CALL &";~code%;" and press BREAK"
00000000 2a 7c 20 20 4f 73 62 69 74 73 20 4d 6f 64 75 6c |*| Osbits Modul| 00000010 65 20 42 2f 6f 73 62 32 36 0d 2a 7c 20 20 57 6f |e B/osb26.*| Wo| 00000020 72 64 20 50 72 6f 63 65 73 73 6f 72 73 20 66 6f |rd Processors fo| 00000030 72 20 53 6f 75 72 63 65 20 43 6f 64 65 0d 2a 7c |r Source Code.*|| 00000040 20 20 56 65 72 73 69 6f 6e 20 31 2e 31 20 20 37 | Version 1.1 7| 00000050 2e 36 2e 38 37 0d 2a 7c 0d 2a 7c 20 20 53 61 76 |.6.87.*|.*| Sav| 00000060 65 20 61 6e 64 20 74 68 65 6e 20 45 78 65 63 0d |e and then Exec.| 00000070 20 0d 0d 2a 42 41 53 49 43 0d 41 55 54 4f 0d 52 | ..*BASIC.AUTO.R| 00000080 45 4d 20 20 4f 73 62 69 74 73 20 4d 6f 64 75 6c |EM Osbits Modul| 00000090 65 20 42 2f 6f 73 62 32 36 0d 52 45 4d 20 20 42 |e B/osb26.REM B| 000000a0 72 65 61 6b 20 49 6e 74 65 72 63 65 70 74 20 74 |reak Intercept t| 000000b0 6f 20 44 69 73 61 62 6c 65 20 61 20 52 4f 4d 0d |o Disable a ROM.| 000000c0 52 45 4d 20 20 56 65 72 73 69 6f 6e 20 31 2e 32 |REM Version 1.2| 000000d0 20 31 33 2e 36 2e 38 37 0d 20 0d 2a 4b 45 59 31 | 13.6.87. .*KEY1| 000000e0 4d 4f 2e 33 7c 4d 7c 4e 4c 2e 7c 4d 0d 20 0d 63 |MO.3|M|NL.|M. .c| 000000f0 6f 64 65 25 20 3d 20 26 33 38 30 0d 6f 73 62 79 |ode% = &380.osby| 00000100 74 65 20 3d 20 26 46 46 46 34 0d 72 6f 6d 5f 6e |te = &FFF4.rom_n| 00000110 75 6d 62 65 72 3d 30 20 20 20 20 20 20 20 20 20 |umber=0 | 00000120 20 20 20 20 3a 52 45 4d 20 20 4e 75 6d 62 65 72 | :REM Number| 00000130 20 6f 66 20 52 4f 4d 20 74 6f 20 75 6e 70 6c 75 | of ROM to unplu| 00000140 67 0d 20 0d 41 25 3d 32 33 34 0d 58 25 3d 30 0d |g. .A%=234.X%=0.| 00000150 59 25 3d 26 46 46 0d 49 46 20 28 55 53 52 28 6f |Y%=&FF.IF (USR(o| 00000160 73 62 79 74 65 29 20 41 4e 44 20 26 46 46 30 30 |sbyte) AND &FF00| 00000170 29 3e 30 20 54 48 45 4e 20 50 52 49 4e 54 20 22 |)>0 THEN PRINT "| 00000180 49 20 74 68 69 6e 6b 20 79 6f 75 20 68 61 76 65 |I think you have| 00000190 20 61 20 73 65 63 6f 6e 64 20 70 72 6f 63 65 73 | a second proces| 000001a0 73 6f 72 22 27 22 50 6c 65 61 73 65 20 73 77 69 |sor"'"Please swi| 000001b0 74 63 68 20 69 74 20 6f 66 66 20 61 6e 64 20 73 |tch it off and s| 000001c0 74 61 72 74 20 61 67 61 69 6e 22 3a 53 54 4f 50 |tart again":STOP| 000001d0 0d 20 0d 46 4f 52 20 70 61 73 73 25 20 3d 20 30 |. .FOR pass% = 0| 000001e0 20 54 4f 20 33 20 53 54 45 50 20 33 0d 50 25 20 | TO 3 STEP 3.P% | 000001f0 3d 20 63 6f 64 65 25 0d 20 0d 5b 4f 50 54 20 70 |= code%. .[OPT p| 00000200 61 73 73 25 0d 20 0d 5c 20 20 4f 53 42 59 54 45 |ass%. .\ OSBYTE| 00000210 73 20 32 34 37 2d 39 20 72 65 61 64 2f 77 72 69 |s 247-9 read/wri| 00000220 74 65 20 42 52 45 41 4b 20 69 6e 74 65 72 63 65 |te BREAK interce| 00000230 70 74 20 63 6f 64 65 0d 5c 20 20 26 34 43 20 69 |pt code.\ &4C i| 00000240 73 20 6f 70 2d 63 6f 64 65 20 66 6f 72 20 4a 55 |s op-code for JU| 00000250 4d 50 2c 20 77 72 69 74 74 65 6e 20 77 69 74 68 |MP, written with| 00000260 20 32 34 37 2c 20 61 6e 64 0d 5c 20 20 61 64 64 | 247, and.\ add| 00000270 72 65 73 73 20 66 6f 72 20 6a 75 6d 70 20 77 72 |ress for jump wr| 00000280 69 74 74 65 6e 20 77 69 74 68 20 32 34 38 2f 39 |itten with 248/9| 00000290 2e 20 20 43 6f 64 65 20 69 73 0d 5c 20 20 65 78 |. Code is.\ ex| 000002a0 65 63 75 74 65 64 20 74 77 69 63 65 20 65 61 63 |ecuted twice eac| 000002b0 68 20 42 52 45 41 4b 2e 20 20 46 69 72 73 74 20 |h BREAK. First | 000002c0 74 69 6d 65 20 69 73 20 62 65 66 6f 72 65 0d 5c |time is before.\| 000002d0 20 20 6d 65 73 73 61 67 65 73 20 61 72 65 20 70 | messages are p| 000002e0 72 69 6e 74 65 64 2c 20 77 69 74 68 20 63 61 72 |rinted, with car| 000002f0 72 79 20 63 6c 65 61 72 2e 20 53 65 63 6f 6e 64 |ry clear. Second| 00000300 20 74 69 6d 65 0d 5c 20 20 61 66 74 65 72 20 6d | time.\ after m| 00000310 65 73 73 61 67 65 73 20 61 6e 64 20 74 75 62 65 |essages and tube| 00000320 20 69 6e 69 74 69 61 6c 69 73 61 74 69 6f 6e 2c | initialisation,| 00000330 20 77 69 74 68 20 63 61 72 72 79 20 73 65 74 2e | with carry set.| 00000340 0d 20 0d 4c 44 41 20 23 32 34 37 0d 4c 44 58 20 |. .LDA #247.LDX | 00000350 23 26 34 43 0d 4c 44 59 20 23 30 0d 4a 53 52 20 |#&4C.LDY #0.JSR | 00000360 6f 73 62 79 74 65 20 20 20 20 20 20 20 20 20 20 |osbyte | 00000370 20 20 20 20 20 5c 20 4f 53 42 59 54 45 73 20 32 | \ OSBYTEs 2| 00000380 34 37 2d 39 20 77 72 69 74 65 20 42 52 45 41 4b |47-9 write BREAK| 00000390 20 69 6e 74 65 72 63 65 70 74 0d 20 0d 4c 44 41 | intercept. .LDA| 000003a0 20 23 32 34 38 0d 4c 44 58 20 23 20 62 72 65 61 | #248.LDX # brea| 000003b0 6b 20 4d 4f 44 20 32 35 36 0d 4a 53 52 20 6f 73 |k MOD 256.JSR os| 000003c0 62 79 74 65 0d 20 0d 4c 44 41 20 23 32 34 39 0d |byte. .LDA #249.| 000003d0 4c 44 58 20 23 20 62 72 65 61 6b 20 44 49 56 20 |LDX # break DIV | 000003e0 32 35 36 0d 4a 53 52 20 6f 73 62 79 74 65 0d 20 |256.JSR osbyte. | 000003f0 0d 52 54 53 0d 20 0d 2e 62 72 65 61 6b 0d 20 0d |.RTS. ..break. .| 00000400 5c 20 20 54 68 69 73 20 63 6f 64 65 20 65 78 65 |\ This code exe| 00000410 63 75 74 65 64 20 6f 6e 20 42 52 45 41 4b 0d 20 |cuted on BREAK. | 00000420 0d 42 43 53 20 65 78 69 74 0d 4c 44 41 20 23 30 |.BCS exit.LDA #0| 00000430 0d 4c 44 58 20 23 72 6f 6d 5f 6e 75 6d 62 65 72 |.LDX #rom_number| 00000440 0d 53 54 41 20 26 32 41 31 2c 20 58 20 20 20 20 |.STA &2A1, X | 00000450 20 20 20 20 20 20 20 20 20 20 5c 20 57 72 69 74 | \ Writ| 00000460 65 20 30 20 69 6e 74 6f 20 26 32 41 31 20 6f 66 |e 0 into &2A1 of| 00000470 66 73 65 74 20 72 6f 6d 5f 6e 75 6d 62 65 72 0d |fset rom_number.| 00000480 20 0d 2e 65 78 69 74 0d 20 0d 52 54 53 0d 5d 0d | ..exit. .RTS.].| 00000490 4e 45 58 54 0d 50 52 49 4e 54 20 27 22 54 6f 20 |NEXT.PRINT '"To | 000004a0 75 6e 70 6c 75 67 20 52 4f 4d 20 6e 75 6d 62 65 |unplug ROM numbe| 000004b0 72 20 22 3b 72 6f 6d 5f 6e 75 6d 62 65 72 3b 22 |r ";rom_number;"| 000004c0 20 43 41 4c 4c 20 26 22 3b 7e 63 6f 64 65 25 3b | CALL &";~code%;| 000004d0 22 20 61 6e 64 20 70 72 65 73 73 20 42 52 45 41 |" and press BREA| 000004e0 4b 22 0d |K".| 000004e3