01.03.2014 Views

Section 2 - Commodore Computers

Section 2 - Commodore Computers

Section 2 - Commodore Computers

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Program 1-<br />

Program I.<br />

0000 13131313 13990 0990<br />

FCB3 FCB)<br />

FABS<br />

FA88<br />

01368 006B<br />

0054 eelS4<br />

0055<br />

006e 006C<br />

F6E2<br />

004C<br />

11l2FB 02FB<br />

009B 0e9B<br />

F66E<br />

F66E<br />

F67C<br />

0063<br />

"063<br />

F90A<br />

F90A<br />

F6AD<br />

F634<br />

F634<br />

13311'. 031A<br />

02E7<br />

0000 0131313<br />

0022 "1322<br />

0000 ee"Ii'<br />

00E6 0BEG<br />

00FF<br />

0100 0U'"<br />

0080 1313813<br />

IF0'"<br />

1F00<br />

2200<br />

0000 011111'"<br />

1F00 iF00<br />

113 1000 0121<br />

1010<br />

1010<br />

113213 1020<br />

113313 1030<br />

U40 1040<br />

1050<br />

113613 1060<br />

11370 1070<br />

1080 HIS0<br />

113913 1090<br />

IHH'l 1100<br />

1110'<br />

11213 1120<br />

1130<br />

1140<br />

1150<br />

1160<br />

1170<br />

1181'1<br />

118PI<br />

11913 1190<br />

1200 12130<br />

1210<br />

1220 122H<br />

1230<br />

1230<br />

1240<br />

125121<br />

1250<br />

1260<br />

1270<br />

1280<br />

1290<br />

1300<br />

1310<br />

1320<br />

1330<br />

1340<br />

1350<br />

1360<br />

1370<br />

1380<br />

1390<br />

1490<br />

1500<br />

1510<br />

15213 1520<br />

1530 15313<br />

1540 154(11<br />

1550<br />

1560<br />

1570<br />

1590 1580<br />

1590<br />

16€1e 1600<br />

1800 181313<br />

18113 1810<br />

1820 1828<br />

1830 18313<br />

1840 1841'1<br />

1850<br />

186£'1 1R60<br />

1900<br />

1910<br />

1920<br />

1990<br />

2000<br />

2000<br />

2010 21310<br />

2020 21320<br />

2030<br />

2040 2fl40<br />

2050 213513<br />

.PAGE " EQUATES"<br />

:1 :1: ::; :l:ll::::::;;:: ::11::;; :l::::::: l;: Jl:;:;<br />

EASYKEY —--<br />

A program to ease repetitive typing<br />

when using Atari BASIC, etc.<br />

.<br />

Written by Bill eill Wilkinson<br />

Optimized Systems Software<br />

for the May, May. 1982, issue of COMPUTE!<br />

]<br />

;:: Jll :: I:: : ::: : I: :: I:: : : : ::::: I:::::::::: I::: I :::<br />

$FCR3 $FCS3<br />

SFA88 $FA88<br />

$6B<br />

$54<br />

$55<br />

S6C $6C<br />

$F6E2<br />

$4C<br />

S2FB $2FB<br />

$9B<br />

SF66E $P66E<br />

$F67C<br />

$63<br />

$F90A<br />

$F6AD<br />

$F634<br />

r EQUATES UNIQUE TO THIS ROUTINE<br />

QUOTE =<br />

ZTEMP1 =<br />

LOW<br />

KQUIT -<br />

.PAGE "<br />

EQUATES"<br />

Equates to subroutines, SUbroutines, etc., located<br />

in the Atari OS as ROMs<br />

CAUTION: : these equates are for the<br />

revision 'A' ' A ' ROMs.<br />

.<br />

SWAP<br />

ERANGE =<br />

BUFCNT =<br />

ROWCRS = ..<br />

COLCRS<br />

=<br />

BUFSTR =<br />

KGETCH ■<br />

DSTAT -<br />

ATACHR =<br />

CR<br />

EGETC2 -<br />

EGETC3 EGETCJ =<br />

LOGCOL = '"<br />

BELL<br />

DOSS<br />

RETUR1 RETURI = ..<br />

HATABS = $31A<br />

SYSTEMLOMEM - $2E7<br />

. PAGE<br />

EQUATES UNIQUE TO THIS ROUTINE<br />

Quon:<br />

NUL<br />

ZTEMPl<br />

HIGH<br />

KQUIT<br />

$22<br />

0<br />

•<br />

$E6<br />

; The " character<br />

; A nul...which ..... becomes a CR<br />

shared .... ith fltg pt routines<br />

; shared with fltg pt routines<br />

$FF $Ff'<br />

$100<br />

$80 $8' :MSBit ;MSBit says quit<br />

; I::;;;;;;:; : ;;; ;;;;;;;;;;;;;;;;;:;;:;; ;;;;<br />

cnOOSE THIS ORIGIN TO FIT YOUR SYSTEM II<br />

; CHOOSE THIS ORIGIN TO FIT YOUR SYSTEM 11<br />

:;: I::;;::::: I:: ::;:::: I:;;;;;;;;:;;::: ;; ;;<br />

ORIGIN = .. $1F00 $lP00<br />

NEWLOMEM = ORIGIN+$300<br />

ORIGIN+$30e1<br />

*= *-<br />

ORIGIN<br />

-PAGE . PAGE" " Hooking the driver into OS' OS"<br />

; I;; ;:1 I:::: :11: ;1: ;1: :;;:;;:;;;;;;;;;;:::::::;;<br />

The 'HOOKUP' ' routine r —--<br />

this portion of the code simply hooks hOOKS<br />

1F00 lF00 A200<br />

1F02 IF02 BD1A03 BDIA03<br />

1F05 IF05 C945<br />

1F07 IF07 F007<br />

1F09 lF09 E8<br />

1F0A IF0A E8<br />

1F0B IFeB E8<br />

1F0C IF''C D0F4 00F4<br />

1F0E IFeE F0F0 FeFei<br />

IFI0 BOlB03<br />

1F10 BD1B03<br />

1F13 IF13 8SE6 85E6<br />

1F15 IFI5 BD1C03 BOIC03<br />

1F18 S5E7<br />

lFI8 85E7<br />

1F1A IFlA A9C7<br />

1F1C IFIC 9D1B03 901803<br />

1F1F IF IF A91F A9lF<br />

1F21 IF2I 9D1C03 90lC03<br />

1F24 IF24 A00F Ael0F<br />

1F26 IF26 B1E6 81E6<br />

1F28 IF2B 99C71F<br />

1F2B lF2B 88 8B<br />

1F2C lF2C 10FB 10F8<br />

1F2E IF2E A942<br />

1F30 IF30 8DCB1F BDCBlF<br />

1F33 IF33 A91F<br />

1F35 IF35 8DCC1F 80CClF<br />

1F38 lFJ8 A9R0 A9P10<br />

1F3A IFJA 8DE702 BDE702<br />

1F3D IF3D A922<br />

1F3F IF3F 8DE802 BOE802<br />

1F42 IF42 60<br />

1F43 IF43<br />

1F43 IF43 20B3FC<br />

lF46 2088FA<br />

1F46 2088FA<br />

IF49 1F49 A56B A5fiB<br />

1F4B IF4B D026 0026<br />

1F4D IF4D A554<br />

2060<br />

2070<br />

2080<br />

2090<br />

2100<br />

2110<br />

2120<br />

2130<br />

2140<br />

2150<br />

2160<br />

2170<br />

2180<br />

2190<br />

220€l 2200<br />

2210 221£1<br />

2220<br />

2230 22J0<br />

2240<br />

2250<br />

2260<br />

2270<br />

2280 22813<br />

2290<br />

2300<br />

2310<br />

2320 23213<br />

2330<br />

2340<br />

2350<br />

2360<br />

2370<br />

2380<br />

2390<br />

2400<br />

2410<br />

2420<br />

2430<br />

2440<br />

2450<br />

2460<br />

2470<br />

2480<br />

2500<br />

2510<br />

2520<br />

2530<br />

2540<br />

2550<br />

2560<br />

2570<br />

2580<br />

2990<br />

3000 30013<br />

3010<br />

3020<br />

3030<br />

3040<br />

3050<br />

3060<br />

3070 3B70<br />

3080<br />

3090<br />

3100<br />

3110<br />

3120<br />

3130<br />

3140<br />

3150<br />

3160<br />

3170<br />

31901<br />

our replacement driver into the E:<br />

handler vector table.<br />

; ;;:;;;;;;;; ; ::; ; :::: :::::::::: ::::;;;;; I;:::;;;<br />

HOOKUP<br />

HOOKUP<br />

LDX LOX #0<br />

LOOKLOOP "<br />

LDA LD" HATABS,X<br />

liATABS , X<br />

CMP #'E I ' E<br />

BEQ EFND<br />

BEO<br />

IINX<br />

IINX<br />

INX<br />

BNE<br />

BEQ<br />

; found the E driver<br />

EFND EFNO<br />

LDA LOA HATABS+l.X HATABS+l, X ; get LSB of addr<br />

STA ZTEMP1 ZTEMPI<br />

LDA LOA<br />

HATABS+2,X ;: and MSB<br />

STA ZTEMP1+1 ZTEMPl+l<br />

LDA LOA SNEWETBL6LOW<br />

'NEWETBL&LOW<br />

STA HATABS+l.X HATABS+I,X ; replace with our table<br />

LDA LD" tNEWETBL/HIGH<br />

'NEWET STA HATABS+2.X<br />

,X<br />

EMVLP<br />

; E: handler vector table is moved<br />

STA NEWETBLGC ; change the get character ptr<br />

LDA LOA JNEWEGETCH-1/HIGH<br />

'NEWEGETCH- l / HIGH<br />

STA NEWETBLGC+1<br />

; tables, etc. are corrected<br />

; move lomem<br />

LDA LD" INEWLOMEM5.LOW<br />

STA<br />

SYSTEMLOMEM<br />

LDA LOA #NEWLOMEM/HIGH<br />

'NEWLOMEM !HIGH<br />

STA SYSTEMLOMEM+1<br />

SYSTEMLOMEM+l<br />

RTS<br />

.PAGE " The replacement E: driver"<br />

This routine r o replaces E:'a ' s get-a-character<br />

entry point. .<br />

;; ;; ;:;;;;;;:: ; ; ; :;;:;;;;;;;;;;;:::::::::::::;::<br />

JSR<br />

LDA LOA<br />

EFNO<br />

LOOKLOOP<br />

HOOKUP<br />

:start at beginning<br />

looking for the E: driver<br />

:got it<br />

to next name<br />

keep looking<br />

actually, this is fatal error<br />

LDY LOY #15 fl 5 ; all bytes of table<br />

LDA LOA (ZTEMPl),Y; (ZTEMP1),Y ; get a byte of old tbl<br />

STA NEWETBL.Y , Y; ; to our table<br />

DEY<br />

BPL EMVLP ; and do more<br />

E: h andler vector table is moved<br />

LDA LOA<br />

STA<br />

STA<br />

'NEWEGETCH-l&LOW<br />

(tNEWEGETCH-l&LOW<br />

NEWETBLGC; change the get character ptr<br />

NEWETBLGC+l<br />

tables , etc . are corrected<br />

move lomem<br />

.PAGE<br />

'NEWLOMEM&LOW<br />

The replacement E: driver ft<br />

r:::::::::::::::::;::::::::::::;:;:;;;;;; ;;; ;;;;<br />

Begin the actual E: replacement r routine<br />

NEWEGETCH<br />

NEWEGt:TCH<br />

JSR<br />

JSR<br />

SWAP ;cc < < lines with .... comments starting<br />

ERANGE ;«

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!