Home » Archimedes archive » Micro User » MU 1991-10.adf » Listings » Routines/Italics

Routines/Italics

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 » Archimedes archive » Micro User » MU 1991-10.adf » Listings
Filename: Routines/Italics
Read OK:
File size: 02D6 bytes
Load address: 0000
Exec address: 0000
File contents
   10REM Italics
   20REM by Richard Hindle
   30REM (c) The Micro User
   40FOR pass=0 TO 3 STEP 3
   50P%=&900:[OPT pass
   60.italics   \ CALL italics or &900
   70LDA &20E:STA old_vector
   80LDA &20F:STA old_vector+1
   90LDA #start MOD 256:STA &20E
  100LDA #start DIV 256:STA &20F:RTS
  110.normal    \ CALL normal  or &917
  120LDA old_vector:STA &20E
  130LDA old_vector+1:STA &20F:RTS
  140.start
  150STA &CF7:TXA:PHA:TYA:PHA
  160LDA #218:LDX #0:LDY #255
  170JSR &FFF4:TXA:BNE chain_on
  180LDA &CF7:CMP #33:BCC chain_on
  190CMP #127:BEQ chain_on
  200LDA #&A:LDX #&F7:LDY #&C
  210JSR &FFF1:LSR &CF8:LSR &CF9
  220ASL &CFD:ASL &CFE:ASL &CFF
  230LDA #&9F:STA &CF7
  240.chain_on
  250PLA:TAY:PLA:TAX:LDA &CF7
  260JMP (old_vector)
  270.old_vector BRK:BRK
  280]:NEXT:*SAVE ITALICS 900 +70


� Italics
� by Richard Hindle
� (c) The Micro User
(� pass=0 � 3 � 3
2P%=&900:[OPT pass
<".italics   \ � italics or &900
FLDA &20E:STA old_vector
PLDA &20F:STA old_vector+1
ZLDA #start � 256:STA &20E
d!LDA #start � 256:STA &20F:RTS
n".normal    \ � normal  or &917
xLDA old_vector:STA &20E
�!LDA old_vector+1:STA &20F:RTS
�
.start
�STA &CF7:TXA:PHA:TYA:PHA
�LDA #218:LDX #0:LDY #255
�JSR &FFF4:TXA:BNE chain_on
�!LDA &CF7:CMP #33:BCC chain_on
�CMP #127:BEQ chain_on
�LDA #&A:LDX #&F7:LDY #&C
�JSR &FFF1:LSR &CF8:LSR &CF9
�ASL &CFD:ASL &CFE:ASL &CFF
�LDA #&9F:STA &CF7
�
.chain_on
�PLA:TAY:PLA:TAX:LDA &CF7
JMP (old_vector)
.old_vector BRK:BRK
]:�:*SAVE ITALICS 900 +70
�
00000000  0d 00 0a 0d f4 20 49 74  61 6c 69 63 73 0d 00 14  |..... Italics...|
00000010  17 f4 20 62 79 20 52 69  63 68 61 72 64 20 48 69  |.. by Richard Hi|
00000020  6e 64 6c 65 0d 00 1e 18  f4 20 28 63 29 20 54 68  |ndle..... (c) Th|
00000030  65 20 4d 69 63 72 6f 20  55 73 65 72 0d 00 28 14  |e Micro User..(.|
00000040  e3 20 70 61 73 73 3d 30  20 b8 20 33 20 88 20 33  |. pass=0 . 3 . 3|
00000050  0d 00 32 15 50 25 3d 26  39 30 30 3a 5b 4f 50 54  |..2.P%=&900:[OPT|
00000060  20 70 61 73 73 0d 00 3c  22 2e 69 74 61 6c 69 63  | pass..<".italic|
00000070  73 20 20 20 5c 20 d6 20  69 74 61 6c 69 63 73 20  |s   \ . italics |
00000080  6f 72 20 26 39 30 30 0d  00 46 1b 4c 44 41 20 26  |or &900..F.LDA &|
00000090  32 30 45 3a 53 54 41 20  6f 6c 64 5f 76 65 63 74  |20E:STA old_vect|
000000a0  6f 72 0d 00 50 1d 4c 44  41 20 26 32 30 46 3a 53  |or..P.LDA &20F:S|
000000b0  54 41 20 6f 6c 64 5f 76  65 63 74 6f 72 2b 31 0d  |TA old_vector+1.|
000000c0  00 5a 1d 4c 44 41 20 23  73 74 61 72 74 20 83 20  |.Z.LDA #start . |
000000d0  32 35 36 3a 53 54 41 20  26 32 30 45 0d 00 64 21  |256:STA &20E..d!|
000000e0  4c 44 41 20 23 73 74 61  72 74 20 81 20 32 35 36  |LDA #start . 256|
000000f0  3a 53 54 41 20 26 32 30  46 3a 52 54 53 0d 00 6e  |:STA &20F:RTS..n|
00000100  22 2e 6e 6f 72 6d 61 6c  20 20 20 20 5c 20 d6 20  |".normal    \ . |
00000110  6e 6f 72 6d 61 6c 20 20  6f 72 20 26 39 31 37 0d  |normal  or &917.|
00000120  00 78 1b 4c 44 41 20 6f  6c 64 5f 76 65 63 74 6f  |.x.LDA old_vecto|
00000130  72 3a 53 54 41 20 26 32  30 45 0d 00 82 21 4c 44  |r:STA &20E...!LD|
00000140  41 20 6f 6c 64 5f 76 65  63 74 6f 72 2b 31 3a 53  |A old_vector+1:S|
00000150  54 41 20 26 32 30 46 3a  52 54 53 0d 00 8c 0a 2e  |TA &20F:RTS.....|
00000160  73 74 61 72 74 0d 00 96  1c 53 54 41 20 26 43 46  |start....STA &CF|
00000170  37 3a 54 58 41 3a 50 48  41 3a 54 59 41 3a 50 48  |7:TXA:PHA:TYA:PH|
00000180  41 0d 00 a0 1c 4c 44 41  20 23 32 31 38 3a 4c 44  |A....LDA #218:LD|
00000190  58 20 23 30 3a 4c 44 59  20 23 32 35 35 0d 00 aa  |X #0:LDY #255...|
000001a0  1e 4a 53 52 20 26 46 46  46 34 3a 54 58 41 3a 42  |.JSR &FFF4:TXA:B|
000001b0  4e 45 20 63 68 61 69 6e  5f 6f 6e 0d 00 b4 21 4c  |NE chain_on...!L|
000001c0  44 41 20 26 43 46 37 3a  43 4d 50 20 23 33 33 3a  |DA &CF7:CMP #33:|
000001d0  42 43 43 20 63 68 61 69  6e 5f 6f 6e 0d 00 be 19  |BCC chain_on....|
000001e0  43 4d 50 20 23 31 32 37  3a 42 45 51 20 63 68 61  |CMP #127:BEQ cha|
000001f0  69 6e 5f 6f 6e 0d 00 c8  1c 4c 44 41 20 23 26 41  |in_on....LDA #&A|
00000200  3a 4c 44 58 20 23 26 46  37 3a 4c 44 59 20 23 26  |:LDX #&F7:LDY #&|
00000210  43 0d 00 d2 1f 4a 53 52  20 26 46 46 46 31 3a 4c  |C....JSR &FFF1:L|
00000220  53 52 20 26 43 46 38 3a  4c 53 52 20 26 43 46 39  |SR &CF8:LSR &CF9|
00000230  0d 00 dc 1e 41 53 4c 20  26 43 46 44 3a 41 53 4c  |....ASL &CFD:ASL|
00000240  20 26 43 46 45 3a 41 53  4c 20 26 43 46 46 0d 00  | &CFE:ASL &CFF..|
00000250  e6 15 4c 44 41 20 23 26  39 46 3a 53 54 41 20 26  |..LDA #&9F:STA &|
00000260  43 46 37 0d 00 f0 0d 2e  63 68 61 69 6e 5f 6f 6e  |CF7.....chain_on|
00000270  0d 00 fa 1c 50 4c 41 3a  54 41 59 3a 50 4c 41 3a  |....PLA:TAY:PLA:|
00000280  54 41 58 3a 4c 44 41 20  26 43 46 37 0d 01 04 14  |TAX:LDA &CF7....|
00000290  4a 4d 50 20 28 6f 6c 64  5f 76 65 63 74 6f 72 29  |JMP (old_vector)|
000002a0  0d 01 0e 17 2e 6f 6c 64  5f 76 65 63 74 6f 72 20  |.....old_vector |
000002b0  42 52 4b 3a 42 52 4b 0d  01 18 1d 5d 3a ed 3a 2a  |BRK:BRK....]:.:*|
000002c0  53 41 56 45 20 49 54 41  4c 49 43 53 20 39 30 30  |SAVE ITALICS 900|
000002d0  20 2b 37 30 0d ff                                 | +70..|
000002d6