home *** CD-ROM | disk | FTP | other *** search
Text File | 2002-10-23 | 16.7 KB | 1,099 lines |
- OBJECT = 1
-
- section Amiga_Rulez,code
-
- move.l sp,stack
-
- move.l #dosname,a1
- move.l 4,a6
- jsr -408(a6)
- move.l d0,dosbase
-
- move.l #gfxname,a1
- move.l 4,a6
- jsr -408(a6)
- move.l d0,gfxbase
-
- bsr.w program
-
- bsr.w openreq
-
- main:
- bsr.w clearadrtab
- move.l #alloctable,alloctableadr
- clr.w labnum
- clr.l labsize
- clr.l ssek
- clr.l sek
- clr.l min
-
- lea menu,a1
- lea menugads,a2
- bsr.w requester
- tst.b d0
- beq.w exit
- cmp.b #2,d0
- beq.w doc
-
- move.l #ssource,tytul
- bsr.w request
- move.l a0,sors
-
- move.l sors,a0
- jsr filesize
- tst.l d0
- beq.W error
- add.l #1,d0
- move.l d0,sorssize
-
- move.l sorssize,d0
- bsr.w alloc
- tst.l d0
- beq.W dealloc
- move.l d0,sorsadres
-
- move.l sorsadres,d0
- move.l sorssize,d1
- move.l sors,a0
- jsr read
- tst.l d0
- bne.W enddealloc
-
- move.l sorsadres,a0
- add.l sorssize,a0
- clr.b -(a0)
-
- move.l sorsadres,a0
- cmp.l #$f9faf9fa,(a0)
- bne.s nosavedmarks
-
- add.l #40,sorsadres
- sub.l #40,sorssize
-
- nosavedmarks:
- move.l sorssize,d0
- move.l d0,d1
- asr.l #1,d1
- add.l d1,d0
- move.l d0,long
-
- move.l 4,a6
- move.l #$20000,d1
- jsr -216(a6)
- move.l d0,availmem
-
- move.l #ework,tytul
- bsr.w getlong
- move.l #estring,tytul
- bsr.w getstring
- move.l long,destsize
-
- move.l destsize,d0
- bsr.w alloc
- tst.l d0
- beq.w enddealloc
- move.l d0,nowy
-
- bsr.w sysoff
-
- bsr.w liczetykiety
- mulu #6,d0
- move.l d0,adressize
-
- move.l labsize,d0
- bsr.w alloc
- tst.l d0
- beq.w enddealloc
- move.l d0,etykiety
-
- move.l adressize,d0
- bsr.w alloc
- tst.l d0
- beq.w enddealloc
- move.l d0,adresy
-
- move.l nowy,endadr
- move.l destsize,d0
- subq #1,d0
- add.l d0,endadr
- lea adrtab,a3
- move.l adresy,a2
- move.l etykiety,a1
- move.l sorsadres,a0
- lea tabela,a5
- clr.w d0
- clr.w d2
- bra.w czyetykieta
- findloop:
- move.b (a0)+,d0
- tst.b d0
- beq.s findend
- cmp.b #10,d0
- beq.w czyetykieta
- bra.s findloop
- findend:
- move.l sorsadres,a0
- lea kawaleczek,a2
- move.l nowy,a3
- lea tabela,a6
- lea comptable,a7
- clr.w d0
- clr.w d1
- clr.w d3
- przeploop:
- move.w #$44f,$dff180
- przeploop2:
- move.b (a0)+,d0 ; a0 - sors
- beq.w amen
- btst #6,$bfe001
- beq.w edzio
- tst.b (a7,d0.w) ; koniec slowa ?
- bgt.s konieck
- bmi.b special
- move.b (a6,d0.w),(a2) ; litera -> kawaleczek
- add.b (a2)+,d3 ; d3 - suma kontrolna
- add.w d3,d3
- move.b d0,(a3)+ ; litera -> nowy
- cmp.l endadr,a3
- beq.w eowork
- bra.s przeploop2
- konieck:
- cmpa.l #kawaleczek,a2 ; koniec slowa
- beq.b dowidzenia
- clr.b (a2)
- lea adrtab,a2
- tst.b (a2,d3.w)
- beq.s dowidzenia
- lea kawaleczek,a2
- move.l adresy,a1
- move.w #$200,$dff180
- kloop:
- move.l (a1)+,a5 ; kolejny adres
- cmpa.l #0,a5
- beq.s dowidzenia
- cmp.w (a1)+,d3 ; chksum
- bne.s kloop ; nie zgadza sie
- move.l a2,a4
- sprawdz:
- move.b (a5)+,d1
- beq.s hurra
- cmp.b (a4)+,d1 ; porownanie znakow
- beq.s sprawdz
- bra.s kloop
-
- special:
- cmp.b #';',d0
- beq.s comment
- text:
- move.b d0,(a3)+
- cmp.l endadr,a3
- beq.w eowork
- textloop:
- move.b (a0)+,d1
- beq.w edzio
- move.b d1,(a3)+
- cmp.l endadr,a3
- beq.w eowork
- cmp.b d0,d1
- bne.s textloop
- bra.w przeploop
-
- dowidzenia:
- clr.w d3
- move.b d0,(a3)+
- cmp.l endadr,a3
- beq.w eowork
- lea kawaleczek,a2
- bra.w przeploop
-
- hurra:
- tst.b (a4)
- bne.s kloop
- move.w #$fff,$dff180 ; rowne !
- move.l chars,a2
- add.l #1,extnum
- addloop:
- move.b (a2)+,d2 ; dodaje koncowke
- beq.s dowidzenia
- move.b d2,(a3)+
- cmp.l endadr,a3
- beq.w eowork
- bra.s addloop
-
- comment:
- move.b d0,(a3)+
- cmp.l endadr,a3
- beq.w eowork
- commentloop:
- move.b (a0)+,d0
- beq.w przeploop
- move.b d0,(a3)+
- cmp.l endadr,a3
- beq.w eowork
- cmp.b #10,d0
- bne.s commentloop
- bra.w przeploop
-
- sysoff:
- movem.l d0/d1/a0/a1,-(sp)
- move.l gfxbase,a6
- move.l 34(a6),view
- suba.l a1,a1
- jsr -222(a6)
- bsr.w addinterrupt
- move.l 4.w,a6
- jsr -132(a6)
- move.w #%0000000110100000,$dff096
- movem.l (sp)+,d0/d1/a0/a1
- rts
-
- syson:
- movem.l d0/d1/a0/a1,-(sp)
- move.l gfxbase,a6
- move.l view,a1
- jsr -222(a6)
- move.l 4.w,a6
- jsr -138(a6)
- move.w #%1000000110100000,$dff096
- bsr.w removeinterrupt
- movem.l (sp)+,d0/d1/a0/a1
- rts
-
- amen:
- move.l stack,sp
- bsr.b syson
-
- move.l a3,nowyend
-
- sub.l nowy,a3
- move.l a3,nowysize
-
- lea infotext,a1
- lea supergad,a2
- lea sorssize,a4
- bsr.w requester
-
- move.l #sdest,tytul
- bsr.w request
- move.l a0,dest
-
- move.l dest,a0
- move.l nowy,d0
- move.l nowyend,d1
- sub.l nowy,d1
- bsr.w write
-
- jsr dealloc
-
- bra.w main
-
- czyetykieta:
- move.b (a0),d0
- cmp.b #" ",d0
- beq.w findloop
- cmp.b #0,d0
- beq.w findloop
- cmp.b #" ",d0
- beq.w findloop
- cmp.b #";",d0
- beq.w findloop
- cmp.b #10,d0
- beq.w findloop
- move.l a1,(a2)+
- move.w #0,$dff180
- clr.w d1
- cepetla:
- move.b (a0)+,d0
- cmp.b #":",d0
- beq.s zpowrotem
- cmp.b #" ",d0
- beq.s zpowrotem
- cmp.b #0,d0
- beq.s zpowrotem
- cmp.b #10,d0
- beq.s zpowrotem
- add.b (a5,d0.w),d1
- add.w d1,d1
- move.b (a5,d0.w),(a1)+
- bra.s cepetla
- zpowrotem:
- move.b #'!',(a3,d1.w)
- move.w d1,(a2)+
- move.b #0,(a1)+
- move.w #$fff,$dff180
- bra.w findloop
-
- alloc:
- movem.l d1-d7/a0-a6,-(sp)
- addq.l #3,d0
- and.l #$fffffffe,d0
- move.l d0,-(sp)
- move.l 4,a6
- move.l #$10000,d1
- jsr -198(a6)
- move.l (sp)+,d1
- move.l alloctableadr,a0
- move.l d0,(a0)+
- move.l d1,(a0)+
- move.l a0,alloctableadr
- movem.l (sp)+,d1-d7/a0-a6
- rts
-
- dealloc:
- lea alloctable,a0
- deallloop:
- move.l (a0),a1
- clr.l (a0)+
- cmp.l #0,a1
- beq.s deend
- move.l (a0)+,d0
- addq.l #1,d0
- and.l #$fffffffe,d0
- movem.l d0-d7/a0-a6,-(sp)
- move.l 4,a6
- jsr -210(a6)
- movem.l (sp)+,d0-d7/a0-a6
- bra.s deallloop
- deend:
- moveq #0,d0
- rts
-
- ; a0 - name
- ; d0 - adr
- ; d1 - len
-
- ; d0 - 0:OK
- ; d0 - 1:ERROR
-
- write:
- movem.l d0-d1,-(sp)
- move.l a0,d1
- move.l dosbase,a6
- move.l #1006,d2
- jsr -30(a6)
-
- tst.l d0
- beq.s wrerr
-
- movem.l (sp)+,d2-d3
-
- move.l d0,file
- move.l d0,d1
- move.l dosbase,a6
- jsr -48(a6)
-
- move.l file,d1
- move.l dosbase,a6
- jsr -36(a6)
-
- moveq #0,d0
- rts
- wrerr:
- movem.l (sp)+,d0-d1
- move.l stack,sp
- bsr.w dealloc
- lea werrtext,a1
- lea grrgad,a2
- bsr.w requester
- bra.w main
-
- werrtext:
- dc.b 'Write error !',0
-
- alloctableadr:
- dc.l alloctable
-
- ; a0 - name
- ; d0 - adr
- ; d1 - len
-
- ; d0 - 0:OK
- ; d0 - 1:ERROR
-
- read:
- movem.l d0-d1,-(sp)
- move.l a0,d1
- move.l dosbase,a6
- move.l #1005,d2
- jsr -30(a6)
-
- tst.l d0
- beq.s rerr
-
- movem.l (sp)+,d2-d3
-
- move.l d0,file
- move.l d0,d1
- move.l dosbase,a6
- jsr -42(a6)
-
- move.l dosbase,a6
- jsr -132(a6)
- tst.l d0
- bne.s rerr2
-
- move.l file,d1
- move.l dosbase,a6
- jsr -36(a6)
-
- moveq #0,d0
- rts
-
- rerr:
- movem.l (sp)+,d0-d1
- rerrhere:
- move.l stack,sp
- bsr.w dealloc
- lea rerrtext,a1
- lea grrgad,a2
- bsr.w requester
- bra.w main
- rerr2:
- move.l file,d1
- move.l dosbase,a6
- jsr -36(a6)
- bra.s rerrhere
-
- rerrtext:
- dc.b 'Read error !',0
-
- even
-
- avail: dc.b 'Available memory: %ld bytes',0
-
- even
-
- edzio:
- bsr.w syson
- bsr.w dealloc
- move.l stack,sp
- bra.s error
-
- eowork:
- bsr.w syson
- bsr.w dealloc
- move.l stack,sp
- lea eowtext,a1
- lea grrgad,a2
- bsr.w requester
- bra.w main
-
- exit:
- move.l stack,sp
- bsr.w dealloc
- bsr.w closereq
- bra.w quit
-
- cancel:
- move.l stack,sp
- bsr.w dealloc
- bra.w main
-
- enddealloc:
- bsr.w dealloc
- error:
- lea swrong,a1
- lea grrgad,a2
- bsr.w requester
- bra.w main
-
- clearadrtab:
- lea adrtabstart,a0
- move.w #16383,d7
- clearloop:
- clr.l (a0)+
- dbf d7,clearloop
- rts
-
- doc:
- lea doctxt,a1
- lea docgads,a2
- bsr.w requester
- beq.w main
-
- lea doctxt2,a1
- lea docgads2,a2
- bsr.w requester
- bra.w main
-
- doctxt:
- dc.b 'This program works like the "Ext. Labels" function',10
- dc.b "in Trash'm-One, but it's faster and more reliable.",10
- dc.b "Trash'm-One extends labels in 15 KB source in",10
- dc.b "two minutes (on A500), this program does this in 1 second.",10
- dc.b "Also, Trash'm-One sometimes changes the source like",10
- dc.b "this: loop.main: lea.main table.main,a0.main",10
- dc.b "and so on... If you wait 10 minutes, and get",10
- dc.b "something like this, you're very angry.",10,10
- dc.b "So, use this program and be happy !!!",0
- doctxt2:
- dc.b "If you want to contact me, write at:",10,10
- dc.b "Piotr Pawlow",10
- dc.b "ul. Lewartowskiego 12 m 46",10
- dc.b "00-185 Warszawa",10
- dc.b "Polska",10,10
- dc.b "WARNING: if you will try to use this program on a",10
- dc.b "file which is not a source, it may crash !",0
-
- docgads:
- dc.b 'More info|Shut up !',0
- docgads2:
- dc.b 'Extra !',0
-
- eowtext:
- dc.b 'Workspace too small !',0
- swrong:
- dc.b 'ERROR !',0
- grrgad:
- dc.b '!@#$%^&*',0
-
- dosname:
- dc.b 'dos.library',0
- gfxname:
- dc.b 'graphics.library',0
- even
-
- tabela:
- dc.b 000,001,002,003,004,005,006,007,008,009
- dc.b 010,011,012,013,014,015,016,017,018,019
- dc.b 020,021,022,023,024,025,026,027,028,029
- dc.b 030,031,032,033,034,035,036,037,038,039
- dc.b 040,041,042,043,044,045,046,047,048,049
- dc.b 050,051,052,053,054,055,056,057,058,059
- dc.b 060,061,062,063,064,'A','B','C','D','E'
- dc.b 'F','G','H','I','J','K','L','M','N','O'
- dc.b 'P','Q','R','S','T','U','V','W','X','Y'
- dc.b 'Z',091,092,093,094,095,096,'A','B','C'
- dc.b 'D','E','F','G','H','I','J','K','L','M'
- dc.b 'N','O','P','Q','R','S','T','U','V','W'
- dc.b 'X','Y','Z',123,124,125,126,127,128,129
- dc.b 130,131,132,133,134,135,136,137,138,139
- dc.b 140,141,142,143,144,145,146,147,148,149
- dc.b 150,151,152,153,154,155,156,157,158,159
- dc.b 160,161,162,163,164,165,166,167,168,169
- dc.b 170,171,172,173,174,175,176,177,178,179
- dc.b 180,181,182,183,184,185,186,187,188,189
- dc.b 190,191,192,193,194,195,196,197,198,199
- dc.b 200,201,202,203,204,205,206,207,208,209
- dc.b 210,211,212,213,214,215,216,217,218,219
- dc.b 220,221,222,223,224,225,226,227,228,229
- dc.b 230,231,232,233,234,235,236,237,238,239
- dc.b 240,241,242,243,244,245,246,247,248,249
- dc.b 250,251,252,253,254,255
-
- comptable:
- dc.b 0,0,0,0,0,0,0,0,0,1 ;0
- dc.b 1,0,0,0,0,0,0,0,0,0 ;10
- dc.b 0,0,0,0,0,0,0,0,0,0 ;20
- dc.b 0,0,1,1,-1,1,0,0,1,-1 ;30
- dc.b 1,1,1,1,1,1,0,1,0,0 ;40
- dc.b 0,0,0,0,0,0,0,0,1,-1 ;50
- dc.b 0,1,0,0,1,0,0,0,0,0 ;60
- dc.b 0,0,0,0,0,0,0,0,0,0 ;70
- dc.b 0,0,0,0,0,0,0,0,0,0 ;80
- dc.b 0,0,0,0,1,0,0,0,0,0 ;90
- dc.b 0,0,0,0,0,0,0,0,0,0 ;100
- dc.b 0,0,0,0,0,0,0,0,0,0 ;110
- dc.b 0,0,0,0,0,0,0,0,0,0 ;120
- dc.b 0,0,0,0,0,0,0,0,0,0 ;130
- dc.b 0,0,0,0,0,0,0,0,0,0 ;140
- dc.b 0,0,0,0,0,0,0,0,0,0 ;150
- dc.b 0,0,0,0,0,0,0,0,0,0 ;160
- dc.b 0,0,0,0,0,0,0,0,0,0 ;170
- dc.b 0,0,0,0,0,0,0,0,0,0 ;180
- dc.b 0,0,0,0,0,0,0,0,0,0 ;190
- dc.b 0,0,0,0,0,0,0,0,0,0 ;200
- dc.b 0,0,0,0,0,0,0,0,0,0 ;210
- dc.b 0,0,0,0,0,0,0,0,0,0 ;220
- dc.b 0,0,0,0,0,0,0,0,0,0 ;230
- dc.b 0,0,0,0,0,0,0,0,0,0 ;240
- dc.b 0,0,0,0,0,0 ;250
-
- ; a0 - filename
-
- ; d0 - size
-
- filesize:
- movem.l d0-d7/a0-a6,-(sp)
-
- move.l a0,d1
- moveq #-2,d2
- move.l dosbase,a6
- jsr -84(a6)
- tst.l d0
- beq.s lerr
- move.l d0,d1
-
- move.l d1,-(sp)
- move.l #fileinfoblock,d2
- addq.l #3,d2
- and.l #$fffffffc,d2
- move.l d2,fileinfoadr
- move.l fileinfoadr,d2
- move.l dosbase,a6
- jsr -102(a6)
- move.l fileinfoadr,a0
- move.l 124(a0),fsize
- move.l (sp)+,d1
-
- move.l dosbase,a6
- jsr -90(a6)
-
- loadend:
- movem.l (sp)+,d0-d7/a0-a6
- move.l fsize,d0
- rts
-
- lerr:
- movem.l (sp)+,d0-d7/a0-a6
- bra.w rerr2
-
- ; d0 - ilosc etykiet
- ; d1 - ilosc pamieci na etykiety
-
- liczetykiety:
- move.l sorsadres,a0
- bra.s liczczyetykieta
- liczloop:
- move.b (a0)+,d0
- tst.b d0
- beq.s liczend
- cmp.b #10,d0
- beq.b liczczyetykieta
- bra.s liczloop
- liczend:
- clr.l d0
- move.w labnum,d0
- move.l labsize,d1
- rts
-
- liczczyetykieta:
- move.b (a0),d0
- cmp.b #" ",d0
- beq.b liczloop
- cmp.b #0,d0
- beq.b liczloop
- cmp.b #" ",d0
- beq.b liczloop
- cmp.b #";",d0
- beq.b liczloop
- cmp.b #10,d0
- beq.b liczloop
- add.w #1,labnum
- move.w #0,$dff180
- lipetla:
- move.b (a0)+,d0
- add.l #1,labsize
- cmp.b #":",d0
- beq.s powrot
- cmp.b #" ",d0
- beq.s powrot
- cmp.b #0,d0
- beq.s powrot
- cmp.b #10,d0
- beq.s powrot
- bra.s lipetla
- powrot:
- move.w #$fff,$dff180
- bra.w liczloop
-
- ; PROBY Z ReqTools.library !DARK! of Illusion
- ;
- ;Na dysku strtowym w katalogu LIBS: powinny znajdowac sie:ReqTools.library
- ; i DyskFont.library (dla OS2.0> nie musi, bo jest w ROM'ie)
-
- INCLUDE "REQTOOLS"
-
- exec = 4
- oldoplib =-408
- closelib =-414
-
- OPENREQ
- MOVE.L EXEC,A6
- LEA REQNAME,A1
- JSR OLDOPLIB(A6)
- MOVE.L D0,REQBASE
- TST.L D0
- BEQ.W exit
- RTS
- CLOSEREQ:
- MOVE.L EXEC,A6
- MOVE.L REQBASE,A1
- JSR CLOSELIB(A6)
-
- closedos:
- move.l 4,a6
- move.l dosbase,a1
- jsr -414(a6)
-
- move.l 4,a6
- move.l gfxbase,a1
- jsr -414(a6)
-
- RTS
-
- ; *** Wyswietlenie requestera ***
- ; a1 - Tekst w requesterze
- ; a2 - gadzety
-
- ; d0 - numer wcisnietego gadzetu
-
- requester:
- move.l a1,-(sp)
- move.l reqbase,a6
- moveq.l #0,d0
- lea zero,a0
- jsr -30(a6)
- move.l d0,reqfile
- move.l (sp)+,a1
-
- move.l reqbase,a6
- move.l reqfile,a3
- lea taglist(pc),a0
- jsr -66(a6)
-
- move.l d0,-(sp)
- bsr.w freereq
- move.l (sp)+,d0
-
- rts
-
-
- ;==========================================================================;
- getstring:
- MOVE.L REQBASE,A6 ;!!! A6 !!! NIE UZYWAC
- move.l #250,d0
- move.l chars,a1
- MOVE.L tytul,A2
- move.l #0,a3
- MOVE.L #TAGLIST,A0
- JSR rtGetStringA(A6)
- tst.l d0
- beq.w cancel
- rts
-
- getlong:
- MOVE.L REQBASE,A6 ;!!! A6 !!! NIE UZYWAC
- lea long,a1
- MOVE.L tytul,A2
- move.l #0,a3
- MOVE.L #longTAGLIST,A0
- JSR rtGetLongA(A6)
- tst.l d0
- beq.w cancel
- rts
-
- REQUEST:
- MOVE.L REQBASE,A6 ;!!! A6 !!! NIE UZYWAC
- ;przydzielenie structury
- MOVE.L #rt_filereq,D0
- MOVE.L #ZERO,A0
- JSR rtAllocRequestA(A6)
- TST.L D0
- BNE.B r.nerr
- JSR ERROR
- BRA.W rtend
- r.nerr MOVE.L D0,REQfile
-
- ;--------------------------------------------------------------;
- ;wywo£anie requestera
- move.l reqfile,A1
- lea addtag,a0
- move.l reqbase,a6
- jsr rtchangereqattra(a6)
- move.l reqfile,A1
- MOVE.L #Nazwa,A2
- MOVE.L Tytul,A3
- MOVE.L #TAGLIST,A0
- JSR rtFileRequestA(A6)
- ;TUTAJ POWINNA ZNAJDOWAC SIE NASZA PROCEDURA KTORA
- ;OPERUJE NA WYBRANYM ZBIORZE
- tst.l d0
- beq.w cancel
- ;--------------------------------------------------------------;
- move.l ReqFile,a0
- move.l rtfis_Dir(a0),a0 ;TERAZ W A0 ZNAJDUJE SIE ADRES
- ;NAZWY KATALOGU...
- lea string,a1
- lea directory,a3
- move.b (a0)+,d0
- move.b d0,(a3)+
- tst.b d0
- beq.s req_nx
- move.b d0,(a1)+
- req_lop:
- move.b (a0)+,d0
- move.b d0,(a1)+
- move.b d0,(a3)+
- tst.b d0
- bne.s req_lop
- subq #1,a1
- cmp.b #':',-1(a1)
- beq.s req_nx
- move.b #'/',(a1)+
- req_nx: move.b (a2)+,d0
- move.b d0,(a1)+
- tst.b d0
- bne.s req_nx
- bsr.b freereq
- lea string,a0
- rts
-
- freereq:
- MOVE.L REQfile,A1
- move.l reqbase,a6
- JSR rtFreeRequest(A6)
- rtend RTS
- ;==========================================================================;
-
- REQname dc.b 'reqtools.library',0
- even
-
- ;-----dla FILE REQUESTER-------;
- TagList DC.L RT_ReqPos,REQPOS_centerscr
- DC.L RTFI_Flags,FREQF_PATGAD
- DC.L RTFI_Height,1000
- dc.l rtgl_width,320
- dc.l RTgs_Width,320
- DC.L RTFI_Dir,4
- dc.l $80000000+100
- dc.l 0,0
- longTagList
- DC.L RT_ReqPos,REQPOS_centerscr
- dc.l RTgs_Width,320
- dc.l $80000000+38,avail
- dc.l $80000000+39,availmem
- dc.l $80000000+100
- dc.l 0,0
- addtag:
- dc.l rtfi_matchpat,pattern
- dc.l rtfi_dir,directory
- dc.l 0,0
-
- tytul: dc.l reqname
-
- pattern:
- dc.b '#?.S',0
-
- ssource:
- dc.b 'Select source file',0
- sdest:
- dc.b 'Save program as...',0
- estring:
- dc.b 'Enter extension',0
- ework:
- dc.b 'Enter workspace (in bytes)',0
-
- even
-
- chars:
- dc.l extension
-
- sorssize:
- dc.l 0
- nowysize:
- dc.l 0
- dc.w 0
- labnum:
- dc.w 0
- min: dc.l 0
- sek: dc.l 0
- ssek: dc.l 0
- extnum:
- dc.l 0
- dc.l extension
-
- menu:
- dc.b 'Labels Extender v.1.0',10,10
- dc.b 'Original code by Shocker/Termos',10
- dc.b 'Improved and speeded up by PP/Termos',0
- menugads:
- dc.b 'START|Info|Quit',0
-
- supergad:
- dc.b 'Super !',0
-
- infotext:
- dc.b 'All done !',10,10
- dc.b 'Source size: %ld',10
- dc.b 'Destination size: %ld',10
- dc.b 'Number of labels: %ld',10,10
- dc.b 'Time: %ldm %ld.%lds',10
- dc.b '%ld words extended with %s'
-
- even
-
- filename:
- dc.l 0
-
- Program:
- move.l 4,a6
- move.l 276(a6),a3
- tst.l 172(a3)
- bne.w fromCLI
- if object=1
- fromWB
- lea 92(a3),a0 ; get wb msg
- move.l 4.w,a6
- jsr -384(a6)
- move.l 4.w,a6
- lea 92(a3),a0
- jsr -372(a6)
- move.l d0,wbmsg
-
- move.l wbmsg,a0
- move.l $24(a0),a0
- beq.b fromcli
-
- move.l (a0),d1
- move.l dosbase,a6
- jsr -126(a6)
- endif
- fromcli:
- rts
-
- quit: move.l wbmsg,d2
- beq.s nowb
- move.l 4.w,a6
- jsr -132(a6)
- move.l d2,a1
- move.l 4.w,a6
- jsr -378(a6)
- nowb:
- clr.l d0
- rts
-
- wbmsg: dc.l 0
-
- addinterrupt:
- move.l 4,a6
- moveq #5,d0 ; add vertical blank interrupt
- lea myinterrupt,a1
- jsr -168(a6)
- rts
-
- removeinterrupt:
- move.l 4,a6
- moveq #5,d0
- lea myinterrupt,a1
- jsr -174(a6)
- rts
-
- IntProg:
- add.l #2,ssek
- cmp.l #100,ssek
- bne.s out
- clr.l ssek
- add.l #1,sek
- cmp.l #60,sek
- bne.s out
- clr.l sek
- add.l #1,min
- out: lea $dff000,a6
- clr.l d0
- rts
-
- rts
-
- myinterrupt:
- ; * Node
-
- dc.l 0 ; Succ
- dc.l 0 ; Prev
- dc.b 5 ; Type
- dc.b 0 ; Pri
- dc.l IName ; Name
-
- dc.l 0 ; is_Data
- dc.l IntProg ; is_Code
-
- IName:
- dc.b '* very stupid interrupt *',0
-
- dc.b '$VER: LabExt 1.0 (10.04.95)',0
-
- section free,bss
-
- alloctable:
- ds.l 10
-
- extension:
- ds.b 1024
- long: ds.b 1024
-
- string:
- ds.b 250
-
- kawaleczek:
- ds.b 1024
-
- fileinfoblock:
- ds.b 262
-
- directory:
- ds.b 250
-
- Nazwa: ;bufor na nazwe zbiory
- ds.b 256
-
- even
-
- adrtabstart:
- ds.b 32768
- adrtab:
- ds.b 32768
-
- availmem:
- ds.l 1
-
- stack:
- ds.l 1
- adressize:
- ds.l 1
-
- file:
- ds.l 1
-
- dosbase:
- ds.l 1
- gfxbase:
- ds.l 1
-
- nowyend:
- ds.l 1
- temporary:
- ds.w 1
- destsize:
- ds.l 1
-
- endadr: ds.l 1
-
- EROR ds.l 1
- ZERO ds.l 1
-
- REQbase ds.l 1
- REQ ds.l 1
- REQfile ds.l 1
- REQfont ds.l 1
- labsize:
- ds.l 1
- fsize:
- ds.l 1
- fileinfoadr:
- ds.l 1
- sorsadres:
- ds.l 1
-
- nowy:
- ds.l 1
- etykiety:
- ds.l 1
- adresy:
- ds.l 1
-
- sors: ds.l 1
- dest:
- ds.l 1
- view:
- ds.l 1
-