Home » Personal collection » Acorn tapes » Electron_User » Electron_User_tape27b_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_tape27b_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:

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
MS-Gen.m0
MS-Gen.m1
MS-Gen.m2
MS-Gen.m4
MS-Gen.m5