Home » Personal collection » Acorn tapes » Electron_User » Electron_User_tape27a_acorn_eu_1991_september.wav » MS-Gen
MS-Gen
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 » Personal collection » Acorn tapes » Electron_User » Electron_User_tape27a_acorn_eu_1991_september.wav |
Filename: | MS-Gen |
Read OK: | ✔ |
File size: | 04BF bytes |
Load address: | FFFF1A00 |
Exec address: | FFFF8023 |
Duplicates
There are 2 duplicate copies of this file in the archive:
- AEW website » mu » mu_5_25_discs_Micro_User_09_07_D-MU09_07.ssd » MS-Gen
- Personal collection » Acorn tapes » Electron_User » Electron_User_tape27a_acorn_eu_1991_september.wav » MS-Gen
- Personal collection » Acorn tapes » Electron_User » Electron_User_tape27b_acorn_eu_1991_september.wav » MS-Gen
File contents
10 REM MODESWAPPER. 20 REM BY IVAN SAYER. 30 REM (C) THE MICRO USER. 40 MODE7:ON ERROR PRINT ERR,ERL:STOP 50 PROCassemble 60 $&9C0="SAVE MS 0A00 "+STR$~P% 70 X%=&C0:Y%=&09:CALL &FFF7 80 END 90 DEF PROCassemble 100 CODE%=&A00 110 FOR pass%=0 TO 3 STEP 3 120 P%=CODE% 130 [OPT pass% 140 .CODE% 150 CLD 160 LDA #&30\Set screen start in 170 STA &71 \locations &70,&71 180 LDA #&00 190 STA &70 200 .LOOP% 210 LDY #&07\Countdown screen locations 220 .LOOP1% \in groups of eight. 230 LDA (&70),Y\Load current location. 240 TAX \Save a copy in X. 250 JSR BTS% \Cream off odd bits. 260 TXA \Get saved copy. 270 ASL A \Lose the top bit. 280 JSR BTS% \Cream off even bits. 290 LDA &73 \Load re-arranged byte. 300 STA (&70),Y\Store current location. 310 DEY \And so on. 320 BPL LOOP1% 330 LDA &70 \Inc. addressby eight 340 CLC \until screen finished. 350 ADC #&08 360 STA &70 370 BCC LOOP% 380 INC &71 390 LDA &71 400 CMP #&80 410 BNE LOOP% 420 RTS 430 .BTS% 440 ASL A 450 ROL &73 \Grab bit. 460 ASL A \Skip bit. 470 ASL A 480 ROL &73 \Grab bit. 490 ASL A \Skip bit. 500 ASL A 510 ROL &73 \Grab bit. 520 ASL A \Skip bit. 530 ASL A 540 ROL &73 \Grab bit. 550 RTS 560 ] 570 NEXT pass% 580 ENDPROC
� MODESWAPPER. � BY IVAN SAYER. � (C) THE MICRO USER. ( �7:� � � �,�:� 2 �assemble < $&9C0="SAVE MS 0A00 "+�~P% F X%=&C0:Y%=&09:� &FFF7 P � Z � �assemble d CODE%=&A00 n � pass%=0 � 3 � 3 x P%=CODE% � [OPT pass% � .CODE% � CLD �! LDA #&30\Set screen start in � STA &71 \locations &70,&71 � LDA #&00 � STA &70 � .LOOP% �( LDY #&07\Countdown screen locations �! .LOOP1% \in groups of eight. �' LDA (&70),Y\Load current location. �" TAX \Save a copy in X. �$ JSR BTS% \Cream off odd bits. TXA \Get saved copy. " ASL A \Lose the top bit. % JSR BTS% \Cream off even bits. "' LDA &73 \Load re-arranged byte. ,( STA (&70),Y\Store current location. 6 DEY \And so on. @ BPL LOOP1% J% LDA &70 \Inc. addressby eight T' CLC \until screen finished. ^ ADC #&08 h STA &70 r BCC LOOP% | INC &71 � LDA &71 � CMP #&80 � BNE LOOP% � RTS � .BTS% � ASL A � ROL &73 \Grab bit. � ASL A \Skip bit. � ASL A � ROL &73 \Grab bit. � ASL A \Skip bit. � ASL A � ROL &73 \Grab bit. ASL A \Skip bit. ASL A ROL &73 \Grab bit. & RTS 0 ] : � pass% D � �
00000000 0d 00 0a 13 20 f4 20 4d 4f 44 45 53 57 41 50 50 |.... . MODESWAPP| 00000010 45 52 2e 0d 00 14 15 20 f4 20 42 59 20 49 56 41 |ER..... . BY IVA| 00000020 4e 20 53 41 59 45 52 2e 0d 00 1e 1a 20 f4 20 28 |N SAYER..... . (| 00000030 43 29 20 54 48 45 20 4d 49 43 52 4f 20 55 53 45 |C) THE MICRO USE| 00000040 52 2e 0d 00 28 13 20 eb 37 3a ee 20 85 20 f1 20 |R...(. .7:. . . | 00000050 9f 2c 9e 3a fa 0d 00 32 0e 20 f2 61 73 73 65 6d |.,.:...2. .assem| 00000060 62 6c 65 0d 00 3c 1f 20 24 26 39 43 30 3d 22 53 |ble..<. $&9C0="S| 00000070 41 56 45 20 4d 53 20 30 41 30 30 20 22 2b c3 7e |AVE MS 0A00 "+.~| 00000080 50 25 0d 00 46 1a 20 58 25 3d 26 43 30 3a 59 25 |P%..F. X%=&C0:Y%| 00000090 3d 26 30 39 3a d6 20 26 46 46 46 37 0d 00 50 06 |=&09:. &FFF7..P.| 000000a0 20 e0 0d 00 5a 10 20 dd 20 f2 61 73 73 65 6d 62 | ...Z. . .assemb| 000000b0 6c 65 0d 00 64 0f 20 43 4f 44 45 25 3d 26 41 30 |le..d. CODE%=&A0| 000000c0 30 0d 00 6e 16 20 e3 20 70 61 73 73 25 3d 30 20 |0..n. . pass%=0 | 000000d0 b8 20 33 20 88 20 33 0d 00 78 0d 20 50 25 3d 43 |. 3 . 3..x. P%=C| 000000e0 4f 44 45 25 0d 00 82 0f 20 5b 4f 50 54 20 70 61 |ODE%.... [OPT pa| 000000f0 73 73 25 0d 00 8c 0b 20 2e 43 4f 44 45 25 0d 00 |ss%.... .CODE%..| 00000100 96 08 20 43 4c 44 0d 00 a0 21 20 4c 44 41 20 23 |.. CLD...! LDA #| 00000110 26 33 30 5c 53 65 74 20 73 63 72 65 65 6e 20 73 |&30\Set screen s| 00000120 74 61 72 74 20 69 6e 0d 00 aa 1f 20 53 54 41 20 |tart in.... STA | 00000130 26 37 31 20 5c 6c 6f 63 61 74 69 6f 6e 73 20 26 |&71 \locations &| 00000140 37 30 2c 26 37 31 0d 00 b4 0d 20 4c 44 41 20 23 |70,&71.... LDA #| 00000150 26 30 30 0d 00 be 0c 20 53 54 41 20 26 37 30 0d |&00.... STA &70.| 00000160 00 c8 0b 20 2e 4c 4f 4f 50 25 0d 00 d2 28 20 4c |... .LOOP%...( L| 00000170 44 59 20 23 26 30 37 5c 43 6f 75 6e 74 64 6f 77 |DY #&07\Countdow| 00000180 6e 20 73 63 72 65 65 6e 20 6c 6f 63 61 74 69 6f |n screen locatio| 00000190 6e 73 0d 00 dc 21 20 2e 4c 4f 4f 50 31 25 20 5c |ns...! .LOOP1% \| 000001a0 69 6e 20 67 72 6f 75 70 73 20 6f 66 20 65 69 67 |in groups of eig| 000001b0 68 74 2e 0d 00 e6 27 20 4c 44 41 20 28 26 37 30 |ht....' LDA (&70| 000001c0 29 2c 59 5c 4c 6f 61 64 20 63 75 72 72 65 6e 74 |),Y\Load current| 000001d0 20 6c 6f 63 61 74 69 6f 6e 2e 0d 00 f0 22 20 54 | location...." T| 000001e0 41 58 20 20 20 20 20 20 20 20 5c 53 61 76 65 20 |AX \Save | 000001f0 61 20 63 6f 70 79 20 69 6e 20 58 2e 0d 00 fa 24 |a copy in X....$| 00000200 20 4a 53 52 20 42 54 53 25 20 20 20 5c 43 72 65 | JSR BTS% \Cre| 00000210 61 6d 20 6f 66 66 20 6f 64 64 20 62 69 74 73 2e |am off odd bits.| 00000220 0d 01 04 20 20 54 58 41 20 20 20 20 20 20 20 20 |... TXA | 00000230 5c 47 65 74 20 73 61 76 65 64 20 63 6f 70 79 2e |\Get saved copy.| 00000240 0d 01 0e 22 20 41 53 4c 20 41 20 20 20 20 20 20 |..." ASL A | 00000250 5c 4c 6f 73 65 20 74 68 65 20 74 6f 70 20 62 69 |\Lose the top bi| 00000260 74 2e 0d 01 18 25 20 4a 53 52 20 42 54 53 25 20 |t....% JSR BTS% | 00000270 20 20 5c 43 72 65 61 6d 20 6f 66 66 20 65 76 65 | \Cream off eve| 00000280 6e 20 62 69 74 73 2e 0d 01 22 27 20 4c 44 41 20 |n bits..."' LDA | 00000290 26 37 33 20 20 20 20 5c 4c 6f 61 64 20 72 65 2d |&73 \Load re-| 000002a0 61 72 72 61 6e 67 65 64 20 62 79 74 65 2e 0d 01 |arranged byte...| 000002b0 2c 28 20 53 54 41 20 28 26 37 30 29 2c 59 5c 53 |,( STA (&70),Y\S| 000002c0 74 6f 72 65 20 63 75 72 72 65 6e 74 20 6c 6f 63 |tore current loc| 000002d0 61 74 69 6f 6e 2e 0d 01 36 1b 20 44 45 59 20 20 |ation...6. DEY | 000002e0 20 20 20 20 20 20 5c 41 6e 64 20 73 6f 20 6f 6e | \And so on| 000002f0 2e 0d 01 40 0f 20 42 50 4c 20 4c 4f 4f 50 31 25 |...@. BPL LOOP1%| 00000300 0d 01 4a 25 20 4c 44 41 20 26 37 30 20 20 20 20 |..J% LDA &70 | 00000310 5c 49 6e 63 2e 20 61 64 64 72 65 73 73 62 79 20 |\Inc. addressby | 00000320 65 69 67 68 74 0d 01 54 27 20 43 4c 43 20 20 20 |eight..T' CLC | 00000330 20 20 20 20 20 5c 75 6e 74 69 6c 20 73 63 72 65 | \until scre| 00000340 65 6e 20 66 69 6e 69 73 68 65 64 2e 0d 01 5e 0d |en finished...^.| 00000350 20 41 44 43 20 23 26 30 38 0d 01 68 0c 20 53 54 | ADC #&08..h. ST| 00000360 41 20 26 37 30 0d 01 72 0e 20 42 43 43 20 4c 4f |A &70..r. BCC LO| 00000370 4f 50 25 0d 01 7c 0c 20 49 4e 43 20 26 37 31 0d |OP%..|. INC &71.| 00000380 01 86 0c 20 4c 44 41 20 26 37 31 0d 01 90 0d 20 |... LDA &71.... | 00000390 43 4d 50 20 23 26 38 30 0d 01 9a 0e 20 42 4e 45 |CMP #&80.... BNE| 000003a0 20 4c 4f 4f 50 25 0d 01 a4 08 20 52 54 53 0d 01 | LOOP%.... RTS..| 000003b0 ae 0a 20 2e 42 54 53 25 0d 01 b8 0a 20 41 53 4c |.. .BTS%.... ASL| 000003c0 20 41 0d 01 c2 1b 20 52 4f 4c 20 26 37 33 20 20 | A.... ROL &73 | 000003d0 20 20 20 5c 47 72 61 62 20 62 69 74 2e 0d 01 cc | \Grab bit....| 000003e0 1b 20 41 53 4c 20 41 20 20 20 20 20 20 20 5c 53 |. ASL A \S| 000003f0 6b 69 70 20 62 69 74 2e 0d 01 d6 0a 20 41 53 4c |kip bit..... ASL| 00000400 20 41 0d 01 e0 1b 20 52 4f 4c 20 26 37 33 20 20 | A.... ROL &73 | 00000410 20 20 20 5c 47 72 61 62 20 62 69 74 2e 0d 01 ea | \Grab bit....| 00000420 1b 20 41 53 4c 20 41 20 20 20 20 20 20 20 5c 53 |. ASL A \S| 00000430 6b 69 70 20 62 69 74 2e 0d 01 f4 0a 20 41 53 4c |kip bit..... ASL| 00000440 20 41 0d 01 fe 1b 20 52 4f 4c 20 26 37 33 20 20 | A.... ROL &73 | 00000450 20 20 20 5c 47 72 61 62 20 62 69 74 2e 0d 02 08 | \Grab bit....| 00000460 1b 20 41 53 4c 20 41 20 20 20 20 20 20 20 5c 53 |. ASL A \S| 00000470 6b 69 70 20 62 69 74 2e 0d 02 12 0a 20 41 53 4c |kip bit..... ASL| 00000480 20 41 0d 02 1c 1b 20 52 4f 4c 20 26 37 33 20 20 | A.... ROL &73 | 00000490 20 20 20 5c 47 72 61 62 20 62 69 74 2e 0d 02 26 | \Grab bit...&| 000004a0 08 20 52 54 53 0d 02 30 06 20 5d 0d 02 3a 0c 20 |. RTS..0. ]..:. | 000004b0 ed 20 70 61 73 73 25 0d 02 44 06 20 e1 0d ff |. pass%..D. ...| 000004bf