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
16-05-88/B\OSB26.m0
16-05-88/B\OSB26.m1
16-05-88/B\OSB26.m2
16-05-88/B\OSB26.m4
16-05-88/B\OSB26.m5