Home » Personal collection » Acorn ADFS disks » Electron_User_Group » EUG_51.ADF » U/TEXT1

U/TEXT1

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 ADFS disks » Electron_User_Group » EUG_51.ADF
Filename: U/TEXT1
Read OK:
File size: 04A5 bytes
Load address: FFFF0E00
Exec address: FFFF802B
Duplicates

There are 2 duplicate copies of this file in the archive:

File contents
   10REM
   20REM"�Double Width Characters
   30REM"�By�The Welder/Faith^Darkage
   40REM"�Faith Productions�1998
   50PROCassemble:MODE1:VDU23,1,0;0;0;0;10,10,10,17,1
   60PROCdouble("    Double Width")
   70PRINT
   80PROCdouble("     Characters")
   90COLOUR3:PRINT''''"This is possibly the smallest routine"'"for producing double width characters."'''"NO nasty tricks are involved like I've"'"seen in other people's similar routines,just proper character manipulation."
  100PRINT''"The code is a meer 106 bytes and it"'"might be quite interesting to see if"'"anyone out there can optimise or reduce"'"it's size...  So, give it a go!"'':COLOUR2
  110PROCdouble("    Live Long And")
  120PRINT
  130PROCdouble("       Prosper")
  140PRINT:END
  150DEFPROCassemble:LOCALI%,P%:DIMQ%110:FORI%=0TO2STEP2:P%=Q%:[OPTI%:STAbits:LDA#10:LDX#bits MOD256:LDY#bits DIV256:JSR&FFF1:LDX#7:.lp LDY#4:.lp2 RORchar,X:LDAchar2,X:AND#&FC:BCCdo:ORA#3:.do RORA:RORA:STAchar2,X:DEY:BNElp2:LDY#4
  160.lp3 RORchar,X:LDAchar3,X:AND#&FC:BCCdo2:ORA#3:.do2 RORA:RORA:STAchar3,X:DEY:BNElp3:.blk DEX:BPLlp:LDX#0:.lp4 LDAvdu1,X:JSR&FFEE:INX:CPX#22:BNElp4:RTS:.bits EQUB0:.char EQUD0:EQUD0:.vdu1 EQUW&E017:.char2 EQUD0:EQUD0:EQUW&E117
  170.char3 EQUD0:EQUD0:EQUW&E0E1:]:NEXT:ENDPROC
  180DEFPROCdouble(A$):LOCALA%,I%:FORI%=1TOLEN(A$):A%=ASC(MID$(A$,I%,1)):CALLQ%:NEXT:ENDPROC

�
�"�Double Width Characters
"�"�By�The Welder/Faith^Darkage
(�"�Faith Productions�1998
2,�assemble:�1:�23,1,0;0;0;0;10,10,10,17,1
<�double("    Double Width")
F�
P�double("     Characters")
Z�3:�''''"This is possibly the smallest routine"'"for producing double width characters."'''"NO nasty tricks are involved like I've"'"seen in other people's similar routines,just proper character manipulation."
d��''"The code is a meer 106 bytes and it"'"might be quite interesting to see if"'"anyone out there can optimise or reduce"'"it's size...  So, give it a go!"'':�2
n �double("    Live Long And")
x�
��double("       Prosper")
��:�
����assemble:�I%,P%:�Q%110:�I%=0�2�2:P%=Q%:[OPTI%:STAbits:LDA#10:LDX#bits �256:LDY#bits �256:JSR&FFF1:LDX#7:.lp LDY#4:.lp2 RORchar,X:LDAchar2,X:�#&FC:BCCdo:�A#3:.do RORA:RORA:STAchar2,X:DEY:BNElp2:LDY#4
��.lp3 RORchar,X:LDAchar3,X:�#&FC:BCCdo2:�A#3:.do2 RORA:RORA:STAchar3,X:DEY:BNElp3:.blk DEX:BPLlp:LDX#0:.lp4 LDAvdu1,X:JSR&FFEE:INX:CPX#22:BNElp4:RTS:.bits EQUB0:.char EQUD0:EQUD0:.vdu1 EQUW&E017:.char2 EQUD0:EQUD0:EQUW&E117
�&.char3 EQUD0:EQUD0:EQUW&E0E1:]:�:�
�;��double(A$):�A%,I%:�I%=1��(A$):A%=�(�A$,I%,1)):�Q%:�:�
�
00000000  0d 00 0a 07 f4 16 07 0d  00 14 1e f4 22 81 44 6f  |............".Do|
00000010  75 62 6c 65 20 57 69 64  74 68 20 43 68 61 72 61  |uble Width Chara|
00000020  63 74 65 72 73 0d 00 1e  22 f4 22 82 42 79 84 54  |cters...".".By.T|
00000030  68 65 20 57 65 6c 64 65  72 2f 46 61 69 74 68 5e  |he Welder/Faith^|
00000040  44 61 72 6b 61 67 65 0d  00 28 1d f4 22 85 46 61  |Darkage..(..".Fa|
00000050  69 74 68 20 50 72 6f 64  75 63 74 69 6f 6e 73 86  |ith Productions.|
00000060  31 39 39 38 0d 00 32 2c  f2 61 73 73 65 6d 62 6c  |1998..2,.assembl|
00000070  65 3a eb 31 3a ef 32 33  2c 31 2c 30 3b 30 3b 30  |e:.1:.23,1,0;0;0|
00000080  3b 30 3b 31 30 2c 31 30  2c 31 30 2c 31 37 2c 31  |;0;10,10,10,17,1|
00000090  0d 00 3c 1f f2 64 6f 75  62 6c 65 28 22 20 20 20  |..<..double("   |
000000a0  20 44 6f 75 62 6c 65 20  57 69 64 74 68 22 29 0d  | Double Width").|
000000b0  00 46 05 f1 0d 00 50 1e  f2 64 6f 75 62 6c 65 28  |.F....P..double(|
000000c0  22 20 20 20 20 20 43 68  61 72 61 63 74 65 72 73  |"     Characters|
000000d0  22 29 0d 00 5a d5 fb 33  3a f1 27 27 27 27 22 54  |")..Z..3:.''''"T|
000000e0  68 69 73 20 69 73 20 70  6f 73 73 69 62 6c 79 20  |his is possibly |
000000f0  74 68 65 20 73 6d 61 6c  6c 65 73 74 20 72 6f 75  |the smallest rou|
00000100  74 69 6e 65 22 27 22 66  6f 72 20 70 72 6f 64 75  |tine"'"for produ|
00000110  63 69 6e 67 20 64 6f 75  62 6c 65 20 77 69 64 74  |cing double widt|
00000120  68 20 63 68 61 72 61 63  74 65 72 73 2e 22 27 27  |h characters."''|
00000130  27 22 4e 4f 20 6e 61 73  74 79 20 74 72 69 63 6b  |'"NO nasty trick|
00000140  73 20 61 72 65 20 69 6e  76 6f 6c 76 65 64 20 6c  |s are involved l|
00000150  69 6b 65 20 49 27 76 65  22 27 22 73 65 65 6e 20  |ike I've"'"seen |
00000160  69 6e 20 6f 74 68 65 72  20 70 65 6f 70 6c 65 27  |in other people'|
00000170  73 20 73 69 6d 69 6c 61  72 20 72 6f 75 74 69 6e  |s similar routin|
00000180  65 73 2c 6a 75 73 74 20  70 72 6f 70 65 72 20 63  |es,just proper c|
00000190  68 61 72 61 63 74 65 72  20 6d 61 6e 69 70 75 6c  |haracter manipul|
000001a0  61 74 69 6f 6e 2e 22 0d  00 64 a4 f1 27 27 22 54  |ation."..d..''"T|
000001b0  68 65 20 63 6f 64 65 20  69 73 20 61 20 6d 65 65  |he code is a mee|
000001c0  72 20 31 30 36 20 62 79  74 65 73 20 61 6e 64 20  |r 106 bytes and |
000001d0  69 74 22 27 22 6d 69 67  68 74 20 62 65 20 71 75  |it"'"might be qu|
000001e0  69 74 65 20 69 6e 74 65  72 65 73 74 69 6e 67 20  |ite interesting |
000001f0  74 6f 20 73 65 65 20 69  66 22 27 22 61 6e 79 6f  |to see if"'"anyo|
00000200  6e 65 20 6f 75 74 20 74  68 65 72 65 20 63 61 6e  |ne out there can|
00000210  20 6f 70 74 69 6d 69 73  65 20 6f 72 20 72 65 64  | optimise or red|
00000220  75 63 65 22 27 22 69 74  27 73 20 73 69 7a 65 2e  |uce"'"it's size.|
00000230  2e 2e 20 20 53 6f 2c 20  67 69 76 65 20 69 74 20  |..  So, give it |
00000240  61 20 67 6f 21 22 27 27  3a fb 32 0d 00 6e 20 f2  |a go!"'':.2..n .|
00000250  64 6f 75 62 6c 65 28 22  20 20 20 20 4c 69 76 65  |double("    Live|
00000260  20 4c 6f 6e 67 20 41 6e  64 22 29 0d 00 78 05 f1  | Long And")..x..|
00000270  0d 00 82 1d f2 64 6f 75  62 6c 65 28 22 20 20 20  |.....double("   |
00000280  20 20 20 20 50 72 6f 73  70 65 72 22 29 0d 00 8c  |    Prosper")...|
00000290  07 f1 3a e0 0d 00 96 cc  dd f2 61 73 73 65 6d 62  |..:.......assemb|
000002a0  6c 65 3a ea 49 25 2c 50  25 3a de 51 25 31 31 30  |le:.I%,P%:.Q%110|
000002b0  3a e3 49 25 3d 30 b8 32  88 32 3a 50 25 3d 51 25  |:.I%=0.2.2:P%=Q%|
000002c0  3a 5b 4f 50 54 49 25 3a  53 54 41 62 69 74 73 3a  |:[OPTI%:STAbits:|
000002d0  4c 44 41 23 31 30 3a 4c  44 58 23 62 69 74 73 20  |LDA#10:LDX#bits |
000002e0  83 32 35 36 3a 4c 44 59  23 62 69 74 73 20 81 32  |.256:LDY#bits .2|
000002f0  35 36 3a 4a 53 52 26 46  46 46 31 3a 4c 44 58 23  |56:JSR&FFF1:LDX#|
00000300  37 3a 2e 6c 70 20 4c 44  59 23 34 3a 2e 6c 70 32  |7:.lp LDY#4:.lp2|
00000310  20 52 4f 52 63 68 61 72  2c 58 3a 4c 44 41 63 68  | RORchar,X:LDAch|
00000320  61 72 32 2c 58 3a 80 23  26 46 43 3a 42 43 43 64  |ar2,X:.#&FC:BCCd|
00000330  6f 3a 84 41 23 33 3a 2e  64 6f 20 52 4f 52 41 3a  |o:.A#3:.do RORA:|
00000340  52 4f 52 41 3a 53 54 41  63 68 61 72 32 2c 58 3a  |RORA:STAchar2,X:|
00000350  44 45 59 3a 42 4e 45 6c  70 32 3a 4c 44 59 23 34  |DEY:BNElp2:LDY#4|
00000360  0d 00 a0 e2 2e 6c 70 33  20 52 4f 52 63 68 61 72  |.....lp3 RORchar|
00000370  2c 58 3a 4c 44 41 63 68  61 72 33 2c 58 3a 80 23  |,X:LDAchar3,X:.#|
00000380  26 46 43 3a 42 43 43 64  6f 32 3a 84 41 23 33 3a  |&FC:BCCdo2:.A#3:|
00000390  2e 64 6f 32 20 52 4f 52  41 3a 52 4f 52 41 3a 53  |.do2 RORA:RORA:S|
000003a0  54 41 63 68 61 72 33 2c  58 3a 44 45 59 3a 42 4e  |TAchar3,X:DEY:BN|
000003b0  45 6c 70 33 3a 2e 62 6c  6b 20 44 45 58 3a 42 50  |Elp3:.blk DEX:BP|
000003c0  4c 6c 70 3a 4c 44 58 23  30 3a 2e 6c 70 34 20 4c  |Llp:LDX#0:.lp4 L|
000003d0  44 41 76 64 75 31 2c 58  3a 4a 53 52 26 46 46 45  |DAvdu1,X:JSR&FFE|
000003e0  45 3a 49 4e 58 3a 43 50  58 23 32 32 3a 42 4e 45  |E:INX:CPX#22:BNE|
000003f0  6c 70 34 3a 52 54 53 3a  2e 62 69 74 73 20 45 51  |lp4:RTS:.bits EQ|
00000400  55 42 30 3a 2e 63 68 61  72 20 45 51 55 44 30 3a  |UB0:.char EQUD0:|
00000410  45 51 55 44 30 3a 2e 76  64 75 31 20 45 51 55 57  |EQUD0:.vdu1 EQUW|
00000420  26 45 30 31 37 3a 2e 63  68 61 72 32 20 45 51 55  |&E017:.char2 EQU|
00000430  44 30 3a 45 51 55 44 30  3a 45 51 55 57 26 45 31  |D0:EQUD0:EQUW&E1|
00000440  31 37 0d 00 aa 26 2e 63  68 61 72 33 20 45 51 55  |17...&.char3 EQU|
00000450  44 30 3a 45 51 55 44 30  3a 45 51 55 57 26 45 30  |D0:EQUD0:EQUW&E0|
00000460  45 31 3a 5d 3a ed 3a e1  0d 00 b4 3b dd f2 64 6f  |E1:]:.:....;..do|
00000470  75 62 6c 65 28 41 24 29  3a ea 41 25 2c 49 25 3a  |uble(A$):.A%,I%:|
00000480  e3 49 25 3d 31 b8 a9 28  41 24 29 3a 41 25 3d 97  |.I%=1..(A$):A%=.|
00000490  28 c1 41 24 2c 49 25 2c  31 29 29 3a d6 51 25 3a  |(.A$,I%,1)):.Q%:|
000004a0  ed 3a e1 0d ff                                    |.:...|
000004a5
U/TEXT1.m0
U/TEXT1.m1
U/TEXT1.m2
U/TEXT1.m4
U/TEXT1.m5