DOS pCNJg @ hpNup`dos.library# ~??0?0 ?0| <@8???0! 8`0???0 pp?0 `?0# Ӄ0??0  ?0 < ??0  ?0  ?# A,0  ?0  ?0 8 ??0 8??0 '?`8?#ڔL0 ` `?0  0 ??0 ` ?  #L`|` < ?p``#o8< ` ? `  `  `  <  ?(# ? ?0`` ?00` ?000` ???0? 0?# ???0|?0 ?00` ?? ? >??   #Հj        88  ?%  000 ??? .9`@@`@@``@P`@`@`@`@`@@`@@`p@P@`P`x`@`@`@``P``@`@``@pP`P`p}P )} o@`@`@` `P``@ `@` `@`@ ` pP `P` `@`@ `@`x `P ``@ `x@``@`@`xpP+`@`x@ `@@`@@`@@` `@P`@`@@ `@`@@ `@@`@@@ ` p@P@ `P`x `@`@ `@` `P@ ``@ `@``@pP`:P`p}P} o@`@ `@` `P@ ``@ `@` `@`@ ` pP `P` `@`@ `@`x `P@ ``@ `x@``@`@CY`x pP `@`x `@@`@@ `@@` `@P `@`@ `@`@ `@@`@@ ` p@P@ `P`x `@`@ `@` `P ``@ `@``#=B 0< ???0 p ?0  ?0?0?0#{ˤ%0??0` ???8?888 ????#?8<??88<?88?8x?#5KTp>p?8p8p8p?# M`18>p??8p?8p?8p?8  ?# 8<?88?88?888????0?0?0?0?0UJvւS#C BBx#D#B r#A$ nґBrҩ$`p,(jN#At gv"fx#Dp,(jN#A` ")Xf>Jg6B$t#BJfG" p4I`Np4(jN#A`p,(jN#Ap,(j,NtEfr#A")p,(j,NtNfr #A` r;g`t gVv=gLJg$x؉&$) ")p,INJfrNp,(jN#Ar g tfp,(jNJgrNJfr=fp,(jNrNrNrNNo K directiveKeyword too long substwr*#pXRlrN")ҩ")") !rNNqsubstwr*|0X#Fr#An6$ԁv0(() $)"&)p$INJfrNrҩ`rN$substrdBr%ADGET DC.W 164,137,312,160 ;TOPRIGHT GADGET DC.W 10,162,157,185 ;DOWNLEFT GADGET DC.W 164,162,312,185 ;DOWNRIGHT GADGET DC.W 196,190,214,203 ;ARROW UP DC.W 196,205,214,218 ;ARROW DOWN DC.W 216,190,234,218 ;KILL DC.W 237,190,255,203 ;UP DC.W 257,190,275,203 ;DOWN DC.W 237,205,255,218 ;UP2 DC.W 257,205,275,218 ;DOWN2 DC.W 10,221,101,247 ;IFF2RAW DC.W 103,221,194,247 ;PLST2RAM DC.W 196,221,255,247 ;PLAY DC.W 257,221,312,247 ;QUIT !! DC.W 0,r&g0,0,0 ;THAT'S IT ***************************************************************************** * MARK/UNMARK * MARKIT: CMP.L #0,DIRITEMS BEQ.S MARKXIT MOVE.L YCORD,D0 ;GET Y POS OF POINTER SUB.L #16,D0 DIVU #8,D0 ;CHAR Y COORD MOVE.L D0,D1 MOVE.L DIRINFO,A0 ;START OF MESS MOVE.L DIRPOS,D1 ;CURRENT DIRPOS ADD.L D0,D1 ;ADD OFFSET MULU #34,D1 ;EACH ITEM = 34 BYTES ADD.L D1,A0 ;FINAL INFO POS ADD.L #32,A0 ;POSITION OF INVERT EOR.B #1,(A0) ;Ir' \NVERT IT !!! MULU #(40*8),D0 ;CONVERT TO BYTE MOVE.L SCREEN,A0 ADD.L #(16*40)+2,A0 ;START OF SCREEN ADD.L D0,A0 ;ACTUAL START OF INVERTED MOVE.W #11,D0 MOVE.W #8,D1 MOVE.W #18,D2 MOVE.W #18,D3 BSR BLIT3 BSR DELAY MARKXIT: RTS ***************************************************************************** * DIR UP * DIRUP: BSR SMOOTH CMP.L #0,DIRITEMS BEQ NOSUBPL CMP.L #0,DIRPOS ;IS DIS 0 ? BEQ NOSUBPL ;IF YES THEN DONT SUB.L #1,DIRPOS ;DECr(;_PREMENT IT ANY MORE !! MOVE.L SCREEN,A0 ADD.L #(119*40)+23,A0 MOVE.L A0,A1 ADD.L #(8*40),A1 MOVE.W #11,D0 MOVE.W #106,D1 MOVE.W #18,D2 MOVE.W #18,D3 BSR BLIT2 MOVE.L DIRINFO,A0 ;START OF MESS MOVE.L DIRPOS,D0 ;CURRENT DIRPOS MULU #34,D0 ;EACH ITEM = 34 BYTES ADD.L D0,A0 ;FINAL INFO POS MOVE.L A0,A1 ;CHECK FOR INVERT ADD.L #32,A1 ;IN DIS LOC MOVE.B (A1),INVERT ;AND STORE MOVE.L #22,D0 ;LEN OF MESS MOVE.L #2,D1 ;X MOVE.L #2,D2 ;#=C?0 0< ???0 0 ??0 0 ??0 0 ??0")```````x`ppxxx`@``@``@``` Mp@p@@@@@@x````````ppPPPPPPPPPPP}PP}P `@`@`u8+X)`""0 <(jN#AJg8 <(jN"$0GL" <(j(Nr <(jN""0 <(jN#Ar <(j(N#A") <(jNJf$"$0G`" <(j(Nr #A$)r <(j(N") <(jNNNq/A Bad args %S already exists Can't create directory %S $}R SCROLL3REL.Sp xY@``P``@`@``@`@`pP`P``@`@`@`x`P``@`x@``@`@`xpP`@`x`@@+"o[D 2 VT < VJSearchReplaceRepeat S/R   @ V S b V R  V GHex EntryColorNew CliMore TxEdStrip EtcWord WrapParagraphOverstrike       ,#Ƶ}  V H  V 2  V 3  V 4 ( R <7 [ 4 ^A V HFK _ \VProjectEditCursorSearchRandom F  FF  F  F F ptopaz.fo-$nt @ (dir)  L l   file L |!,U  v[ F vZ < vYB 2 vXn ( vW  vV22  3 344 .%C OK  L:Cancel LV rdrawer|2P zvU< vS d2 *^vR8d2 *BvQ@xd@x@xCan't Open Requester...Directory truncated!Error Reading Directory!!!Wrong Diskette?/&uf@Directory ErrorEnter Search Stringx L*|2  >R Replacement String} L|2v 2  UC == lc LD $ ForwardReverse Ld8P< t ( }}OK0'p/Cancel! LNot enough room for insertdelete request too big!Line insertedMeps!Nothing to insertGotta mark a block to cut/copyNothing to cut/copyCan't allocate clip mem!TxEd's PortV 4$|R0,JF~vdRJ8. jfNJ62"nB 1( | L~ , (  p N < ,  p h T @ ,   t R @ 0    t b R @ 0  nZp`N>, |hTp`N>, @2)(####~#^#D##"""!."""N"6","""!!!!!!!!!!z!p!f!`!V!P!F!@!:D:fhD$tbPJ8 |\4 ~ZH"N * &L VB : T "/@  : z|jNP :b: > . P6.*()Z)>)'&"h!v(  6^  2 bR~Z  fJb8> 2,V++++h+^+P+B+(++*****&l&`&&4)%%%%^%%%@))((((x'`'V''&#0__&%%%n%d$d$\##&>&*###V#L)f)P)8) (((''"!@vT P  nVp^TH>4bjB"0*.t`F.|rf\T vhL>$$1:W ,   hnxR. J&6H>zr Z R 2bXtj\.lZ>h( zn$T2 d L 6  J r D  >6,$%2DxrlFH>(vn.V0 R`h"8    R D & t ',,++,,>++v+H,r**,^++**) !   &,8 V @h@!"6 ZnJ!zD4r` &34(line xxxxx colxxxxxFree:xxxxxTxEd V1.3 (c)1986 MicroSmiths~!@#$%^&*()_+|0QWERTYUIOP{}123ASDFGHJKL:"456ZXCVBNM<>?.789 `1234567890-=\0qwertyuiop[]123asdfghjkl;'456zxcvbnm,./.789 NewCli >nil:Done:Replaced # '4lClear Buffer? Select a FileNo changes-not writtenEnter Name of File to SaveNo File Name!run >nil: TxPrintExit without saving changes?Block Cut to ClipBlock Copied to ClipBlock InsertedLine DeletedJump: Char: Run >nil: ESearchingNot FoundReplacedReplace? (Yes | No | Global)Aborted LCan't Open File!Out of MemoryError Reading FileCaution: File truncated:t/TxEd.BackupCan't Create File:tTxEd.TempSaving...Error Writing FileSaving (5rzHBackupError creating backupError Writing. Look for file TxEd.TempTxEd G-ClearOpenSaveSave ASPrint ClipQUITV\afnJy, R~N VOp VW# R2 V)6կ?P? L VQMark BlockCut BlockCopy BlockInsert BlockDelete LineDel to EOLUnDelete Ln  L L%1 L< VHB, V\XN  VpCp  VI - VK*!r 7 VY A VLFwrd WordBack WordBeg/End of LnScroll UpScroll DownBeg/End of fileJump to line L  L$ L0 L@ VN.  Vb, @  Vv] b  VU ( V 8A0?(N#A$``Jg")pH(jNpH(jNJg")pH(jNpH(jN")pH(jN")pH(jNJl:DBN$r <(jNr <(jN%Ap$&"0($08 <INJgr <(jPN")t")! "&)!8")!")v!"$<ԉ"0 <INJfTJg*") <(jtNG" <(j$N`G" <(j$Nr <(jPN""0 <IdN%Ap$"0( <INJg""&)$0") <IN`""0 <IdN#A$<ԉ#B <I N$)r <(jN"$0") <I|Nv$)") <INJfr%Al") <IN"*@'Il <(jPNNFROM,TO/A,ALL/S,QUIET/SBad arguments Destination cannot be a pattern Cannot get WorkSpace : Destination must be a directory Output directory not found tidyup `,"*|#p"0p(jN"*|p(jxN%i|J|fJg"*p(jxN$*rp(jN"p(jNNNqTN%|"* <(jtN%AJf< n$G" <(j$Nr <(jN"*%A`"%p\%p tBlBxB|r <(jN%AJf&G" <Id@@3 l(Gxl RRR`BR//a$PL0N^NuNVH*y09@3~ l.RJf"Jo"//9a PHywN tX`R`L N^NuNVH<89Jngp`p. n&H/ aXJ@f|Jo y` y$H*K(n RJf LG(mZg&09@3 -^#@// aPN | L8N^NuNVHApB1 (y*yfHyN tX`Zd*L(y " $ & .JfHyN tX`,B #@// N,LPJfHyN X " L0N^Nu y###p y@ y y@ y@Baf09@3NuJg/9/9N8PNuNV .X#B/N P#Jf p/NX yT##a:N^NuNVH~ 9 nd~ 9 nc~ LN^NuNVH ~KJfN/ NX#Jg6 @2(R AIf2(TRA y1AT0(VR@,#5& y1@V.H`/</<N P#Jgh @B(H @!L y| y| LRRJf/9NdX y1|IRp y1@V y1@T.HN L0N^NuNVH*yNg40-R @If*0-TS@;@TJ@fa./ NxX/</ N8PBNL N^NuNVH *y~Ng60-R @If,JmXf&.-^(mZg// N8P+HZ+H^N L0N^NuNVH*y~NaJk6p//. N P+@ZJg". +A^//-Z/.N`O ~N L N^NuF,(C*2",ҩ#p"ҩt0")ҩv0#B #C$`Vrҩ <4IDN")$ <4IDN`Nrҩ <4IDNJ$g")$ <4IDN` ") t#gv%gx(gz|g`R",lF$)v0(n", NJfrNR")ҩt0)B,#lBB #ir#A nҬ#p$"ҩ$t0#B(`J`prҩ$$ԁr0(#A(",,(fN")ҩ$t0" <8IDN`,")(t#gv%gx'gz(g|?g~|g`rҩ `X`:NqputDQG Jf t)B`@#lr#AnҬ$grҩ`R",Ҭ!Nrch ",n t)B`R",Ҭt0)BNnextiter'Xf p INp INNprim "8#l4pIN`Jr)A@"Np IN$pIN"N"pIN"t)4gv)C@pIN"N")tgv#gx(gz)g||g`Nqexp BpItN#At|gv)g xfB$)")pIN#At|gN",ґ$,"pIPN`$,")pIN`setexit`&",ґt0#B",EJGґ"JfNNqjoin #AJf"N`",ґt0"",ґt0Jf",ґ")Ncmplpat)A)BB&x08)DB#Dr#A n$,ԁv(rҩ `pINrp INtpIxN",FNNqmyfaultrp(j(N#A$)"p(j(N")p(jNNNqconcat &x08*|0X#D#F #Fr#An&$)ԁv0(ҩ$ԁ(rҩ`")ҩ $(Nmakecap&x08*X"t0#Br#A n.$ԁv0("p(j,N$)ԩ (rҩ `NaddlockrpI1&e(jtN#AJf GP" p(j$Nr (jPN`")!|")!%i|N Out of Workspace freeloc$<|Ԋ#B#j|`N")$f,"p(jN")$)!(")p(jxNN#i")#pJf$G" pI NNNq!Internal error: Lock %X8 missing getlockp(jN#AJf"$GD" pItNr (jPN`")pIN")N%Could not get information for "%S" - myfaultrp(j(N#A() &)$)"p (j(N")p (jN$)rp (j(NNexaminepILNJfG," pp8(jN$Gt" p((j(Np,(jdNB $rp((j(N"*NNq*Cannot open From file %S New CLI task %N $Jf")N")#pJfrNNqcli.inip(j8N#Ap(jN#A$#p( &) (#p8#pHr$0(p((jN"&0$$)rp((jNv$)rp((jN"$0"0(p((jN#AJg0p((jNJf"")p((jtN$<rp((j(NBJf4rp<(j(N&t"p((jNp8(j8N$rp((j(N"*N")!")"0p((jN")&0$)rp((jNGT" HAN%Ap(jN"*pp(jN"*lp(jNJf$*xG$" pINr%A`Lt "*p(jspecial` rNrN"t#gv%gx(gz)g|?g~|g`JfrN"t0#B#Br#AnN$ԁv0(#C"p(INJgrNr'K74f$)o Rv#C rҩ`J gr#A`"ҩt0r'f~$)orv֩(؃v0H#C"p INJf r'fB")S#A")#An$tԁ&ւt08&ց8rҩ`SR")l`$(rNnextfilv ։#Cx4؉#D0z\ډ#EXB@BDBHBL|#FP.#pxTr <p(jN$)X <dIN"()T&0t/") <d(jN#ATJft#BD") <dI|N#AL$)" <dIN$)0") <dINJHgrNJLg"&)X$)0") <dI N#A@`\J@L(Jg B@`L") <d(jN#A@Jg2 <dI@N$)X")@ <dIN")@ <dINJ@frNJDg"#p X$)Pr <h(j(NJXgD")Xt0҂t0r:g(r <h(j(NJg")Xt0S%iLx&)$)X" <hIdNJfr#AHBP`")Xtxfr <d(jN#AX$&0( x08#D\v֩X"0( $ <lIpNrҩX <|IXN$r <l(jN"!T"G$ "0 <lIpN$)" <lIN#AH$&0( _8r <x(jN <lIN$)Xr <l(jN 7i$M`/is.direp(jN$)!(")tJfF#Brp(j(Nt fFĩ"Ncopyfilrp(jN#A p(jN#Ap (jN#ABBB B$t#B(B,B0&*#C4Jf"pH(jN#AJf$G" pHINB(`")pH(jN$*prpH(jNtԉ")pHINJgG" pH(j$NB(`")pH(jtN")pH(jN#AJf$)G" pHINB(`")pH(jN$*")4pH(jN#AJnt#B,rpH(j(N#A$`PrpH(jNJg r#A `6$)")4pH(jN#AJnt#B0rpH(jrNJeE MODULO MOVE.W D3,BLTDMOD(A5) ;DEST MODULO=0 MOVE.W #0,BLTCON1(A5) ;BLTCON1=0 MOVE.W #$09F0,BLTCON0(A5) ;BLTCON0 LSL.W #6,D1 AND.W #$FFC0,D1 AND.W #$3F,D0 OR.W D1,D0 MOVE.W D0,BLTSIZE(A5) ;BLIT SIZE MOVEM.L (SP)+,D0-D2/A5 ;POP FROM X-MEN WAITBLIT: BTST #$E,$DFF002 ;BLITTER ACTIVE? BNE.S WAITBLIT ;IF YES WAIT FOR IT RTS ****************************************************************************** ****************************************** * BLITTER rO\ )DATA COPYING ROUTINE * * SAME AS ABOVE BUT DECREMENT NOT INCREM * ****************************************** BLIT2: MOVEM.L D0-D2/A5,-(SP) ;PUSH ON STACK LEA CUSTOM,A5 MOVE.L #-1,BLTAFWM(A5) ;JUST IN CASE MOVE.L A0,BLTAPTH(A5) ;SOURCE ADDRESS MOVE.L A1,BLTDPTH(A5) ;DEST ADDRESS MOVE.W D2,BLTAMOD(A5) ;SOURCE MODULO MOVE.W D3,BLTDMOD(A5) ;DEST MODULO=0 MOVE.W #2,BLTCON1(A5) ;BLTCON1=2 = DESC MOVE.W #$09F0,BLTCON0(A5) ;BLTCON0 LSL.W #6,D1 AND.rP`aXW #$FFC0,D1 AND.W #$3F,D0 OR.W D1,D0 MOVE.W D0,BLTSIZE(A5) ;BLIT SIZE MOVEM.L (SP)+,D0-D2/A5 ;POP FROM X-MEN BRA WAITBLIT RTS ***************************************************************************** ****************************************** * BLITTER DATA COPYING ROUTINE * * SAME AS ABOVE BUT D= NOT A (INVERT) * ****************************************** BLIT3: MOVEM.L D0-D2/A5,-(SP) ;PUSH ON STACK LEA CUSTOM,A5 MOVE.L #-1,BLTAFWM(A5) ;JrQUST IN CASE MOVE.L A0,BLTAPTH(A5) ;SOURCE ADDRESS MOVE.L A0,BLTDPTH(A5) ;DEST ADDRESS MOVE.W D2,BLTAMOD(A5) ;SOURCE MODULO MOVE.W D3,BLTDMOD(A5) ;DEST MODULO=0 MOVE.W #0,BLTCON1(A5) ;BLTCON1=0 MOVE.W #$090F,BLTCON0(A5) ;BLTCON0 LSL.W #6,D1 AND.W #$FFC0,D1 AND.W #$3F,D0 OR.W D1,D0 MOVE.W D0,BLTSIZE(A5) ;BLIT SIZE MOVEM.L (SP)+,D0-D2/A5 ;POP FROM X-MEN BRA WAITBLIT RTS *****************************************************************************rRO;* ****************************************** * LOAD A FILE TO MEMORY * * * * ON ENTRY * * A0 = START ADDRESS WHERE TO PUT DATA * * A1 = ADDRESS WHERE FILENAME IS LOCATED * * D0 = LENGTH OF DATA * ****************************************** LOAD: MOVE.L A0,A3 MOVE.L D0,D4 MOVE.L A1,A4 MOVE.L DOSBASE,A6 ;STORE DOS LIBRARY ADDRESS IN A6 MOVE.L A4,D1 ;FILENAME ADDRrSʧ%ESS IN D1 MOVE.L #$3ED,D2 ;OPEN MODE IN D2 JSR OPEN(A6) ;CALL FILE OPEN LIBRARY TST.L D0 BEQ.S LOADERR MOVE.L D0,BUFFER ;STORE FILE HANDLER MOVE.L BUFFER,D1 MOVE.L A3,D2 ;BUFFER START ADDRESS FOR READ IS MOVE.L D4,D3 ;STORE LENGHT IN D3 FOR READ JSR READ(A6) ;CALL LIBRARY READ MOVE.L D0,-(SP) MOVE.L BUFFER,D1 JSR CLOSE(A6) ;CALL CLOSE FILE MOVE.L (SP)+,D0 LOADERR: RTS BUFFER: DC.L 0 ********************************************************************r T74********* ****************************** * GET MOUSEX/MOUSEY IN D0/D1 * ****************************** GETCORDS: MOVE.L WINDOWPTR,A0 ADD.L #12,A0 MOVEQ #0,D0 MOVEQ #0,D1 MOVE.W (A0)+,D1 MOVE.W (A0)+,D0 SUB.W #5,D1 ;YOFFSET ADD.W #2,D0 ;XOFFSET LSR.W #1,D0 ;COZ IT WAS 0-640 !! MOVE.L D0,XCORD MOVE.L D1,YCORD RTS XCORD: DC.L 0 YCORD: DC.L 0 ***************************************************************************** **********************************r!UY******************************************* * MAIN RUTINES OF THE MEGA PRESET LIST EDITOR BY 101 - THE MALTESE HACKERS * ***************************************************************************** MAINPROG: MOVE.B $BFE001,D0 AND.B #$80,D0 BEQ MAINXIT BTST #10,$DFF016 ;RIGHT MOUSE BUTTON? BEQ.S RIGHTIT ;IF YES JUMP !! MOVE.B $BFE001,D0 ANDI.B #$40,D0 BNE.S MAINPROG MOVE.L #50000,DELCOUNTER BRA.S WHODUNNIT RIGHTIT: MOVE.L #1000,DELCOUNTER WHODUNNIT: BSR GETr"V{CORDS MOVEQ #0,D2 MOVE.L #AREAS,A0 MAINLOOP: ADD.L #1,D2 MOVE.W (A0)+,D3 MOVE.W (A0)+,D4 MOVE.W (A0)+,D5 MOVE.W (A0)+,D6 MOVE.W D3,D7 OR.W D4,D7 OR.W D5,D7 OR.W D6,D7 CMP.W #0,D7 BEQ.S MAINXIT CMP.W D0,D3 ;LEFTX BGT.S MAINLOOP CMP.W D0,D5 ;RIGHTX BLT.S MAINLOOP CMP.W D1,D4 ;TOPY BGT.S MAINLOOP CMP.W D1,D6 ;BOTTOMY BLT.S MAINLOOP MULU #4,D2 ;CONVERT TO LONGWORD MOVE.L #VECTORTABLE,A0 ;START OF TABLE ADD.L D2,A0 ;FINAL ADDRESS Mr#WOVE.L (A0),D0 ;GET VECTOR MOVEM.L D0,-(SP) ;PUT THE REQUIRED ADDRESS ON STACK AND RTS ;RETURN. I.E. -> JUMP TO VECTOR !! MAINXIT: RTS * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * CNOP 0,4 ;ANOTHER PAD VECTORTABLE: DC.L 0 ;PAD DC.L MARKIT DC.L DIRUP DC.L DIRDOWN DC.L DISKTORAM DC.L READDIR DC.L CLEARALL DC.L MARKALL DC.L READPLST DC.L SAVEPLST DC.L CLEARPLST DC.L MERGEPLST DC.L PLSTUP DC.L PLSTDOWN DC.L KILL r$\7" DC.L REPUP DC.L RLENUP DC.L REPDOWN DC.L RLENDOWN DC.L HELP DC.L IFF2RAW DC.L PLAY DC.L QUIT ***************************************************************************** AREAS: DC.W 16,16,191,127 ;THE GREAT WINDOW DC.W 204,10,226,33 ;ARROW UP DC.W 204,35,226,58 ;ARROW DOWN DC.W 232,10,254,58 ;DISK TO RAM DC.W 204,60,312,83 ;RIGHT GADGET 1 DC.W 204,85,312,108 ;RIGHT GADGET 2 DC.W 204,110,312,133 ;RIGHT GADGET 3 DC.W 10,137,157,160 ;TOPLEFT Gr_i****************** ***************************** * FREE THE ALLOCATED MEMORY * ***************************** RESTOREMEM: MOVE.L EXECBASE,A6 ;STILL 4 MOVE.L #(40*256*2)+8,D0 ;4 PLANE PAL HIRES + COLS MOVE.L SCREEN,A1 ;START OF SCREEN JSR FREEMEM(A6) ;GOODBYE TO CHIPMEM MOVE.L EXECBASE,A6 ;STILL 4 EH? MOVE.L #DIRLEN,D0 ;DIR INFO MOVE.L DIRINFO,A1 JSR FREEMEM(A6) MOVE.L EXECBASE,A6 MOVE.L #PLSTLEN,D0 MOVE.L PLSTINFO,A1 JSR FREEMEM(A6) MOVE.L EXECBASE,A6Zl5g"Jf "<`"<%Alr`^rґ%Ad$%p( ``4rҪ`$")p(j4NJfr`(%j`d"*`%p`J`fB`%|lrNNq$v0(#C%|lxn zor``r#A#i `D"ҩt0"p(j,Nt‚#Av mx/g z:fr`R") lrNpI,N#Atԉ#BJfr`nx&)t:")pD(jN$)v0(Rg8&)$)")pDItN#A$)pDINJfr`#j`t")pDINN$")pIN#A Jfr`<") #p$)v!(") B") t[u!"! $rNNq$")pIN#A Jfr`b") #p$)v(g") p ILN%|lr`,")$) ! (") t!"! $rN*#pX#pX#pXJfr` ")"0#AB $)SR#B$BlJfJ gr``>")l$)#p((J(g JfJ g"B") `Prҩ$p8(jtN#A(Jf%|lr`*Jf")!( `")!(")(B") $)^&)(!8")$)԰ !"*hҩ %Ah#i(")#pt#BJ g&")\*ҩt0")ҩ vց8`"")ҩ tԁr0($)ԩ(R R") f$!("!J g(r$)fFF&)xJ8fF„%Al") NNq(#pH #pH#pH*) #pX BB `")$)԰_#B#p")f$)ԩQ#BJfթJo") $0թ") $0l%|lr`v") #p Jf%|lr`T")$) ԰_#B$l#i$ ")#p`"!") $)P&!8")Nzډ#E|8܉#F4pdIN#AXJfr`") ]qpxIN#A\Jfr`&)4$)")XpxIN#AX$)4pxIhNJfr`v#j`d&)$) ")\pxIN#A\Jfr`Lt")dpxIN#AhJfr`.")pxINJf")hpxINr` ")X\f*$)")4px(j4NJf")hpxINr`$)")\pxINJf lg")hpxINr`$)4")XpxIhN")d$*d!(")\$)d! (")\!d ")d!\")t0#BpBl`&")ҩlt0rҩdҩlRl")pll")hpxINrNNqv։#Cp@I N"$)p@IxNJfr ^]`#j`")tfJ g%|lr`ft")p@IN#A Jfr`H")$0h"0 p@(jHN")$*d!(")p@(jxN") p@INrNNqrNJf "*\`F#jX`")#pJg ")fJf%|lr` ""0N#jX`")#pJg")$fJg(")tg f%|lr`Zrp(jtN#A Jfr`@p<(j8N#A0G" p@(jN#A4#i,(&*Xt") pI4N%AXNRAMJfr`n"<XҊ#A`")#p")Jg $f ^JE")Jf%|lr`"$)!("p(jxNrNNqBD#BH` r҉ҩD$ԩD!(RD")HDl"NT<#NJf")hpxINr` ")X\f*$)")4px(j4NJf")hpxINr`$)")\pxINJf lg")hpxINr`$)4")XpxIhN")d$*d!(")\$)d! (")\!d ")d!\")t0#BpBl`&")ҩlt0rҩdҩlRl")pll")hpxINrNNqv։#Cp@I N"$)p@IxNJfrr`Ps, MOVE.L #PLSTLEN,D0 MOVE.L MERGEINFO,A1 JSR FREEMEM(A6) MOVE.L EXECBASE,A6 MOVE.L #400,D0 MOVE.L INFOBLOCK,A1 JSR FREEMEM(A6) MOVE.L EXECBASE,A6 MOVE.L #65*1024,D0 MOVE.L INSTRUMENT,A1 JSR FREEMEM(A6) MOVE.L EXECBASE,A6 MOVE.L #1024,D0 MOVE.L NEWCOP,A1 JSR FREEMEM(A6) RTS ***************************************************************************** ********************************** * DEINITIALISE MY OWN COPPERLIZT * *****************************ra&***** DEINITCOPPER: LEA CUSTOM,A5 MOVE.L GRABASE,A6 ADD.L #$32,A6 ;offset to copper pointer MOVE.W #$80,DMACON(A5) ;disable copper MOVE.L OLDCOPPER,(A6) MOVE.W #$8080,DMACON(A5) ;enable copper RTS ***************************************************************************** ***************************** * CLOZE MY INTUITION WINDOW * ***************************** RESTOREWINDOW: MOVE.L INTBASE,A6 MOVE.L WINDOWPTR,A0 JSR CLOSEWINDOW(A6) RTS ********************rbmߑ********************************************************* ***************************************************************************** * ALL SUBS WHICH ARE USED ONE OR MORE TIMES ARE SITUATED HERE MAN !!! * * I TRIED TO MAKE THESE AS SIMPLE TO INTERFACE WITH AS POSSIBLE * ***************************************************************************** ****************************************** * BLITTER DATA COPYING ROUTINE * * ON ENTRY A0 = SOURCE ADDRErMӣSS * * A1 = DESTINATION ADDRESS * * D0 = WIDTH (WORDS) * * D1 = HEIGHT * * D2 = MODULO FOR SOURCE * * D3 = MODULO FOR DESTINATION * ****************************************** BLIT: MOVEM.L D0-D2/A5,-(SP) ;PUSH ON STACK LEA CUSTOM,A5 MOVE.L #-1,BLTAFWM(A5) ;JUST IN CASE MOVE.L A0,BLTAPTH(A5) ;SOURCE ADDRESS MOVE.L A1,BLTDPTH(A5) ;DEST ADDRESS MOVE.W D2,BLTAMOD(A5) ;SOURCr dgVE.L #DIRLEN,D0 ;DIR INFO MOVE.L #$10001,D1 ;CHIP 'N CLEAR JSR ALLOCMEM(A6) MOVE.L D0,DIRINFO MOVE.L EXECBASE,A6 MOVE.L #PLSTLEN,D0 ;PLSTINFO MOVE.L #$10001,D1 JSR ALLOCMEM(A6) MOVE.L D0,PLSTINFO MOVE.L EXECBASE,A6 MOVE.L #PLSTLEN,D0 ;PLSTINFO MOVE.L #$10001,D1 JSR ALLOCMEM(A6) MOVE.L D0,MERGEINFO MOVE.L EXECBASE,A6 MOVE.L #400,D0 ;PLSTINFO MOVE.L #$10001,D1 JSR ALLOCMEM(A6) MOVE.L D0,INFOBLOCK MOVE.L EXECBASE,A6 MOVE.L #65*1024,D0 r eQx ;PLSTINFO MOVE.L #$10001,D1 JSR ALLOCMEM(A6) MOVE.L D0,INSTRUMENT MOVE.L EXECBASE,A6 MOVE.L #1024,D0 ;PLSTINFO MOVE.L #$10001,D1 JSR ALLOCMEM(A6) MOVE.L D0,NEWCOP * INITIALISE PLST IN THE BEGINNING .... GENESIS 1:1 * AND THEN THERE WAS THE PRESET LIST EDITOR ... AND SO THE PLST WAS CREATED .. MOVE.L #0,PLSTPOS MOVE.L #1,PLSTITEMS MOVE.L PLSTINFO,A0 MOVE.W #'st',(A0)+ MOVE.W #'-0',(A0)+ MOVE.W #'1:',(A0) MOVE.L PLSTINFO,A0 ADD.L #22,A0 MOVE.W r fc]�,(A0)+ ;LEN MOVE.W #0,(A0)+ ;VOL MOVE.W #0,(A0)+ ;REP MOVE.W #1,(A0)+ ;RLEN/2 MOVE.L #0,QUITLAB ;WE HAVE NOT QUIT YET !! RTS SCREEN: DC.L 0 DIRINFO: DC.L 0 PLSTINFO: DC.L 0 MERGEINFO: DC.L 0 INFOBLOCK: DC.L 0 INSTRUMENT: DC.L 0 NEWCOP: DC.L 0 ***************************************************************************** ******************************************** * THIS ROUTINE LINKS A PICTURE BITMAP FILE * ******************************************** LOADSCRr g"EEN: MOVE.L SCREEN,A0 MOVE.L #PICNAME,A1 MOVE.L #(256*40*2)+8,D0 BSR LOAD MOVE.L SCREEN,A0 ;SOURCE ADD.L #(256*40*2),A0 ;FIND CMAP MOVE.L #COLTAB,A1 ;DEST MOVEQ #4-1,D0 ;LCV COPYCOLS: MOVE.W (A0)+,(A1) ;TRASFER WORD ADD.L #4,A1 DBF D0,COPYCOLS * * THE PIECE OF CODE BELOW LINKS THE FIRST 2 PLANEFIELDS TO COPPERLIZT * I PREFER IT DIS WAY THAN USING THE INDEXED MODE ... BUT I DONT KNOW WHY !! * MOVE.L SCREEN,D0 ;START OF FIRST PLANE MOVE.W D0,PL0L SWrhAP D0 MOVE.W D0,PL0H ;first PAL bitplane SWAP D0 ADD.L #256*40,D0 ;next plane start addr MOVE.W D0,PL1L SWAP D0 MOVE.W D0,PL1H ;second PAL bitplane SWAP D0 ADD.L #256*40,D0 RTS PICNAME: DC.B 'DF0:PRESED.PIC' DC.W 0 ;PAD ***************************************************************************** ************************************* * INITIALISE MY VERY OWN COPPERLIZT * * ISN'T THAT COOL OR WHAT ????? * ************************************* INITCrishtOPPER: LEA NEWCOPPER,A0 MOVE.L NEWCOP,A1 COPYCOP: MOVE.W (A0)+,(A1)+ CMP.W #$101,(A0) BNE.S COPYCOP LEA CUSTOM,A5 MOVE.L GRABASE,A6 ADD.L #$32,A6 ;offset to copper pointer MOVE.W #$80,DMACON(A5) ;disable copper MOVE.L (A6),OLDCOPPER ;store old pointer MOVE.L NEWCOP,(A6) MOVE.W #$8080,DMACON(A5) ;enable copper RTS OLDCOPPER: DC.L 0 NEWCOPPER: DC.W $0100,$2200 ;BPLCON0 DC.W $0102,$0000 ;BPLCON1 DC.W $0104,$0024 ;BPLCON2 DC.W $0108,$0000 ;BPL1MODrjpf DC.W $010A,$0000 ;BPL2MOD DC.W $0092,$0038 ;DDFSTRT DC.W $0094,$00D0 ;DDFSTOP DC.W $008E,$2C81 ;DIWSTART DC.W $0090,$2BC1 ;DIWSTOP DC.W $00E0 PL0H: DC.W $0000,$00E2 PL0L: DC.W $0000,$00E4 PL1H: DC.W $0000,$00E6 PL1L: DC.W $0000 DC.W $0180 COLTAB: DC.W $0000,$0182,$0DDD,$0184,$0888,$0186,$0333 DC.W $01A2,$0F00,$01A4,$0FF0,$01A6,$0000 DC.W $FFFF,$FFFE DC.W $0101 ***************************************************************************** **********rk/h***************************** * OPEN AN INTUTITION WINDOW SO THAT * * NO LAMER CAN EVER CORRUPT MY COPPER * * SCREEN !!! * *************************************** INITWINDOW: MOVE.L INTBASE,A0 ADD.L #$3C,A0 ;DONT ASK ME WHY $3C !!! MOVE.L (A0),D0 MOVE.L D0,SCREENPTR ;STORE IN NEWWINDOW STRUCT ADD.L #14,D0 ;OFFSET TO USHORT HEIGHT MOVE.L D0,A0 ;STORE IN ADDRESS REG. MOVE.W #256,(A0) ;MAKE SURE SCREEN HEIGHT = 256 AND.W #$FBFF,$DFF016 ;'PRESrl+|S' RIGHT MOUSEBUTTON MOVE.L INTBASE,A6 LEA NEWWINDOW,A0 JSR OPENWINDOW(A6) MOVE.L D0,WINDOWPTR MOVE.L INTBASE,A6 MOVE.L WINDOWPTR,A0 ;WINDOW STRUCT LEA NEWPOINTER,A1 ;NEW POINTER MOVE.L #$10,D0 ;HEIGHT MOVE.L #$10,D1 ;WIDTH MOVE.L #-7,D2 ;XOFFSET MOVE.L #-7,D3 ;YOFFSET JSR SETPOINTER(A6) ;DIS IZ A NEW NEW POINTER RTS * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * NEWWINDOW: DC.W 0,0 ;LEFT/TOP EDGES DC.W 640,256 ;WIrm(NDTH/HEIGHT DC.B 0,1 ;DETAIL/BLOCK PENS DC.L NULL ;IDCMP FLAGS DC.L $1000 ;FLAGS WAZ $1000 DC.L NULL ;FIRST GADGET DC.L NULL ;CHECKMARK DC.L WINDOWTITLE ;WINDOW TITLE SCREENPTR: DC.L NULL ;POINTER TO SCREEN DC.L NULL ;BITMAP DC.W 640,256 ;MIN WIDTH/HEIGHT DC.W 640,256 ;MAX WIDTH/HEIGHT DC.W $F ;CUSTOMSCREEN WINDOWPTR: DC.L 0 WINDOWTITLE: DC.B 'DELUXE PRESED V2.0 BY CRAIN OF PHAZE 101 ' DC.W 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *rX׹2 * * * * * * * * * * OH PLEASE - PLEASE ? DO NOT CHANGE DIS POINTER .... NEWPOINTER: DC.W $0000,$0000 DC.W $0080,$0080 DC.W $0140,$01C0 DC.W $0220,$03E0 DC.W $0490,$0770 DC.W $0948,$0EB8 DC.W $1224,$1DDC DC.W $22A2,$3D5E DC.W $2B6A,$3496 DC.W $2A2A,$35D6 DC.W $288A,$37F6 DC.W $294A,$3776 DC.W $2222,$3E3E DC.W $2412,$3C1E DC.W $280A,$380E DC.W $3006,$3006 DC.W $0000,$0000 DC.W $0000,$0000 ***********************************************************|xou************************************************** * JUST WAIT FOR THE TOP OF FRAME - NO BIG DEAL !! SMOOTH: MOVE.L GRABASE,A6 JSR WAITTOF(A6) RTS ****************************************************************************** * CHARSET RIPPED BY CRAIN OF 101 - THE MALTESE HACKERS * FROM SOUNDTRACKER PRESET-ED + IN DECEMBER 1988 * FROM ASCII 32 (SPACE) TILL ASCII 95 (UNDERLINE) CHARSET: DC.L $00000000 ;SHIFT THE CHARSET A BIT DOWN DC.L $00000000,$00000000 DC.L $00000000|yp ,$00000000 DC.L $18001800,$18000000 DC.L $18000000,$00000000 DC.L $66006600,$00000000 DC.L $00000000,$00000000 DC.L $6C00FE00,$6C00FE00 DC.L $6C000000,$00000000 DC.L $7E00D000,$7C001600 DC.L $FC000000,$00000000 DC.L $66000C00,$18003000 DC.L $66000000,$00000000 DC.L $10001000,$7C001000 DC.L $10000000,$00000000 DC.L $0C000C00,$18000000 DC.L $00000000,$00000000 DC.L $0C001800,$18001800 DC.L $0C000000,$00000000 DC.L $18000C00,$0C000C00 DC.L $18000000,$00000000 DC.L $54|z:003800,$7C003800 DC.L $54000000,$00000000 DC.L $10001000,$7C001000 DC.L $10000000,$00000000 DC.L $00000000,$00000C00 DC.L $0C001800,$00000000 DC.L $00000000,$7C000000 DC.L $00000000,$00000000 DC.L $00000000,$00001800 DC.L $18000000,$00000000 DC.L $06000C00,$18003000 DC.L $60000000,$00000000 DC.L $3C006E00,$76006600 DC.L $3C000000,$00000000 DC.L $1C003C00,$0C000C00 DC.L $0C000000,$00000000 DC.L $7C000600,$3C006000 DC.L $7E000000,$00000000 DC.L $7C000600,$1C000600 DCrrG:;NSERT COMMENTS TOO !! * 5. DO NOT INSERT ANY USELESS SHIT SUCH AS ROTATING POINTERS/SCROLLTEXTS ETC. * 6. DOCUMENTATION IS ON A SEPARATE ASCII FILE .. SPREAD THIS TOO * 7. I WOULD BE HAPPY TO GET A VERSION OF ANY MODIFIED SOURCE * 8. ANY HINTS/OBJECTIONS/BUG REPORTS/GREETZ ETC. ARE WELCOME * 9. ANY SWAPPERS/CODERS/ETC ARE WELCOME TOO !! * 10. THANX TO ELECTRONIC ARTISTS (MEGAMAN) FOR POINTING OUT A BUG * 11. THANX TO LEVEL 4 (JPN) FOR SOME HINTS ON ADAPTING TO EXPANDED A500s * *****rs;*************************************** * FIRST CODER: CRAIN * * GROUP: PHAZE 101 * * ADDRESS: PO BOX 529, VALLETTA, MALTA * ******************************************** ***************************************************************************** * ALL THE EQUATES ARE IN THE FIRST PART (I.E. HERE !!) * ***************************************************************************** NULL EQU 0 ;DIS IS YURGEN & OLrt_IVER & JEFF'S IQ !! EXECBASE EQU 4 ALLOCMEM EQU -$C6 FREEMEM EQU -$D2 OPENLIBRARY EQU -$198 FINDTASK EQU -$126 OPEN EQU -$1E CLOSE EQU -$24 READ EQU -$2A WRITE EQU -$30 DELETEFILE EQU -$48 RENAME EQU -$4E MODE_NEWFILE EQU $3EE MODE_OLDFILE EQU $3ED INFO EQU -$72 LOCK EQU -$54 EXAMINE EQU -$66 EXNEXT EQU -$6C ACCESS_READ EQU 'R' ACCESS_WRITE EQU 'W' DISPLAYBEEP EQU -$60 OPENWINDOW EQU -$CC CLOSEWINDOW EQU -$48 SETPOINTER EQU -$10E REMAKEDISPLAY EQU -$180 RETHINKDISPLAY EQruzoU -$186 MOVESCREEN EQU -$A2 WAITTOF EQU -$10E CUSTOM EQU $DFF000 JOY0DAT EQU $00A JOYTEST EQU $036 DMACON EQU $096 INTENA EQU $09A BLTCON0 EQU $040 BLTCON1 EQU $042 BLTAFWM EQU $044 BLTAPTH EQU $050 BLTDPTH EQU $054 BLTSIZE EQU $058 BLTAMOD EQU $064 BLTDMOD EQU $066 ***************************************************************************** * THE MAIN PROGRAM LOOP. I.E. THE EXECUTIVE ACCORDING TO DR. HEGI !!! * **********************************************rv@Ya******************************* BSR INITLIBS BSR INITMEM BSR LOADSCREEN BSR INITWINDOW BSR INITCOPPER BSR PRINTPLST MOVE.L #INSTEMPTY,$DFF0A0 ;LOCATION MOVE.W #1,$DFF0A4 ;LENGTH MOVE.L #INSTEMPTY,$DFF0B0 ;LOCATION MOVE.W #1,$DFF0B4 ;LENGTH MOVE.W #$8003,$DFF096 ;ENABLE CHANNELS WAIT: MOVE.W #$0003,SNDDMA BSR MAINPROG MOVE.W SNDDMA,$DFF096 CMP.L #0,QUITLAB BEQ.S WAIT BSR RESTOREWINDOW BSR DEINITCOPPER BSR RESTOREMEM MOVE.W #$0003,$DFF096rw  CLR.L D0 ;EXIT SAFELY RTS SNDDMA: DC.W 0 ***************************************************************************** * IN THIS PART ALL INITIALISATIONS AND PRELIMINARY LOADING IS DONE, SO IT * * IS NO COINCIDENCE THAT MOST OF THE LABELS START WITH INIT... !! * ***************************************************************************** ***************************************** * * * INITIALISE LIBRARIES & STORE POINTERSrxJ * * * ***************************************** INITLIBS: MOVEA.L 4,A6 LEA GRALIB,A1 CLR.L D0 JSR OPENLIBRARY(A6) MOVE.L D0,GRABASE MOVEA.L 4,A6 LEA DOSLIB,A1 CLR.L D0 JSR OPENLIBRARY(A6) MOVE.L D0,DOSBASE MOVEA.L 4,A6 LEA INTLIB,A1 CLR.L D0 JSR OPENLIBRARY(A6) MOVE.L D0,INTBASE RTS GRALIB: DC.B 'graphics.library' DC.W 0 DOSLIB: DC.B 'dos.library' DC.W 0 INTLIB: DC.B 'intuition.library' DC.W 0 DOSBASE r cLW DC.L 0 GRABASE DC.L 0 INTBASE DC.L 0 ***************************************************************************** ************************* * ALLOCATE SOME CHIPMEM * ************************* DIRLEN EQU 10000 PLSTLEN EQU 40000 INITMEM: MOVE.L EXECBASE,A6 ;TILL TIME DIS WAS 4 !! MOVE.L #(40*256*2)+8,D0 ;4 PLANE PAL HIRES + COLORS MOVE.L #$10001,D1 ;CHIP+CLEAR JSR ALLOCMEM(A6) ;OH ... THIS IS NICE MOVE.L D0,SCREEN ;STORE IT MOVE.L EXECBASE,A6 ;STILL 4 EH? MO!zYá$n*ftp`ag-J*`pL8f(g(( oONup)LNu Rg PfRpt``0e~<dvDa fhONu< g"<,g<)g< g< g <.g<\NuH`<Sg<Cg<Ug LNu Rft` Cf Rft` Sf PftafO NuH`t<Ag<Df4 L0e$<dagD oJVONu(Haf < A !@!@!@ p-L>a׬g <0e<:d <nR@`H n&$n*g`J.g6H n>A $n.gEFEp  gS@fLa<-J*("{g((,L8`6L8pLNuJ./f Bn(prRdؘJf Jkfr`P0a2Q"L&<p`;B@'H瀀 < r,xN:,@JfPpgNupC$}d| /,xN,_x{-@Vg/,nVN,_-@-@/,nVN,_-@"/,nVN(,_JfBL-OH8=| `(C +axg`x.n .g"@ !/,xN.,_/a(Bn C a"nV/,xNb,_ < "N/,xN.,_ NuC gatxx.n`Jn k/0. 6f< ga NuNuHpAZ"$v/,nVN,_LNuHv60. "6$ /,nVN,_L Nuv$ RJf0. "6/,nVN,_Nu<ae <{d NuL8B1BnBnBn8P!B.g*< g<-Vg<+fg߲<Sg0<Xg<Lg:<Cg><OgB<Pg^`a%~ҽURB3`ax|dt# `JV`(JV`BnJW!g< g ARal`ZBn8JfPg< gA8RaH`Aa>`,g\< gt0eL< dD AAg< fNuSNut gRB< fSB0Nu0B0 `JngJ.!gJnf Ca(RPoJ.gJn8fC8aVPlstNuA/ t0R@2U@<.f4Q _RBg |dP.Nu"af&"H-IA-HNuXH| r/,xN:,_L>Jg @ pNupNu"H !H?/,xN.,_L?NupNuA0B0"t/,nVN,_(g."AR$/,nVN&n,_Jg"/,nVN,_(.pNu/a"g /,nVN,_pNu/,nVN|,_(Cg@CRg4CRg(/ ?. =| 2K$ta B=_ *_CapNu/ A"$</,nVN,_"_"g~/$ &/,nVN,_"/,nVN,_Nu/ C2B1a"_gRD-@JngBEARg6f/ C0J@g<:gS@`BCR/ a$_"_g`"_pNu"/ K,a*_pNu"nB Q/ K,af*_Nu*_a&f(n-LpNu nB P"/,nVN,_ nB=hCRg 0-HBNuBBNuJBga`$<" /,nVN,_Jg @pNu/,nVN|'?K),_JNu$<`0<;@;@NuH&H8-vmg(5@RDRC|dfr < fp;D"LLJNu mg" /,nVN,_p`" $ &</ /,nVN,_&_Jk;@xv`B.!p-@ r-| zJg"HaTf-H"Bn"!B Nu.!gE^r J./gE8 J B0. Hg, 2VAIBX0IC JSAS@fJAgBSAf zB"-H v`l!gJ.g&. V( g n |g E8"BaJ g8 g. n . B !@B$H". Xaa.gaE8$ra(Zqa"."tvJ./fD/,nVN,_A8 !n z!Dv "."$/,nVN,_"."/,nVN,_Nu$. vY/,nVN,_A8 v` n f"J..gr a".g /,nVN,_NuHE7BrӮ n |gaLNuJBgծ n |g "$IafNu!aXp'`:.f.fLJ.f.!gX Nu.!gH n . Cp rg!X p-@ rLNup:` . B r/,xN:,_Jg-@ -| NuNupQ`ȢE8$ra .&g @*gaBraNuH``Jg0."C&4<BgR@Sf=@"pLNu=@"):xagBn"JLNuHp"."A&$v6."/,nVN,_Jk n"g <LNupLNu (g/ @a _(<f@p$%@%@%@ %@0< g R@|fV$%P"a& (g/ @a _Nu . g"n /,xN.,_B NuJ./g". ngXaf-H j-H nNuJ./gJ jg n jaB jNuJ./gJ jgE8$ra n nBP(n j2g|g|d|g4"\JBg n(0H p0@H`@avL&Lv0g[f@fRX`?$ra46&L$ra(0g[f @fBk"[`X`Br` \Tp(fpa$ra*V`RBBBB Bp 0 VRrRAf"V5@X"`J.g.!g"n n2"BY-I nNuP nNupBvp8J.g n n00<"M -H nNuP nNupB6p8`p; <f M-H r.gp:aŞ`p`p`NuAssembling file -AmigaDos error number 1234567-disc full -disc write protected -file not found p to Listing to ,GenAmiga 68000 Macro Assembler v1.21 page 0 pGenAmiga 68000 Macro Assembler v1.21 8th Dec 87 Copyright HiSoft 1987 usage: genim [filename] [-s msize+] [-x xrefs] [-o] [-p] [-c] [+c] [-l] [+l] Not enough memory! Aborted dos.libraryDDDDR@|fV$%P"a& (g/ @a _Nu . g"n /,xN.,_B NuJ./g". ngXaf-H j-H nNuJ./gJ jg n jaB jNuJ./gJ jgE8$ra n nBP(n j2g|g|d|g4"\JBg n(0H p0@H`@avL&Lv0g[f@fRX`?$ra46&L$ra(0g[f @fBk"[`X`Br` \Tp(fpa$ra~һfJg .8?<<`XJfL .86:?<`@XNua ap<f$<f<,ft=`?<=.8@8a`~a2<,f??a <gX`㍋.8.9<fpX`∁.8:6?<`axaܲ<,f?.9a .84BfrJg<ff9Nu~a<,fV??af<g*JgH| 8a84<f <f?<=` <g.8.9:6?<`a .8`=|8~aa<,fж<f.9a<f.8Nu.fx.fp gJ.f@+f`+f nNd'H -HNNu+gfNup`Bp`.gSn&f B"Nu ."-@"Nup`af JnfJfNupPX`"nB 0fCR n  f-HHn g-IBpxs<'g><"g8< g< g< g  R@`3@apf(Rn3nBnNuR< gڲg R@` nBCRg0-HBpR`NBBpR`Dp&`>~ad(.9NuJgraa ~<gDaJn`NuaJgp `*a f"a*B<,f ^f!Nup.`JgaޮaP<g4`:aDa)a.-GJ.gJgpA8BBBBQNuaԂ`a`*.~Jg RE-E ghJ.fX+f+ff'E/ a&&_f*rFa$$ .Ђ-@NuA-H-E8+fp1`.!g.2 +f`B!Nuaf-BNuaN<0gRa fJ.g !B2Nu!Nu~af|Jfv.9<,faXJ.g Ua =B:Nup`pJ.g@gNuaNu~al<dRC:E;<,faN<d4.:.;gJgE|9` Jg|tH9E.9 .8Nup`~Jfp`R.9a.9Nu~a<f.9<,fa܂a =B:Nu~a<fp.9Nu~<#ga .8<,fVt`8~a" ep aH=B:|8`~=n8Da\Jg\<f`<fZ~ dJfp a =nD8.8@9.8a .8<,fa .9NuD`<f?<<`p"`~a.9Nu~t=`t~taj<,fxa .8Nu~|a.9Jg,<fH9<,fBax<f, .8Nu<,f$ax`~|t=`~a=B:Nu~ϐ|td`~|t=`.8H{,8`~ata<,f.9| t=` p`<#gapaJfV.8<,fa?<=.8fbT2.80HHEMMAE=A8NuHz ?<`0<,f*a~.8.8fNup!`aJ.g"J.gBSBea r aQNuafaҴ< e]B-Nu`xCJ.fJif8 , g,<'f< g<Lg@RD` ,'fSDdx3DNu~aafP n&$n*g ag -J*aBJ.gpaL<,gNua&`~a|Sg|a׬f n&$n*J.fnf* BBBBX-J*`atgR .*-J*gF aBg zjg"B<,gNupV`ަga2g-J*(ga gp8aކ`"n(rRA gfNuYpNuaC &`$J./fp6aXXNuJ./gp;`C Ha`VtJ.fJQf8< g$< g< g<,gJ.f RB| fJ.f2Nufp7aNu <<,f`Aj<Cg,0<X<Dg J./g 0<X<Bgp.aݰ <`(gf`<_ft<Fg<CftJ.f-@ zNuODEATASS~J.g n f J.ga Nu~a6 a(J.g n fJ.gBa 0B<,f`At< gL<"gpa`><"gRB|epa`$BRB<,gIJ< g< g < gpaܼBBNuaf JfNup!aܤvNu gJ.ffaagNuH@A < !@!@!@ pRag <0e<:d<nR@`<.g< gSajgLNuO Nuundefinedextra in pass 2defined twicephasing error igarbage followingspaceimmediaterelativecommatoo largehexbinary).W or LByte sizedstring too longquote.S or .L onlynot implementedENDMENDCIF.W onlyinvalid expressionmalformedlistlongIncludebinary file i/o errorabsolutebadillegal use ofor EQURsizesizeMEXIToptiondivide by zerobad type combinationforward referencemissing ENDCnumeric parameter onlyuser errordirective must be at startunless Ȼ66linkingdirective only allowed oncebad externalexternalcannot relocatewhen linkingshort branch of 0sign extended operandjump to oddrelative offset used68020 incompatibleexpression MUST evaluatesymbol table fullfile i/o failedused before definedtable fulltoo many ENDCs inXREF table fullinstructionlabelexpecteddatanumberregisteraddressdigitaddressing modeunrecognisedcannotnot allowedunbalancedMacronested too deeplyErrorat line /I\Pass Warning found Fatal errorAbortedlines assembled into in file  Symbol table: Macro table:from linkable executable position independent code relocatable code absolute code LEA ArRTS NuBRA ` nBSR a nTST J JMP N dJSR N dEQU ADDQP SUBQQ ADD @SUB @CMP AND LOR LEOR LCLR B NOT F DBF QTDBRAQTTRAPN@BEQ g nBNE f nBCC d nBCS e nBPL j nBMI k nBHI @Zb nBLS c nDC EXG @EXT H" NEG D ADDI SUBI CMPI ADDA  SUBA  CMPA  ANDIORI EORI LINKNPBUNLKNXlBTST BCLR BSET BCHG@ ASL ASR LSL LSR ROXLROXRROL ROR SWAPH@RDBEQWTDBNEVTDBCCTTDBCSUTDBPLZTDBMI[TDBHIRTDBLSSTADDX JSUBX JNEGX@ BVC h nBVS i nBGE l nBLT m nBGT n nBLE o nDBVCXTDBVSYTDBgGE\TDBLT]TDBGT^TDBLE_TDBT PTSTOPNrST P`SF Q`SNE V`SEQ W`SCC T`SCS U`SPL Z`SMI [`SVC X`SVS Y`SGE \`SLT ]`SGT ^`SLE _`SHI R`SLS S`CHK AjMULUjMULSjDIVUjDIVSjABCDSBCDNBCDHNOP NqRTE NsCMPM RTR NwPEA H@TAS JENDMIFEQIFNEENDCIFD IFNDDS RS ^LISTEND EQUR SET pOPT (EVENIFGTIFGEIFLTIFLEIFC HIFNCNSPC PLENLLEN,TTL 0FAIL \CNOP XDEFXREF PAGEORG IDNT Q pM H A @ P  MACRO FINCLUDE  RESET NpTRAPV NvNOLIST MEXIT tSECTION __GENMODLISTCHARRSRESET RSDUMP (RSSET INCDIR AMP ~Nu~a0,<,fLa"A1`Nu  f`~aJ.~ng(aJg nm<gp=aB9<,faH .8Nu~S.9a <,fJg"<f.9afJf.8Nu.8aҶ<f.99Nutd|~a`<,fnaf\<fT .8Nu~t;`T.8|  a&<,f4J. gD. f=|@8|t=`=|Nh8aHf<f.9Nu0 ;`.8t`l| afJ. f$<f<dCEMEKn8Nu. Q e6e .9@8<f@N`=@8Nu0.8@?@F=@8Nu0.8@?@D`~Jfpab.9aZ嵴f2<,f6?aj8<f 0tPTQ=D:?<4` tl8a<,fa f2=D:NuxangNu<-gIJ</gpNuaLgp$apNu?a8gT`6eĶgR`</gpNu<g2~adap|9Ua~=B:fp@aJnB9gJn`t=a`aD<,f/a8" ~Jg&gЂҀ.A8p@g B0R@| fNuaJgp3atNu~p4`|~td`n~ gh/ a&_fFA-H-B8+g 'fg4rJfrp@'BNu+fNup0`$~ g/ J.fPa&_BgH,xN?@DL@+fd+f\pDfJnf'BJfpNuB8A8-Ha&_f-B8Jnf+fp1a`gp`T`tr aQ.fr=a|".8a&t r alQ`:~ g*anfJ VXN,_Nu/,y"oNb,_Nu/,y oL "/ND,_Nu/,y"oN>,_Nu/,y"oN8,_Nu/,y"o / N,_Nu/,y"o / N,_Nu4Ldx(@_AllocMem_FreeMem_AddHead0_FindNameH_FindTask`_AllocSignalt_FreeSignal_PutMsg_WaitPort_CloseLibrary_OpenDevice_CloseDevice_DoIO_OpenRes\'"0ource$_OpenLibrary</,y oN,_Nu/,y oN,_Nu/,yLN,_Nu,_GetDiskObject_FreeDiskObject_FindToolType( H02,y o"o$o &o$ /("/,$/0&/4NLL Nu_AutoRequestLN,_Nu/,yLN,_Nu/,y"oN,_Nu/,y /N,_Nu/,y /N,_Nu/,yLN,_Nu/,y osEBnJBnBBB"Bn&Bn4!aEFaI"B B J gaGfJfJBgaBg-L-M ~a *gx  gr ;gl&|.f.%g< g<< g6`Faf. n&$n*fpa`a&Hf  f gpaa|gpa`a(n.gIFax(n  f`6Ca>.n` Jn&gp2aXaC:aDaGaH,?. =| r a>v8.a ngrsa>XCa>8.aCJ./gCa>tC.fC.gCa>TCza>La:," .*2a<@C~a>0"a<2C`;a>"".NYa<CZa> ".Ya<=_ .g~G,aa9aa; aD=| Nur a=`:X`RG.f|f r a=fa:x~a@ <NuJ.gX.!gP!gaDC8g2..e&tRaDtRdނ$~C8aDJf`4aD~fJ.f0.ng`.g.f ga9.f8.a: .gBBnBn @NJGfr pagN  fB.fWۑRnNu~<;bg < g<*fA\`Darfl < f^&.(.MOVEf&A4` fA g6\f]((.gg.%ggga -M ga/|,<.fVgp+a *C<|aaa ap,` gg RFNufaXaff` BWLSp+` :=E80(A,N.g..`JGg n |fp'a J.g(Jnf",< g< g< g <:gpa xNuAB gA ff`p` T.f.%f g&a.f ggpa "` 'M n&$n*gJ.g6Htf n>A $n.gEFEp  gS@fLa ^-J*(gd.f x"nFCEFg f-IF#n3n&3n43nL.@#MRnJ=nJL-h LA $nF$jgEFWB (.f,U< gl< g < g`B< g< f` ( fS< g8< g2< g,<,fr<f >f`` nF ( f| pR@g< f=@4.gNu< g< gNuR< g< gSNuag<:gNuRnJBg.fIa< f-IN.gn LCF< gZ<\fP<@f2.L_aR`0e2< d,R$nFEg< gJfJg< g`SB``IF LvC *f*< INu< g< f8< g< g& a7afa7ag<:fp`< g6<ad<'g<"g`<{d`< gf`IJjp(CNupR`pT`|eS'HA0<a`HApdap ap0HANu<d`k<[d<Ad <_g$pNuA < !@!@!@ J.fJpaaf<n]`@0`@`@@`@@`0p@P@`P`x0`@`@`@`0`P``@`@0``@@0pP0`P}0`p}P} ````````ppP6R@`$pNu<Ae <ZbNu<9b<0d<.Nu<_NuH 0G $n.gEF+p2ER<.e&<{dJ2g<nR@`Jj<dL $pNu dR!NuBJ.g,a*ga&BJ@Nu<#gp`aJgp apNuHRaaU$8L`0.Nuad<+g4<-gNua(/aBafzD`Jgaz`a/aaJf؟`Jgaz`aa</g:<gNu ,*g`a/aaH"/ "$a,(LX`a/aa"H0$&a*L `H0&HC(HDքHC6<ЃLNuxJgB /JjDJjDp"ҁU@D@c؄`؄RQ jDNup/axNu<gJfNuTOp0`a,aF<&g<!g<^gNua/a"a <&g <^g`Ȁ`ı`aa\<=g<>g<gn `m`fxNuxNuaa4<g<gNua4/aa*  f(``aP<~g<+g2<-g2<(g(*`0aaFNua"a<)f`p`pa`aaDNu g.ag2<"gԲ<'g̲<*gRNu<`<fTNutaXf Ԁԁ`p`agvNuaf銄`0e< e< e <dNup Nu0e < dNupNuagvNua f㊄`0e <dNupNu$Lxt< g&gRD`gp|epvJ@fNuvp`Rv$ Nun nmmxNuxNuxNunn贼m䴼R-_stderr_stdoutargvBuffer_WBenchMsg _SysBase_errno argvArray,dosCmdBuf(initialSPdosCmdLen$_stdin_DOSBaseVerRev/$/Jg* 9gp9/NXHyNXJg$Jg/9NX/9NX/9N#(8/NP$Nu"/ /#h#THx keymap.resourceCannot open keymap.resourceThis program requires at least 1.2 romsconsole.deviceInternal system errorCannot open console.deviceInternal system errorCannot allocate a signalDEVS:keymaps/DEVS:keymaps/Cannot open keymap file: " topaz.font@CancelH ldP84_bodyText1\_bodyText2H_topaz9_IntuitionBase_cancelText,_iorp_diskObj.L103 .L104@_ior_IconBase.L81.L90.L82.L91 ҭ.L83 .L92.L84(.L93".L85P.L948.L86v.L95T.L87.L96j.L88.L97.L89.L98.L99H:(o o"oE:Ot&O,yNpJWFg/HoHTNO OL\NuNu:ps_common0ps_size&__doprntps_emptyBstuffCharLsc_putL/$/Ho //9NO $Nu .L1.L2.L3.L4_printfH0,yLNL@ Nu/,yN,_Nu/,yN,_Nu/,y"/Nj,_Nu 0@_Write_Input_Output,_LoadSeg<U/,yLN:,_Nu/,y"o / N.,_Nu/,yLN,_Nu/,yLN,_Nu/,y"oN,_Nu/,y /N,_Nu/,y /N,_Nu/,yLN,_Nu/,y on#g"@NbJ gN|"y N NuH.<,xNL`pd`A\NA\NNuCpN#gNudos.libraryjd^>,d^LF|addquotecharnoDOS1$8021$7952$795stripjunklnextchar3$795newargxstartupDOSNameopenDOSdoquoteBj_exitfromCLI.endargexitToDOSfromWorkbench"doconsLdomainzwaitmsgparmExitexit2k! HP``@`@0`@`x`P`0`@`x@``@`@`xpP`@`x0`@@`@@`@@`0`@P`@0`@`@`@`@@`@@`@0p@P B@0`P`x`@`@`@``P``@`@``@pP`P`p}P}0`@`@`@``P``@`@0``@`@` d"0 <IN#AtJf&*lt")p <(jN")p$0")t <IN&*l$")p <(jN` ")p$&&08$0("0 <I `N&*l$")p <(jN`")p$&&08$0("0 <I N&*l$")p <(jN`")p$&x&08$0("0 <I N&*l$")p <(jN`V")p$&x&08$0("0 <I N&*l$")p <(jN`")p$&&08$0("0 <I N&*l$")p <(jN`")p"0 <INt")p <(jN`")p"0 <IN#At#ipJf{r`t")t <IN&*l$") <(jN`X")p"0 <IN&*l$")p <(jN`(JXf"vt")p <(jN <(jPN&<t")p <(jN`")p <IN`&<t")p <(jN`")p"0tlJvlxglzgh|g,`gtgvgxgxzg`g tWlvgdxg\zRg`dg g gL g6 g`4`x"*\"0 p INp (jNN`D"#ptf"0 pIN`""0 p(jHN"p(jxe @N"JfN$*hv R#B(zHf "0H` ""0#AtR#B(#i,#i0#|4#|DOS8B<#jX@xvtpI Nt"p(jNN$#p(")pI N#AJfr`"$)"0pINN$#p(#p(&)#p8 ")pI LN#AJfr`:#i ") f$) "0( ` ") "0$") p ItNNNqJf%|lr`"!")$!(x")$!(B`"rҩҩt!ԑԩ!(RrlB`"rҩҩtԑԩ!(Rrl$)&!(8|$)Y #&0(x Rz ڑ!X$B(tt$ԑB(rNNqpI N#Atԉ#BJfr`&)$)")pDI@N#AJfr`")pDI@NJfr`$)")pDI 4NJf lgr`rpD(jtN#A Jf%|lr`")t#BTBXB\()&0 t") pDI N$)!( rҩ pD(jXN")t0#BXJ@gNq0. H/ a(XJ@fp/a:XJ@g#a/9NZXg~09G3L0N^NuNVH. | ae zb| Ae Zb| 0e 9b| LN^NuNVH,9(.z Pl./NX,bgR` LN^NuNVH..*yS Jo/ NX*@` L N^Nu?:NVH/9NZX*@~09H‾l/ NRX*@R`#09@3L N^NuNVH/9NZX*,9b$~09HUl/NRX*R`⺆c#09@3LN^NuNVH..*yz09HSm.z",Jj~, 9ܻcS/ NRX*@z09HЇ29H3 SJo/ NX*@`#09 HЮ 3Na 9ez @$J@gNd 3N,09E3L N^NuNVH *y.9/NX, f 9伀dS` /NZX. *o809 AT`@}0`@`0pP0`P`}0`@`@0`@`x0`P`0`@0`x@``@0`@`x0pP0`@`x@0`@@`@@`@@`0`@P`@`@#(?0x?0?0?0?0 ` 5H $FFFF,$88A9 DC.W $FFFF,$BAAB DC.W $EFFF,$AA88 DC.W $EFFF,$EFFF DC.W $0000,$0000 PAGEPTR1: DC.B $00 PAGEPTR2: DC.B $00 DC.W $0000 DC.W $0000,$0000 DC.W $0000,$0000 DC.W $0000,$0000 DC.W $0000,$0000 DC.W $0000,$0000 DC.W $0000,$0000 DC.W $0000,$0000 DC.W $0000,$0000 ***************************************************************************** NEWCOPPER: DC.W $0100 MODES: DC.W $C200 ;BPLCON0 DC.W $0102,$0000 ;BPLCON1 DC.W $0104,$0024 ;BPLCON2 DCE'=.W $0108 MOD1: DC.W $0000 ;BPL1MOD DC.W $010A MOD2: DC.W $0000 ;BPL2MOD DC.W $0092 DDFSTRT: DC.W $0038 ;DDFSTRT DC.W $0094 DDFSTOP: DC.W $00D0 ;DDFSTOP DC.W $008E,$2C81 ;DIWSTART DC.W $0090 COPPAL2: DC.B $2C,$C1 ;DIWSTOP DC.W $00E0 PL0H: DC.W $0000,$00E2 PL0L: DC.W $0000,$00E4 PL1H: DC.W $0000,$00E6 PL1L: DC.W $0000,$00E8 PL2H: DC.W $0000,$00EA PL2L: DC.W $0000,$00EC PL3H: DC.W $0000,$00EE PL3L: DC.W $0000,$00F0 PL4H: DC.W $0000,$00F2 PL4L: DC.W $0,000 DC.W $0180 COLTAB: DC.W $0000,$0182,$0000,$0184,$0000,$0186,$0000 DC.W $0188,$0000,$018A,$0000,$018C,$0000,$018E,$0000 DC.W $0190,$0000,$0192,$0000,$0194,$0000,$0196,$0000 DC.W $0198,$0000,$019A,$0000,$019C,$0000,$019E,$0000 DC.W $01A0,$0000,$01A2,$0000,$01A4,$0888,$01A6,$0000 DC.W $01A8,$0000,$01AA,$0000,$01AC,$0000,$01AE,$0000 DC.W $01B0,$0000,$01B2,$0000,$01B4,$0888,$01B6,$0000 DC.W $01B8,$0000,$01BA,$0000,$01BC,$0000,$01BE,$0000 DC.W $FFFF,$FFFE *******dQ********************************************************************** ***************************************************************************** * LOAD A SET OF 10 CHARSETS IN THE POSITION CHARSETS LOADCHARS: MOVE.L CHARSETS,A0 MOVE.L #CHARSNAME,A1 MOVE.L #(2*8*96)*10,D0 BSR LOAD RTS CHARSNAME: DC.B 'DF0:CHARSET1' DC.W 0 ***************************************************************************** * LOADS A TRACKER MUZAK LOADMUZAK: MOVE.L MT_DATA,A0 MOVE.L #MUeRZAKNAME,A1 MOVE.L #100*1024,D0 BSR LOAD RTS MUZAKNAME: DC.B 'DF0:MUZAK' DC.W 0 ***************************************************************************** * HEEEEY YOU, PEOPLE IN THE HOUSE ... DIS IZ WHERE I LOAD THE PAGE LOADPAGE: * MOVE.W PAGENUM1,D0 * CMP.W OLDPAGE,D0 * BEQ LOADPAGEXIT * MOVE.W D0,OLDPAGE * BEFORE YOU SAY ANOTHER WORD ... LET ME CLEAR THE COLORS !! MOVE.L #CLEARRGB,A1 MOVEQ #32,D0 ;4 PLANES BSR LOADRGB4 * THEN LEMME CLEAR THE SCREEN l MOVE.L #(20*256)-1,D0 MOVE.L SCREENBASE,A0 CP1: CLR.L (A0)+ DBF D0,CP1 MOVE.L #(20*256)-1,D0 MOVE.L SCREENBASE2,A0 CP2: CLR.L (A0)+ DBF D0,CP2 MOVE.L #(20*256)-1,D0 MOVE.L SCREENBASE3,A0 CP3: CLR.L (A0)+ DBF D0,CP3 MOVE.L #(20*256)-1,D0 MOVE.L SCREENBASE4,A0 CP4: CLR.L (A0)+ DBF D0,CP4 MOVE.L #(20*256)-1,D0 MOVE.L SCREENBASE5,A0 CP5: CLR.L (A0)+ DBF D0,CP5 * THEN LEMME CLEAR THE TEMPAGE MOVE.L #(20*256)-1,D0 MOVE.L TEMPAGE,A0 CTP1: CLR.L (Ľ@8` `P`@ `@ `@``@pP`P`p}P} `@`@`@` `P` `@ `@``@ `@` pP `P` `@`#u5x?0 0< ???0 0 ??0 0 ??0 0 ?ž]6@ `@`x `P ``@ `x@``@`@`xpP`@`x `@@`@@ `@@` `@P `@`@`@ `@`@@ `@@ ` p@P @`P`xJ `@ `@ `@` `P ``@ `@``@pP`P`p}P}0`@`@`@``P``@`@0``@`@`0pP0` Q LEA CUSTOM,A5 MOVE.L GRABASE,A6 ADD.L #$32,A6 ;offset to copper pointer MOVE.W #$80,$96(A5) ;disable copper MOVE.L (A6),OLDCOPPER ;store old pointer MOVE.L #NEWCOPPER,(A6) MOVE.W #$8080,$096(A5) ;enable copper RTS * LINK PLANES TP COPPERLIST LINK2COP: MOVE.L SCREENBASE,D0 ADD.L PALVAL,D0 MOVE.W D0,PL0L SWAP D0 MOVE.W D0,PL0H MOVE.L SCREENBASE2,D0 ADD.L PALVAL,D0 MOVE.W D0,PL1L SWAP D0 MOVE.W D0,PL1H MOVE.L SCREENBASE3,D0 ADD.L PALVAL,D0 ȱ9 MOVE.W D0,PL2L SWAP D0 MOVE.W D0,PL2H MOVE.L SCREENBASE4,D0 ADD.L PALVAL,D0 MOVE.W D0,PL3L SWAP D0 MOVE.W D0,PL3H MOVE.L SCREENBASE5,D0 ADD.L PALVAL,D0 MOVE.W D0,PL4L SWAP D0 MOVE.W D0,PL4H RTS PALVAL: DC.L 0 OLDCOPPER: DC.L 0 SCREENBASE: DC.L 0 SCREENBASE2: DC.L 0 SCREENBASE3: DC.L 0 SCREENBASE4: DC.L 0 SCREENBASE5: DC.L 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * NEWWINDOW: DC.W 0,0 ;LEFT/TOP EDGES DC.W 640,256 : E;WIDTH/HEIGHT DC.B 0,1 ;DETAIL/BLOCK PENS DC.L NULL ;IDCMP FLAGS DC.L $1800 ;FLAGS WAZ $1000 DC.L NULL ;FIRST GADGET DC.L NULL ;CHECKMARK DC.L WINDOWTITLE ;WINDOW TITLE SCREENPTR: DC.L NULL ;POINTER TO SCREEN DC.L NULL ;BITMAP DC.W 640,256 ;MIN WIDTH/HEIGHT DC.W 640,256 ;MAX WIDTH/HEIGHT DC.W $F ;CUSTOMSCREEN WINDOWPTR: DC.L 0 WINDOWTITLE: DC.B 'CRAIN WOZ ERE' DC.W 0 NEWPOINTER: DC.W 0,0 DC.W $FFFF,$FFFF DC.W $FFFF,$8888 DC.W $FFFF,$AABB DC.W'!!!! !  0!  0! 0! ?! 0! 0??!a 0!a 0yb:($H l0B/9N P P//<///9N OR`L0N^NuNVH *n(n ~:JgR` :g/R MRRJfL0N^NuNVH>0``` ! 6a00 ! 6 a0` ! 6 a!0` ! a? ! ! ! ! ! ! dgc !  f0l0f ٽuל!  g0l03? !` g 0l0cf ! l`f?fX ! l` fx00l1f8 ! l` f8`0l3f ! l` f0l6f ! f 0l7c !` !` !!!!!!!!!!?!?!?!<!<!<!5B<!<! |??! 6 a?! 6 a?! 6?!` ! 6! 6 0!f 6 `!c |!!H POINTER MOVE.L #$10,D0 ;HEIGHT MOVE.L #$10,D1 ;WIDTH MOVE.L #-7,D2 ;XOFFSET MOVE.L #-7,D3 ;YOFFSET JSR SETPOINTER(A6) ;DIS IZ A NEW NEW POINTER * FIRST STORE THE BASE ADDRESSES OF EACH PLANE MOVE.L SCREENSTART,D0 MOVE.L D0,SCREENBASE ADD.L #80*256,D0 MOVE.L D0,SCREENBASE2 ADD.L #80*256,D0 MOVE.L D0,SCREENBASE3 ADD.L #80*256,D0 MOVE.L D0,SCREENBASE4 ADD.L #80*256,D0 MOVE.L D0,SCREENBASE5 * THEN LINK TO COPPERLIST BSR LINK2COP * INIT COPPERLISTG s,12,11,10,9,8,7,6 DC.B 5,4,3,2,1 DC.B 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25 DC.B 26,27,28,29,30,31,32,33,34,35,36,37,38,39,38,37,36,35,34,33,32,31,30 DC.B 29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6 DC.B 5,4,3,2,1 DC.B 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25 DC.B 26,27,28,29,30,31,32,33,34,35,36,37,38,39,38,37,36,35,34,33,32,31,30 DC.B 29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,H 9,8,7,6 DC.B 5,4,3,2,1 DC.B 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25 DC.B 26,27,28,29,30,31,32,33,34,35,36,37,38,39,38,37,36,35,34,33,32,31,30 DC.B 29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6 DC.B 5,4,3,2,1 SS_SINPTR: DC.L 0 SS_SINCNT: DC.L 0 SS_SINDIR: DC.L 1 **************************************************************************** 7,38,39,38,37,36,35,34,33,32,31,30 DC.B 29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13|j+uB 0 INSTADDR: DC.L 0 ****************************************************************************** PLAYINSTR: MOVE.W #0,$DFF0A8 ;PUMP DOWN THE VOLUME MOVE.W #0,$DFF0B8 ;PUMP DOWN THE VOLUME MOVE.L INSTRUMENT,$DFF0A0 ;LOCATION MOVE.L INSTRUMENT,$DFF0B0 ;LOCATION MOVE.W INSTLEN,D0 ;LEN IN BYTES LSR.W #1,D0 ;LEN IN WORDS MOVE.W D0,$DFF0A4 ;LENGTH MOVE.W D0,$DFF0B4 ;LENGTH MOVE.W #428,$DFF0A6 ;PERIOD MOVE.W #428,$DFF0B6 ;PERIOD MOVE.W #64,$DFF0A8 ;VOLUME|k|ˇ MOVE.W #64,$DFF0B8 ;VOLUME MOVE.W #$8003,$DFF096 ;SND DMA ON REDOINSTR: MOVE.L #20000,D1 ;WAIT FOR SND PLOOP: NOP ;DMA TO START DBF D1,PLOOP ;PLAYING ... MOVE.L INSTRUMENT,A0 ;START OF INSTRUMENT MOVEQ #0,D0 ;CLEAR MOVE.W INSTREP,D0 ;#OF WORDS TO SKIP ADD.L D0,A0 ;FINAL ADDRESS MOVE.L A0,$DFF0A0 ;LOCATION MOVE.L A0,$DFF0B0 ;LOCATION MOVE.W INSTRLEN,$DFF0A4 ;LENGTH MOVE.W INSTRLEN,$DFF0B4 ;LENGTH MOVE.W #$8003,SNDDMA ;SO THAT MAIN PROG WIL|lL14L PLAY RTS INSTLEN: DC.W 0 INSTEMPTY: DC.L 0 INSTREP: DC.L 0 INSTRLEN: DC.L 0 ****************************************************************************** * THIS IS A VERY COMPLICATED PART TO UNDERSTAND .. IT IS PORTED FROM A CRAY II QUIT: MOVE.L #-1,QUITLAB RTS QUITLAB: DC.L 0 ****************************************************************************** ****************************************************************************** * MY OWN SUBS START 'ERE - THES|mu1pE ARE CALLED FROM THE OTHER RUTINES * ****************************************************************************** * * PRINTS A 4 DIGIT NUMBER ON SCREEN * D0 = LONGWORD = NUMBER * D1 = X * D2 = Y * PRINTNUM: MOVE.L #NUMMES2,A0 ;END OF STORE MOVEQ #3,D4 ;4 TIMES ALL4: MOVE.L D0,D3 ;STORE FOR MESSING AROUND AND.L #$F,D3 ;MASK ADD.L #48,D3 ;0=FIRST CHAR BSR HEXCONV ;CONVERT TO HEX MOVE.B D3,-(A0) ;STORE IN NUMMES ASR.L #4,D0 ;GET NEXT NIPPLE DBF |n~;D4,ALL4 ;DO IT 4 TIMES BABY MOVE.L #NUMMES,A0 ;START OF MESS MOVE.L #4,D0 ;LEN BSR PRINTMESS RTS NUMMES: DC.L 0 NUMMES2: DC.L 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * CONVERT TO HEX A NUMBER IN D3 HEXCONV: CMP.B #'9',D3 BLE.S NCOK ADD.B #7,D3 NCOK: RTS ****************************************************************************** * * PRINTS A MESSAGE ON SCREEN * * D0 = LENGTH * A0 = START OF MESSAGE * D1 = X * D2 = Y|o1[P * PRINTMESS: MOVEM.L D0-D2/A0,-(SP) SUB.L #1,D0 MOVE.L #TEMPMESS,A1 COPYMESS: MOVE.B (A0)+,(A1) CMP.B #'a',(A1) BLT.S CONTMESS CMP.B #'z',(A1) BGT.S CONTMESS SUB.B #32,(A1) CONTMESS: ADD.L #1,A1 DBF D0,COPYMESS MOVEM.L (SP)+,D0-D2/A0 MOVE.L #TEMPMESS,A0 ;START OF UPDATED MESSAGE MOVE.L SCREEN,A1 ;START OF SCREEN MULU #(40*8),D2 ;CONVERT TO VERT LINES ADD.L D2,A1 ;ADD Y ADD.L D1,A1 ;FINAL ADDRESS SUB.L #1,D0 ;TO USE WITH DBF ALLCHARS: MOVE.L #CHA|pE.fRSET,A2 ;START OF CHARSET MOVEQ #0,D1 ;CLEAR IT MOVE.B (A0)+,D1 ;GET ASCII CHAR CMP.B #0,D1 ;IS IT A 0? BNE.S NOT0 ;IF NO THEN JUMP MOVE.B #' ',D1 ;IF YES THEN REPLACE IT WITH CHR$(32) NOT0: SUB.B #32,D1 ;COZ SPACE IS FIRST CHAR MULU #16,D1 ;EACH CHAR IS 8 BYTES ADD.L D1,A2 ;START OF DIS CHAR MOVE.L A1,A3 ;STORE SCREEN ADDRESS MOVEQ #7,D2 ;8 VERT PIXIES ALL8: MOVE.B (A2)+,(A1) ADD.L #1,A2 ;SKIP THE 2ND PLANE !! ADD.L #40,A1 ;1 PIX DOWN DBF D2,ALL|qu8 MOVE.L A3,A1 ;RESTORE SCREEN ADDRESS ADD.L #1,A1 ;NEXT SCREEN POS DBF D0,ALLCHARS RTS TEMPMESS: DS.B 30 ****************************************************************************** PRINTPLST: MOVE.L PLSTINFO,A0 MOVE.L PLSTPOS,D0 ;CURRENT PLST ITEM MULU #30,D0 ;EACH IS 30 BYTES LONG ADD.L D0,A0 ;START OF STRING MOVEQ #22,D0 ;LENGTH MOVEQ #2,D1 ;X POS MOVEQ #25,D2 ;Y POSITION BSR PRINTMESS ;HIT IT MOVE.L PLSTINFO,A0 MOVE.L PLSTPOS,D0 ;C|rKURRENT PLST ITEM MULU #30,D0 ;EACH IS 30 BYTES LONG ADD.L D0,A0 ;START OF STRING ADD.L #26,A0 ;OFFSET TO REP MOVE.W (A0),D0 MOVE.L #35,D1 ;X MOVE.L #24,D2 ;Y BSR PRINTNUM MOVE.L PLSTINFO,A0 MOVE.L PLSTPOS,D0 ;CURRENT PLST ITEM MULU #30,D0 ;EACH IS 30 BYTES LONG ADD.L D0,A0 ;START OF STRING ADD.L #28,A0 ;OFFSET TO RLEN MOVE.W (A0),D0 MOVE.L #35,D1 ;X MOVE.L #26,D2 ;Y BSR PRINTNUM RTS ********************************************F7p((jN$)!(8")J8fj];29,29,29,29 DC.B 29,29,29,28,28,28,28,29,29,29,29,29,29,29,28,28,28,28,28,29,29,29,29,29 DC.B 28,26,24,21,18,16,13,11,10,10,10,12,14,17,20,23,25,27,29,29,29,29,29,29 SIN3: DC.B 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28 DC.B 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28 DC.B 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28 DC.B 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,28,28,28,28,28,28?R,28,28,28,28,28,28,28,28,28,28 DC.B 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28 DC.B 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28 DC.B 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28 DC.B 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28 DC.B 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28 DC.B 8,8,8,8,8,8,8,8,8,8,8@s,8,8,8,8,8,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28 DC.B 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28 DC.B 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28 DC.B 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28 DC.B 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28 DC.B 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28A-`S DC.B 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28 DC.B 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28 DC.B 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28 DC.B 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28 DC.B 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28 SIN4: DC.B 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,BDn=8,8,8,8,8,8,8,8,8,8,8,8,8,8 DC.B 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8 DC.B 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8 DC.B 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8 DC.B 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8 DC.B 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8 DC.B 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,CRy38,8,8,8 DC.B 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8 DC.B 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8 DC.B 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8 DC.B 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8 DC.B 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8 DC.B 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8 DC.B 8,8,8,DDn=8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8 DC.B 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8 DC.B 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8 DC.B 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8 DC.B 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8 DC.B 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8 DC.B 8,8,8,8,8,8,8,8,8,8,8,8,8,E ׇ8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8 SIN5: DC.B 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25 DC.B 26,27,28,29,30,31,32,33,34,35,36,37,38,39,38,37,36,35,34,33,32,31,30 DC.B 29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6 DC.B 5,4,3,2,1 DC.B 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25 DC.B 26,27,28,29,30,31,32,33,34,35,36,37,38,39,38,37,36,35,34,33,32,31,30 DC.B 29,28,27,26,25,24,23,22,21,20,19,18,17,1|i޵ZAN !! P2RPERROR: MOVE.L #REMESS,A0 ;START OF STRING MOVEQ #22,D0 ;LENGTH MOVEQ #2,D1 ;X POS MOVEQ #25,D2 ;Y POSITION BSR PRINTMESS ;HIT IT MOVE.L #15,D1 P2LOTSW: BSR DELAY DBF D1,P2LOTSW ;WAIT !! BSR PRINTPLST ;RESTORE ORIGINAL DISPLAY P2XIT: RTS P2RPMESS: DC.B ' INSTRUMENT LOADED. ' P2STNAME: DC.B 'ST-' P2ST1: DC.B 0 P2ST2: DC.B 0,':' DC.W 0 P2IMESS: DC.B ' INSERT VOLUME ST-' P2IM1: DC.B '0' P2IM2: DC.B '0:' DC.W 0 NAM1: DC.B 0 NAM2: DC.F߈6,15,14,13,12,11,10,9,8,7,6 DC.B 5,4,3,2,1 DC.B 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25 DC.B 26,27,28,29,30,31,32,33,34,35,36,37,38,39,38,37,36,35,34,33,32,31,30 DC.B 29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6 DC.B 5,4,3,2,1 DC.B 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25 DC.B 26,27,28,29,30,31,32,33,34,35,36,37,38,39,38,37,36,35,34,33,32,31,30 DC.B 29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13|d.W 0,0,0 DC.B ' ' DC.W 0 INSTPOS: DC.L 0 RDISKOK: DC.B 'SUCCESSFUL CONVERSION.' RDISKOUCH: DC.B 'WRITE ERROR. FILE LOST' RDISKR: DC.B ' STARTING CONVERSIONS ' RDISKIFF: DC.B 'OOOPS. NOT AN IFF FILE' RDISKN2: DC.W 0,0,0,0 RAWNAME: DC.L 0 TEMPRAW: DS.B 36 ****************************************************************************** PLAY: CMP.L #0,PLSTPOS BEQ P2XIT MOVE.W #$0003,$DFF096 ;SND DMA OFF MOVE.L INSTRUMENT,A0 MOVE.L #64*1024,D0 CLRINST: CLR.B (A0)+ DBF D|eT}0,CLRINST MOVE.L PLSTINFO,A0 MOVE.L PLSTPOS,D0 ;CURRENT PLST ITEM MULU #30,D0 ;EACH IS 30 BYTES LONG ADD.L D0,A0 ;START OF STRING MOVE.L A0,INSTADDR ;STORE POINTER TO INST NAME ADD.L #3,A0 MOVE.B (A0)+,NAM1 ;STORE THE CURRENT MOVE.B (A0),NAM2 ;ST-?? NAME MOVE.L PLSTINFO,A0 ;START OF INFO MOVE.L PLSTPOS,D0 ;CURRENT POS MULU #30,D0 ;EACH IS 30 BYTES ADD.L D0,A0 ;A0=FINAL ADDRESS ADD.L #26,A0 ;A0=ADDRESS OF REP MOVE.W (A0),INSTREP MOVE.L |f:XPLSTINFO,A0 ;START OF INFO MOVE.L PLSTPOS,D0 ;CURRENT POS MULU #30,D0 ;EACH IS 30 BYTES ADD.L D0,A0 ;A0=FINAL ADDRESS ADD.L #28,A0 ;A0=ADDRESS OF REP MOVE.W (A0),INSTRLEN MOVE.B NAM1,D0 MOVE.B D0,P2IM1 MOVE.B NAM2,D0 MOVE.B D0,P2IM2 MOVE.L #P2IMESS,A0 ;START OF STRING MOVEQ #22,D0 ;LENGTH MOVEQ #2,D1 ;X POS MOVEQ #25,D2 ;Y POSITION BSR PRINTMESS ;HIT IT MOVE.B NAM1,D0 MOVE.B D0,P2ST1 MOVE.B NAM2,D0 MOVE.B D0,P2ST2 MOVE.L DOSBASE|g$,A6 MOVE.L #P2STNAME,D1 MOVE.L #ACCESS_READ,D2 JSR LOCK(A6) ;GET LOCK MOVE.L D0,LOCKED CMP.L #0,D0 BEQ P2RPERROR MOVE.L LOCKED,D1 MOVE.L INFOBLOCK,D2 JSR INFO(A6) ;GET INFO MOVE.L SCREEN,A1 ADD.L #(16*40)+31,A1 ;SCREEN DEST MOVE.L INFOBLOCK,A0 ADD.L #11,A0 ;OFFSET TO WRITE PROT/ENA MOVE.B (A0),D0 ;MAKE THAT DISK AND.B #$02,D0 ;IN THE DISK TO RAM GADGET LSL.B #5,D0 ;LOOK WRITE PROTECT OR.B #$A2,D0 ;OR WRITE ENABLE MOVE.B D0,(A1) ;AC|hKwCORDING TO ACTUAL DISK MOVE.L INSTRUMENT,A0 MOVE.L INSTADDR,A1 MOVE.L #64*1024,D0 BSR LOAD MOVE.W D0,INSTLEN MOVE.L #P2RPMESS,A0 ;START OF STRING MOVEQ #22,D0 ;LENGTH MOVEQ #2,D1 ;X POS MOVEQ #25,D2 ;Y POSITION BSR PRINTMESS ;HIT IT MOVE.L #15,D1 P2STILLW: BSR DELAY DBF D1,P2STILLW ;WAIT !! BSR PRINTPLST ;RESTORE ORIGINAL DISPLAY MOVE.L INSTRUMENT,A0 CLR.W (A0) ;SO REPEAT WILL BE EMPTY BSR PLAYINSTR ;ACTUAL PLAY RTS ;NO ERROR M:y,9,8,7,6,5,5 DC.B 5,5,5,6,7,8,10,12,13,15,17,19,22,24,26,27,29,31,32,33,34,34,34 DC.B 34,34,33,33,31,30,28,27,25,23,21,18,16,14,12,11,9,8,7,6,5,5 DC.B 5,5,5,6,7,8,10,12,13,15,17,19,22,24,26,27,29,31,32,33,34,34,34 DC.B 34,34,33,33,31,30,28,27,25,23,21,18,16,14,12,11,9,8,7,6,5,5 DC.B 5,5,5,6,7,8,10,12,13,15,17,19,22,24,26,27,29,31,32,33,34,34,34 DC.B 34,34,33,33,31,30,28,27,25,23,21,18,16,14,12,11,9,8,7,6,5,5 DC.B 5,5,5,6,7,8,10,12,13,15,17,19,22,24,26,27,29,31,32,33,34,34,34 L <0(j$N`")ҩ!&)$)r <0(jN"lC901,$FF00,$00E0,$0000,$00E2,$0000,$00E4,$0000,$00E6,$0000 DC.W $00E8,$0000,$00EA,$0000,$00EC,$0000,$00EE,$0000 DC.W $CA01,$FF00,$00E0,$0000,$00E2,$0000,$00E4,$0000,$00E6,$0000 DC.W $00E8,$0000,$00EA,$0000,$00EC,$0000,$00EE,$0000 DC.W $CB01,$FF00,$00E0,$0000,$00E2,$0000,$00E4,$0000,$00E6,$0000 DC.W $00E8,$0000,$00EA,$0000,$00EC,$0000,$00EE,$0000 DC.W $CC01,$FF00,$00E0,$0000,$00E2,$0000,$00E4,$0000,$00E6,$0000 DC.W $00E8,$0000,$00EA,$0000,$00EC,$0000,$00EE,$0000 WAVESTART: D6BC.W $CD01,$FF00,$00E0,$0000,$00E2,$0000,$00E4,$0000,$00E6,$0000 DC.W $00E8,$0000,$00EA,$0000,$00EC,$0000,$00EE,$0000 DC.W $CE01,$FF00,$00E0,$0000,$00E2,$0000,$00E4,$0000,$00E6,$0000 DC.W $00E8,$0000,$00EA,$0000,$00EC,$0000,$00EE,$0000 DC.W $CF01,$FF00,$00E0,$0000,$00E2,$0000,$00E4,$0000,$00E6,$0000 DC.W $00E8,$0000,$00EA,$0000,$00EC,$0000,$00EE,$0000 DC.W $D001,$FF00,$00E0,$0000,$00E2,$0000,$00E4,$0000,$00E6,$0000 DC.W $00E8,$0000,$00EA,$0000,$00EC,$0000,$00EE,$0000 DC.W $D10r/ @L.=6EGAAAAAAAAAAAAAAA@~`!1@2#3$4%5޶^6&7*8(9)0߭_-+=|\00QqWwEeRrTtYyUuIiOoPp{[}]112233AaSsDdFfGgHhJjKkLl:;"'445566ZzXxCcVvBbNnMm<,>.?/..778899 71,$FF00,$00E0,$0000,$00E2,$0000,$00E4,$0000,$00E6,$0000 DC.W $00E8,$0000,$00EA,$0000,$00EC,$0000,$00EE,$0000 DC.W $D201,$FF00,$00E0,$0000,$00E2,$0000,$00E4,$0000,$00E6,$0000 DC.W $00E8,$0000,$00EA,$0000,$00EC,$0000,$00EE,$0000 * DC.W $D301,$FF00,$0180,$0005 * DC.W $D401,$FF00,$0180,$0004 * DC.W $D501,$FF00,$0180,$0003 * DC.W $D601,$FF00,$0180,$0002 * DC.W $D701,$FF00,$0180,$0001 * DC.W $D801,$FF00,$0180,$0000 DC.W $0100,$2200 DC.W $00E0 PL0H2: DC.W $0000,$00E2 PL0L2: DC.W $00|U]ܙ #23,D1 ;X POS MOVEQ #25,D2 ;Y POSITION BSR PRINTMESS ;HIT IT BRA.S HELPME HELPXIT: BSR DELAY BSR PRINTPLST RTS HELPMESS: DC.B ' HELP SCROLLTEXT. ' DC.W 0 SCROLLSCREEN: DC.L 0 SCRPTR: DC.L SCRMESS SCRTEMP: DC.L 0 SCRMESS: DC.B ' WOT IS THIS ?? SCROLLTEXT ?? AAAAARGH BUT DONT WORRY COZ THERE IS' DC.B ' ONLY NECESSARY TEXT TO EXPLAIN TO YOU HOW THIS PROGRAM SHOULD BE' DC.B ' USED !! BUT FIRST A FEW NOTES ... DELUXE PRESED V2.0 WAS RELEASED' DC.B ' IN APRIL |V }1989 ... IT WAS CODED BY CRAIN OF PHAZE 101 (PREVIOUSLY' DC.B ' CALLED 101 - THE MALTESE HACKERS) SPECIAL MENTION MUST GO TO' DC.B ' MEGAMAN/ELECTRONIC ARTISTS FOR POINTING OUT A BUG AND ALSO TO' DC.B ' JPN/LEVEL 4-AFL FOR HINTS ON ADAPTING TO X-PANDED AMIGAS ...' DC.B ' BUT NOW LET US START WITH THE INFOS ... CLICK WITH LEFT OR' DC.B ' RIGHT MOUSEBUTTON, THE RIGHT MOUSEBUTTON PRODUCES LESS DELAY' DC.B ' AFTER MESSAGES ... ON THE TOP-RIGHT CORNER OF THE SCREEN THE' DC.B ' CUR&!H DC.L 0 **************************************************************************** * T H E C O P P E R L I Z T * **************************************************************************** NEWCOPPER: DC.W $0100,$C600 ;HIRES 4 PLANES DPF DC.W $0102,$0000 ;BPLCON1 = SCROLL VALUE DC.W $0104,$0024 ;PRIORITY CONTROL DC.W $0108,$0000 ;MODULO ODD DC.W $010A,$0000 ;MODULO EVEN DC.W $0092,$0038 ;DATA FETCH START DC.W $0094,$0'"^V0D0 ;DATA FETCH STOP DC.W $008E,$3781 ;DISPLAY WINDOW START * DC.W $0090,$CFC1 ;DISPLAY WINDOW STOP DC.W $0090,$37C1 ;DISPLAY WINDOW STOP DC.W $00E0 PL0H: DC.W $0000,$00E2 PL0L: DC.W $0000,$00E4 PL1H: DC.W $0000,$00E6 PL1L: DC.W $0000,$00E8 PL2H: DC.W $0000,$00EA PL2L: DC.W $0000,$00EC PL3H: DC.W $0000,$00EE PL3L: DC.W $0000 DC.W $0180,$000F,$0182,$0FFF DC.W $0184,$0800,$0186,$0F00 DC.W $0190,$0000,$0192,$0880 DC.W $0194,$0088,$0196,$0808 DC.W $9001,$FF00,$0180,$000E (# DC.W $9101,$FF00,$0180,$000D DC.W $9201,$FF00,$0180,$000C DC.W $9301,$FF00,$0180,$000B DC.W $9401,$FF00,$0180,$000A DC.W $9501,$FF00,$0180,$0009 DC.W $9601,$FF00,$0180,$0008 DC.W $9701,$FF00,$0180,$0007 DC.W $9801,$FF00,$0180,$0006 DC.W $9901,$FF00,$0180,$0005 DC.W $99D1,$FFFE,$0182,$0AAA,$0184,$0600,$0186,$0A00 SEATAB: DC.W $9A01,$FF00,$00E0,$0000,$00E2,$0000,$00E4,$0000,$00E6,$0000 DC.W $00E8,$0000,$00EA,$0000,$00EC,$0000,$00EE,$0000 DC.W $9A01,$FF00,$00E0,$0000,$00E)$'%2,$0000,$00E4,$0000,$00E6,$0000 DC.W $00E8,$0000,$00EA,$0000,$00EC,$0000,$00EE,$0000 DC.W $9A01,$FF00,$00E0,$0000,$00E2,$0000,$00E4,$0000,$00E6,$0000 DC.W $00E8,$0000,$00EA,$0000,$00EC,$0000,$00EE,$0000 DC.W $9A01,$FF00,$00E0,$0000,$00E2,$0000,$00E4,$0000,$00E6,$0000 DC.W $00E8,$0000,$00EA,$0000,$00EC,$0000,$00EE,$0000 DC.W $9B01,$FF00,$00E0,$0000,$00E2,$0000,$00E4,$0000,$00E6,$0000 DC.W $00E8,$0000,$00EA,$0000,$00EC,$0000,$00EE,$0000 DC.W $9C01,$FF00,$00E0,$0000,$00E2,$0000,*%&p$00E4,$0000,$00E6,$0000 DC.W $00E8,$0000,$00EA,$0000,$00EC,$0000,$00EE,$0000 DC.W $9D01,$FF00,$00E0,$0000,$00E2,$0000,$00E4,$0000,$00E6,$0000 DC.W $00E8,$0000,$00EA,$0000,$00EC,$0000,$00EE,$0000 DC.W $9E01,$FF00,$00E0,$0000,$00E2,$0000,$00E4,$0000,$00E6,$0000 DC.W $00E8,$0000,$00EA,$0000,$00EC,$0000,$00EE,$0000 DC.W $9F01,$FF00,$00E0,$0000,$00E2,$0000,$00E4,$0000,$00E6,$0000 DC.W $00E8,$0000,$00EA,$0000,$00EC,$0000,$00EE,$0000 DC.W $A001,$FF00,$00E0,$0000,$00E2,$0000,$00E4,$+&گ0000,$00E6,$0000 DC.W $00E8,$0000,$00EA,$0000,$00EC,$0000,$00EE,$0000 DC.W $A101,$FF00,$00E0,$0000,$00E2,$0000,$00E4,$0000,$00E6,$0000 DC.W $00E8,$0000,$00EA,$0000,$00EC,$0000,$00EE,$0000 DC.W $A201,$FF00,$00E0,$0000,$00E2,$0000,$00E4,$0000,$00E6,$0000 DC.W $00E8,$0000,$00EA,$0000,$00EC,$0000,$00EE,$0000 DC.W $A301,$FF00,$00E0,$0000,$00E2,$0000,$00E4,$0000,$00E6,$0000 DC.W $00E8,$0000,$00EA,$0000,$00EC,$0000,$00EE,$0000 DC.W $A401,$FF00,$00E0,$0000,$00E2,$0000,$00E4,$0000,$00,'ީE6,$0000 DC.W $00E8,$0000,$00EA,$0000,$00EC,$0000,$00EE,$0000 DC.W $A501,$FF00,$00E0,$0000,$00E2,$0000,$00E4,$0000,$00E6,$0000 DC.W $00E8,$0000,$00EA,$0000,$00EC,$0000,$00EE,$0000 DC.W $A601,$FF00,$00E0,$0000,$00E2,$0000,$00E4,$0000,$00E6,$0000 DC.W $00E8,$0000,$00EA,$0000,$00EC,$0000,$00EE,$0000 DC.W $A701,$FF00,$00E0,$0000,$00E2,$0000,$00E4,$0000,$00E6,$0000 DC.W $00E8,$0000,$00EA,$0000,$00EC,$0000,$00EE,$0000 DC.W $A801,$FF00,$00E0,$0000,$00E2,$0000,$00E4,$0000,$00E6,$0000-(o DC.W $00E8,$0000,$00EA,$0000,$00EC,$0000,$00EE,$0000 DC.W $A901,$FF00,$00E0,$0000,$00E2,$0000,$00E4,$0000,$00E6,$0000 DC.W $00E8,$0000,$00EA,$0000,$00EC,$0000,$00EE,$0000 DC.W $AA01,$FF00,$00E0,$0000,$00E2,$0000,$00E4,$0000,$00E6,$0000 DC.W $00E8,$0000,$00EA,$0000,$00EC,$0000,$00EE,$0000 DC.W $AB01,$FF00,$00E0,$0000,$00E2,$0000,$00E4,$0000,$00E6,$0000 DC.W $00E8,$0000,$00EA,$0000,$00EC,$0000,$00EE,$0000 DC.W $AC01,$FF00,$00E0,$0000,$00E2,$0000,$00E4,$0000,$00E6,$0000 DC.W $.}00E8,$0000,$00EA,$0000,$00EC,$0000,$00EE,$0000 DC.W $AD01,$FF00,$00E0,$0000,$00E2,$0000,$00E4,$0000,$00E6,$0000 DC.W $00E8,$0000,$00EA,$0000,$00EC,$0000,$00EE,$0000 DC.W $AE01,$FF00,$00E0,$0000,$00E2,$0000,$00E4,$0000,$00E6,$0000 DC.W $00E8,$0000,$00EA,$0000,$00EC,$0000,$00EE,$0000 DC.W $AF01,$FF00,$00E0,$0000,$00E2,$0000,$00E4,$0000,$00E6,$0000 DC.W $00E8,$0000,$00EA,$0000,$00EC,$0000,$00EE,$0000 DC.W $B001,$FF00,$00E0,$0000,$00E2,$0000,$00E4,$0000,$00E6,$0000 DC.W $00E8,$0|J*h+A.S EXISTED2 ;HEY MAN ... IT EXITST NOEXIST2: ADD.L #30,A6 ;NEXT PLST POS DBF D5,CHECKIFEXIST2 ;REPEAT FOR ALL FILENAMES MOVEM.L (SP)+,D0-D7/A0-A6 ;POP FROM STACK/XMEN BRA.S MARKED2 ;WE FOUND ONE WHICH IS SIMILAR ;SO DONT PUT IT AGAIN IN PLST EXISTED2: MOVEM.L (SP)+,D0-D7/A0-A6 ;POP FROM STACK/XMEN BRA.S NOTMARKED2 MARKED2: MOVE.L A3,A0 MOVEQ #30-1,D5 M2LOOP: MOVE.B (A0)+,(A1)+ DBF D5,M2LOOP ADD.L #1,PLSTITEMS NOTMARKED2: ADD.L #30,A3 DBF D0,MERGELOOP|K+R SUB.L #1,PLSTITEMS ;THERE WOZ A BUG !! MOVE.L #MPMESS,A0 ;START OF STRING MOVEQ #22,D0 ;LENGTH MOVEQ #2,D1 ;X POS MOVEQ #25,D2 ;Y POSITION BSR PRINTMESS ;HIT IT MOVE.L #20,D1 MANYWAIT: BSR DELAY DBF D1,MANYWAIT ;WAIT !! BSR SORTPLST BSR PRINTPLST RTS MPERROR: MOVE.L #MEMESS,A0 ;START OF STRING MOVEQ #22,D0 ;LENGTH MOVEQ #2,D1 ;X POS MOVEQ #25,D2 ;Y POSITION BSR PRINTMESS ;HIT IT MOVE.L #20,D1 SKOSSW: BSR DELAY DBF D1,SKOSSW |L,: ;WAIT !! MOVE.L INTBASE,A6 MOVE.L #0,A0 JSR DISPLAYBEEP(A6) BSR PRINTPLST RTS MPMESS: DC.B ' PLST MERGED TO ST-00 ' MEMESS: DC.B 'ERROR WHILE MERGING !!' ****************************************************************************** * PLST UP * PLSTUP: CMP.L #0,PLSTPOS BEQ.S PUXIT SUB.L #1,PLSTPOS BSR PRINTPLST PUXIT: BSR DELAY RTS ****************************************************************************** * PLST DOWN * PLSTDOWN: CMP.L #0,PLSTIT|M-$EMS BEQ.S PDXIT MOVE.L PLSTITEMS,D0 MOVE.L PLSTPOS,D1 ADD.L #1,D1 CMP.L D0,D1 BGE.S PDXIT ADD.L #1,PLSTPOS BSR PRINTPLST PDXIT: BSR DELAY ;PUBLIC DOMAIN IS REALLY SHIT !! RTS ****************************************************************************** * KILL * KILL: CMP.L #0,PLSTITEMS ;LETS KILL YURGEN & OLIVER BEQ KIXIT CMP.L #0,PLSTPOS BEQ KIXIT MOVE.L PLSTPOS,D0 ;ITEM # TO KILL MOVE.L PLSTITEMS,D1 ;NO OF ITEMS IN PLST SUB.L D0,D1 ;D|N.Eѹ1=ITEMS TO SCROLL MOVE.L PLSTINFO,A0 ;START OF INFO MULU #30,D0 ;EACH ITEM=30 BYTES ADD.L D0,A0 ;START POS TO SCROLL MOVE.L A0,A1 ;ALMOST SOURCE ADD.L #30,A1 ;REAL SOURCE ALLDIS: MOVEQ #29,D0 ;LCV COPYDIS: MOVE.B (A1)+,(A0)+ ;COPY BYTE DBF D0,COPYDIS ;1 LINE DBF D1,ALLDIS ;ALL LINES SUB.L #1,PLSTITEMS CMP.L #0,PLSTITEMS BEQ.S DONTBOTHER MOVE.L PLSTITEMS,D0 MOVE.L PLSTPOS,D1 CMP.L D0,D1 BLT.S DONTBOTHER SUB.L #1,PLSTPOS DONTBOTHER: |O/MMOVE.L #KMESS,A0 ;START OF STRING MOVEQ #22,D0 ;LENGTH MOVEQ #2,D1 ;X POS MOVEQ #25,D2 ;Y POSITION BSR PRINTMESS ;HIT IT MOVE.L #20,D1 MOREW: BSR DELAY DBF D1,MOREW ;WAIT !! BSR PRINTPLST KIXIT: RTS KMESS: DC.B 'ITEM DELETED FROM PLST' ****************************************************************************** * RLEN DOWN * RLENUP: MOVE.L PLSTINFO,A0 ;START OF INFO MOVE.L PLSTPOS,D0 ;CURRENT POS MULU #30,D0 ;EACH IS 30 BYTES ADD.L D0,A0|P0c ;A0=FINAL ADDRESS ADD.L #26,A0 ;A0=ADDRESS OF REP SUB.W #1,(A0) AND.W #$7FFF,(A0) MOVE.W (A0),INSTREP BSR REDOINSTR BSR PRINTPLST BSR DELAY RTS ****************************************************************************** * RLEN UP * REPUP: MOVE.L PLSTINFO,A0 ;START OF INFO MOVE.L PLSTPOS,D0 ;CURRENT POS MULU #30,D0 ;EACH IS 30 BYTES ADD.L D0,A0 ;A0=FINAL ADDRESS ADD.L #26,A0 ;A0=ADDRESS OF REP ADD.W #1,(A0) AND.W #$7FFF,(A0) MOVE.W|Q1 (A0),INSTREP BSR REDOINSTR BSR PRINTPLST BSR DELAY RTS ****************************************************************************** * REP DOWN * RLENDOWN: MOVE.L PLSTINFO,A0 ;START OF INFO MOVE.L PLSTPOS,D0 ;CURRENT POS MULU #30,D0 ;EACH IS 30 BYTES ADD.L D0,A0 ;A0=FINAL ADDRESS ADD.L #28,A0 ;A0=ADDRESS OF REP RWOZ0: SUB.W #1,(A0) AND.W #$7FFF,(A0) CMP.W #0,(A0) BEQ.S RWOZ0 MOVE.W (A0),INSTRLEN BSR REDOINSTR BSR PRINTPLST BSR DELAY |R2r RTS ****************************************************************************** * REP UP * REPDOWN: MOVE.L PLSTINFO,A0 ;START OF INFO MOVE.L PLSTPOS,D0 ;CURRENT POS MULU #30,D0 ;EACH IS 30 BYTES ADD.L D0,A0 ;A0=FINAL ADDRESS ADD.L #28,A0 ;A0=ADDRESS OF REP RRWOZ0: ADD.W #1,(A0) AND.W #$7FFF,(A0) CMP.W #0,(A0) BEQ.S RRWOZ0 MOVE.W (A0),INSTRLEN BSR REDOINSTR BSR PRINTPLST BSR DELAY RTS ********************************************************|S3m********************** HELP: MOVE.L #HELPMESS,A0 ;START OF STRING MOVEQ #22,D0 ;LENGTH MOVEQ #2,D1 ;X POS MOVEQ #25,D2 ;Y POSITION BSR PRINTMESS ;HIT IT BSR DELAY MOVE.L SCREEN,A0 ;START OF SCREEN ADD.L #2,A0 ;X POS ADD.L #25*40*8,A0 ;Y POS ADD.L #22,A0 ;END OF TEXT MOVE.L A0,SCROLLSCREEN HELPME: MOVEQ #7,D2 HELPMORE: MOVE.L SCROLLSCREEN,A0 MOVE.L A0,A1 MOVEQ #7,D1 SCRVLOOP: MOVEQ #0,D7 ;DUMMY ROTATE TO CLEAR ROXL.W #1,D7 ;THE X BIT .|TJ2O... MOVEQ #11-1,D0 SCRLOOP: ROXL.W -(A0) DBF D0,SCRLOOP ADD.L #40+22,A0 DBF D1,SCRVLOOP MOVE.L A1,A0 BTST #6,$BFE001 BEQ HELPXIT MOVEM.L D0-D7/A0-A6,-(SP) MOVE.L GRABASE,A6 JSR WAITTOF(A6) MOVEM.L (SP)+,D0-D7/A0-A6 DBF D2,HELPMORE SCRREDO: MOVE.L SCRPTR,A0 MOVE.B (A0)+,D0 CMP.B #0,D0 BNE.S SCRNOTE MOVE.L #SCRMESS,A0 MOVE.L A0,SCRPTR BRA.S SCRREDO SCRNOTE: MOVE.L A0,SCRPTR MOVE.B D0,SCRTEMP MOVE.L #SCRTEMP,A0 MOVEQ #1,D0 ;LENGTH MOVEQ/eN#AB <$(jN#p <8(j8N$r <((jN#AG" <,IN#A r#A$tn ҩ&) ֩$!8rҩ$`J g.") $) !(") tg vְ!v2$G" <0(j8NJf") <0(jxN`"JfG$ !"<| <0(j`N")#p$r#A($n"ҩJf #i(` rҩ(`Jf<"?TPo   880|G= MOVEQ #25,D2 ;Y POSITION BSR PRINTMESS ;HIT IT MOVE.L DOSBASE,A6 MOVE.L #ST00NAME,D1 MOVE.L #ACCESS_READ,D2 JSR LOCK(A6) ;GET LOCK MOVE.L D0,LOCKED CMP.L #0,D0 BEQ MPERROR MOVE.L LOCKED,D1 MOVE.L INFOBLOCK,D2 JSR INFO(A6) ;GET INFO MOVE.L SCREEN,A1 ADD.L #(16*40)+31,A1 ;SCREEN DEST MOVE.L INFOBLOCK,A0 ADD.L #11,A0 ;OFFSET TO WRITE PROT/ENA MOVE.B (A0),D0 ;MAKE THAT DISK AND.B #$02,D0 ;IN THE DISK TO RAM GADGET LSL.B #5,D0 ;LOOK |H>AqEWRITE PROTECT OR.B #$A2,D0 ;OR WRITE ENABLE MOVE.B D0,(A1) ;ACCORDING TO ACTUAL DISK MOVE.L MERGEINFO,A0 MOVE.L #PLSTNAME,A1 MOVE.L #PLSTLEN,D0 BSR LOAD CMP.L #0,D0 BEQ MPERROR MPOK: DIVU #30,D0 ;THE NO OF ITEMS MOVE.L MERGEINFO,A3 ;START OF NEW ITEMS MOVE.L PLSTINFO,A1 ;START OF OLD PLST MOVE.L PLSTITEMS,D1 ;NO OF ITEMS IN OLD PLST MULU #30,D1 ;EACH ITEM=30 BYTES ADD.L D1,A1 ;WHERE TO PUT NEW ITEMS * * THIS PART CHECKS IF A SIMILAR (VERY S|I)NECIMILAR) ENTRY IS PRESENT IN PLST * A0=START OF CURRENT FILENAME FROM DIRINFO * MERGELOOP: MOVEM.L D0-D7/A0-A6,-(SP) ;PUSH ON STACK/XMEN MOVE.L A3,A4 ;JUST FOR CLARITY MOVE.L PLSTINFO,A6 ;JUST FOR CLARITY MOVE.L PLSTITEMS,D5 SUB.L #1,D5 ;COZ WE USE DBF CHECKIFEXIST2: MOVE.L A4,A0 MOVE.L A6,A5 ;STORE FOR FUTURE USE MOVE.L #22-1,D4 ;USE DBF CHECKFN2: MOVE.B (A0)+,D0 CMP.B (A5)+,D0 ;EQUAL ? BNE.S NOEXIST2 ;IF NO EXIT DBF D4,CHECKFN2 ;DO ALL FILENAME BR @S`Jyf I`  f$HyXHyHy NHO /a XJg2 9"9ܐ///9aO .JgB/N X`6I(`.K6`JygHyHN XJg BNXx` . dN`` `J`\`t`p`N(^`N(*@g/9@/ N"^PxIe`N(JgIw`vN((@fdI`Z/. N&XJgHI`>N'F`4 . d&N```0`j`f``  fp`p/N#X`/ NZX&@ yfBy/ N AuecX&@JyfS#x`  f 09HS`09Hr /N"XN%$`p " /9/A NX"/c y` y#N`"HyaX.Jk/N$X#x` . dN``b````h``h@3HyaX.Jk09?@R@30/H @ `09 R@@3 `K &`K j yd0( @!d$ M2A0gA0 M2 A009 jgpL`pl6`"N|`N (`K/ N X(@x` . g2Jg fBS:C  WDHH/N*X . 3HyaX89Iz*y~ 2n MRJgR`*y| 2n MRJgR`09H//9/9N'O &@g:#N%$ Jf3N  g g JfX`a:Jfh R/HyN PI LZ/aX 9dPJg // N"^PJg://9N!PS` IHyaXxzar8kXfN`8Y`y`G`g`N`n`x`4/9pNX`Ix09D3C\g/ a XL8N^NuNVHB/9lN ,Pp//9lN P#p//Hy /9lNpO yl>($H lp//<B//N OLN^NuB J9Xg,p/HyXNP# Jg/NX#`NuJ g/9`NX/9 NXNuNVHK$ap//.NP.Jf / aX`Hyx/NP,/NXJg 9', l,<BNPXl K5`N)/N)X/</.NP.JgdN/9/9/N0O ,JjKC` y#Dw mKVBaXa/NX3g / N XaL N^NuNVHx*nInG}aHp// NP,Jg\Hyx/NP*/NXJg(& vQm lN` `,``````` `` vVA|(H&l JfbHy /9 TNP~ !l n RR`p/Hy /9 TNIxO p//9Hy aO `Hy/9 TNP/ /.aPp/Hy/9 TNO B/9 THyNO /.aX&@g / N Xz`$n / / NPx`/</9N8PJtg/9tNXBt/9 Ta"X y 8 L* &@(  ,NVH'NTHya ^XKJg/ aX/9a &X/9pNX(@f aNN N/9pNX`~>,z:,/ aX, f//aP/a,X`a&y 8  gL g, fr "$?//aP`P  Pmhg `>Jyf.0+ @ 29HH2+49 ``R`(`@`` fp`p/N#tX`| p/N"X09J@f`&| p/N"X09HU29Hmj yg^| `X/ NZX*@By/ NX#JyfS09?@ R@3 QKglW0/ H @ R  g&  g /g *g ;g !g $f09?@ R@32/ H A09 @Pm` ygp/N#tX*y| d g| ygbp// N"^P`RJgN09?@ R@30/ H @ d&  c 09J@op `p,09R@3 F fNda209J@f| 09F309 @PoaL N^NuNVH>9H y 80(H29 9HKgv09@309 jg2a Jo* y g g yRRS`Jo // N!P09 &gN2ByL N^NuNVHK&yx . dXN``X``L`2 . d8N``<`v````HyN XJgN)Ba X`HyXHyHyNHO /a ZXJg/9aXS J.L A2,A3 SUB.L #36,A3 MOVE.L A3,A4 SUB.L #36,A4 MOVE.W $6(A0),$6(A1) MOVE.W $6(A0),$6(A2) MOVE.W $6(A0),$6(A3) MOVE.W $6(A0),$6(A4) MOVE.W $A(A0),$A(A1) MOVE.W $A(A0),$A(A2) MOVE.W $A(A0),$A(A3) MOVE.W $A(A0),$A(A4) MOVE.W $E(A0),$E(A1) MOVE.W $E(A0),$E(A2) MOVE.W $E(A0),$E(A3) MOVE.W $E(A0),$E(A4) MOVE.W $12(A0),$12(A1) MOVE.W $12(A0),$12(A2) MOVE.W $12(A0),$12(A3) MOVE.W $12(A0),$12(A4) MOVE.W $16(A0),$16(A1) MOVE.W $16(A0),$16(A2) MTOVE.W $16(A0),$16(A3) MOVE.W $16(A0),$16(A4) MOVE.W $1A(A0),$1A(A1) MOVE.W $1A(A0),$1A(A2) MOVE.W $1A(A0),$1A(A3) MOVE.W $1A(A0),$1A(A4) MOVE.W $1E(A0),$1E(A1) MOVE.W $1E(A0),$1E(A2) MOVE.W $1E(A0),$1E(A3) MOVE.W $1E(A0),$1E(A4) MOVE.W $22(A0),$22(A1) MOVE.W $22(A0),$22(A2) MOVE.W $22(A0),$22(A3) MOVE.W $22(A0),$22(A4) ADD.L #36,A0 MOVE.L A0,WAVENOW RTS WAVENOW: DC.L WAVESTART WAVECNT: DC.B 0 DC.W 0 WAVETYPE: DC.B 0 DC.W 0 ****************** 5K********************************************************** * THIZ PART PRINTS THE CURRENTLY SELECTED PART OF THE LOGO MOVELOGO: EOR.B #1,LOGONOW BEQ LOGOXIT MOVE.L LOGODIR,D0 ADD.L D0,LOGOPLACE CMP.L #7,LOGOPLACE BLE.S LOGONOT7 EOR.L #-1,LOGODIR SUB.L #1,LOGOPLACE BRA.S LOGONOT0 LOGONOT7: CMP.L #0,LOGOPLACE BGE.S LOGONOT0 EOR.L #-1,LOGODIR ADD.L #1,LOGOPLACE LOGONOT0: LEA $DFF000,A5 MOVE.L LOGO,A0 MOVE.L LOGOPLACE,D0 MULU #(80*32),D0 ADD.L D0,A0 MO|@V!ELOADING !!' IMESS: DC.B ' PLEASE INSERT ST-00: ' DC.W 0 WPMESS: DC.B ' REMOVE WRITE PROTECT ' DC.W 0 ***************************************************************************** * SAVE PLST * SAVEPLST: MOVE.L #IMESS,A0 ;START OF STRING MOVEQ #22,D0 ;LENGTH MOVEQ #2,D1 ;X POS MOVEQ #25,D2 ;Y POSITION BSR PRINTMESS ;HIT IT MOVE.L DOSBASE,A6 MOVE.L #ST00NAME,D1 MOVE.L #ACCESS_WRITE,D2 JSR LOCK(A6) ;GET LOCK MOVE.L D0,LOCKED CMP.L #0,D0 BEQ SPERR|AWkB OR MOVE.L LOCKED,D1 MOVE.L INFOBLOCK,D2 JSR INFO(A6) ;GET INFO MOVE.L SCREEN,A1 ADD.L #(16*40)+31,A1 ;SCREEN DEST MOVE.L INFOBLOCK,A0 ADD.L #11,A0 ;OFFSET TO WRITE PROT/ENA MOVE.B (A0),D0 ;MAKE THAT DISK AND.B #$02,D0 ;IN THE DISK TO RAM GADGET LSL.B #5,D0 ;LOOK WRITE PROTECT OR.B #$A2,D0 ;OR WRITE ENABLE MOVE.B D0,(A1) ;ACCORDING TO ACTUAL DISK MOVE.L INFOBLOCK,A0 ADD.L #11,A0 ;OFFSET TO WRITE PROT/ENA MOVE.B (A0),D0 ;GET WP BYTE |BY2AND.B #$02,D0 CMP.B #$00,D0 ;WAS IT WP? BNE.S NOTWP MOVE.L #WPMESS,A0 ;START OF STRING MOVEQ #22,D0 ;LENGTH MOVEQ #2,D1 ;X POS MOVEQ #25,D2 ;Y POSITION BSR PRINTMESS ;HIT IT NOTWP: MOVE.L DOSBASE,A6 MOVE.L #PLSTTEMPNAME,D1 MOVE.L #MODE_NEWFILE,D2 JSR OPEN(A6) ;OPEN FILE FOR PLST.TEMP MOVE.L D0,BUFFER BEQ.S SPERROR MOVE.L D0,D1 MOVE.L PLSTINFO,D2 MOVE.L PLSTITEMS,D3 MULU #30,D3 ;EACH ITEM=30 BYTES JSR WRITE(A6) ;WRITE PLST FROM RAM T:` much bugs and if there are, they will be destroyed soon ! if you want to start using it, coz there are enough lamers who play with my sources. Anyway let's start with the action of all the buttons. First of all the numeric keypad works just like the Cracker Journal style , and this can take you to any page you want. Left mouse = Page down Right mouse = Page up Left Commodore = Page down Right Amiga = Page up Left Alt |C]?>O ST-00 BEQ.S SPERROR MOVE.L BUFFER,D1 JSR CLOSE(A6) ;CLOZE THE FILE BEQ.S SPERROR MOVE.L #PLSTNAME,D1 JSR DELETEFILE(A6) ;DELETE THE OLD PLST BEQ.S SPERROR MOVE.L #PLSTTEMPNAME,D1 ;AND RENAME THE NEW PLST MOVE.L #PLSTNAME,D2 ;WHICH WAS PLST.TEMP AS JSR RENAME(A6) ;PLST BEQ.S SPERROR MOVE.L #SPMESS,A0 ;START OF STRING MOVEQ #22,D0 ;LENGTH MOVEQ #2,D1 ;X POS MOVEQ #25,D2 ;Y POSITION BSR PRINTMESS ;HIT IT MOVE.L #20,D1 HAFNAW: BSR DE[g  `|` < \Y<p``< `  ` J7 `  ` <  ?0``00`|D^̈́oLAY DBF D1,HAFNAW ;WAIT !! BSR SORTPLST BSR PRINTPLST RTS ;NO ERROR FOUND !! SPERROR: MOVE.L #SEMESS,A0 ;START OF STRING MOVEQ #22,D0 ;LENGTH MOVEQ #2,D1 ;X POS MOVEQ #25,D2 ;Y POSITION BSR PRINTMESS ;HIT IT MOVE.L #20,D1 KOCCW: BSR DELAY DBF D1,KOCCW ;WAIT !! MOVE.L INTBASE,A6 MOVE.L #0,A0 JSR DISPLAYBEEP(A6) BSR PRINTPLST RTS SPMESS: DC.B ' PLST SAVED TO ST-00: ' SEMESS: DC.B ' ERROR WHILE SAVING ! ' ****************************|E_1 ************************************************* * CLEAR PLST * CLEARPLST: MOVE.L PLSTINFO,A0 MOVE.L PLSTITEMS,D0 CPALL: MOVEQ #29,D1 CPC464: CLR.B (A0)+ DBF D1,CPC464 ;ONE OF THE BEST 8 BITTERS DBF D0,CPALL MOVE.L PLSTINFO,A0 MOVE.W #'st',(A0)+ MOVE.W #'-0',(A0)+ MOVE.W #'1:',(A0) MOVE.L PLSTINFO,A0 ADD.L #22,A0 MOVE.W #0,(A0)+ ;LEN MOVE.W #0,(A0)+ ;VOL MOVE.W #0,(A0)+ ;REP MOVE.W #1,(A0)+ ;RLEN/2 MOVE.L #0,PLSTPOS MOVE.L #1,PLSTITEMS MO|F<㌻rVE.L #CPMESS,A0 ;START OF STRING MOVEQ #22,D0 ;LENGTH MOVEQ #2,D1 ;X POS MOVEQ #25,D2 ;Y POSITION BSR PRINTMESS ;HIT IT MOVE.L #20,D1 MOREWAIT: BSR DELAY DBF D1,MOREWAIT ;WAIT !! BSR PRINTPLST RTS CPMESS: DC.B 'PLST CLEARED FROM RAM.' ***************************************************************************** * MERGE PLST * MERGEPLST: MOVE.L #0,PLSTPOS ;RESET DIS MOVE.L #IMESS,A0 ;START OF STRING MOVEQ #22,D0 ;LENGTH MOVEQ #2,D1 ;X POS qCa%'.B 29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6 DC.B 5,4,3,2,1 DC.B 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25 DC.B 26,27,28,29,30,31,32,33,34,35,36,37,38,39,38,37,36,35,34,33,32,31,30 DC.B 29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6 DC.B 5,4,3,2,1 DC.B 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25 DC.B 26,27,28,29,30,31,32,33,34,35,36,37,38,39,38,37,36,35,34,33,32,31,30 DC.B 29,28,2qDb7,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6 DC.B 5,4,3,2,1 DC.B 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25 DC.B 26,27,28,29,30,31,32,33,34,35,36,37,38,39,38,37,36,35,34,33,32,31,30 DC.B 29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6 DC.B 5,4,3,2,1 DC.B 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25 DC.B 26,27,28,29,30,31,32,33,34,35,36,37,38,39,38,37,36,35,34,33,32,31,30 DC.B 29,28,27,26,25,24qE,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6 DC.B 5,4,3,2,1 DC.B 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25 DC.B 26,27,28,29,30,31,32,33,34,35,36,37,38,39,38,37,36,35,34,33,32,31,30 DC.B 29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6 DC.B 5,4,3,2,1 SS_SINPTR: DC.L 0 SS_SINCNT: DC.L 0 SS_SINDIR: DC.L 1 **************************************************************************** 7,38,39,38,37,36,35,34,33,32,31,30 DC.B 29,28,2|=d-************ * READ PLST * READPLST: MOVE.L #0,PLSTPOS ;RESET DIS MOVE.L #IMESS,A0 ;START OF STRING MOVEQ #22,D0 ;LENGTH MOVEQ #2,D1 ;X POS MOVEQ #25,D2 ;Y POSITION BSR PRINTMESS ;HIT IT MOVE.L DOSBASE,A6 MOVE.L #ST00NAME,D1 MOVE.L #ACCESS_READ,D2 JSR LOCK(A6) ;GET LOCK MOVE.L D0,LOCKED CMP.L #0,D0 BEQ RPERROR MOVE.L LOCKED,D1 MOVE.L INFOBLOCK,D2 JSR INFO(A6) ;GET INFO MOVE.L SCREEN,A1 ADD.L #(16*40)+31,A1 ;SCREEN DEST MOVE.L INFO|>e#BLOCK,A0 ADD.L #11,A0 ;OFFSET TO WRITE PROT/ENA MOVE.B (A0),D0 ;MAKE THAT DISK AND.B #$02,D0 ;IN THE DISK TO RAM GADGET LSL.B #5,D0 ;LOOK WRITE PROTECT OR.B #$A2,D0 ;OR WRITE ENABLE MOVE.B D0,(A1) ;ACCORDING TO ACTUAL DISK MOVE.L PLSTINFO,A0 MOVE.L #PLSTNAME,A1 MOVE.L #PLSTLEN,D0 BSR LOAD CMP.L #0,D0 BNE.S RPOK MOVE.L #0,PLSTITEMS RPOK: DIVU #30,D0 MOVE.L D0,PLSTITEMS MOVE.L #RPMESS,A0 ;START OF STRING MOVEQ #22,D0 ;LENGTH MOVEQ #|?U2,D1 ;X POS MOVEQ #25,D2 ;Y POSITION BSR PRINTMESS ;HIT IT MOVE.L #20,D1 STILLW: BSR DELAY DBF D1,STILLW ;WAIT !! BSR SORTPLST BSR PRINTPLST RTS ;NO ERROR MAN !! RPERROR: MOVE.L #REMESS,A0 ;START OF STRING MOVEQ #22,D0 ;LENGTH MOVEQ #2,D1 ;X POS MOVEQ #25,D2 ;Y POSITION BSR PRINTMESS ;HIT IT MOVE.L #20,D1 LOTSW: BSR DELAY DBF D1,LOTSW ;WAIT !! BSR PRINTPLST RTS RPMESS: DC.B 'PLST LOADED FROM ST-00' REMESS: DC.B 'ERROR WHILE gI@.L $0(A0,D0),SS_SINPTR RTS SS_SHAPE: DC.L 0 SS_TABPOINT DC.L 0 SS_TABLE: DC.L SIN2 DC.L SIN4 DC.L SIN1 DC.L SIN3 DC.L SIN5 **************************************************************************** * CREATE A WAVE-LIKE EFFECT ON LOWER (MIRRORED) SCREEN WAVE: ADD.B #1,WAVECNT CMP.B #46,WAVECNT BLE.S WAVEOK CLR.B WAVECNT EOR.B #1,WAVETYPE WAVEOK: CMP.B #0,WAVETYPE BNE WAVE2 MOVE.L WAVENOW,A0 MOVE.L A0,A1 ADD.L #36,A1 MOVE.L A1,A2 ADD.L #36,A2 MOh8VE.L A2,A3 ADD.L #36,A3 MOVE.L A3,A4 ADD.L #36,A4 MOVE.W $6(A0),$6(A1) MOVE.W $6(A0),$6(A2) MOVE.W $6(A0),$6(A3) MOVE.W $6(A0),$6(A4) MOVE.W $A(A0),$A(A1) MOVE.W $A(A0),$A(A2) MOVE.W $A(A0),$A(A3) MOVE.W $A(A0),$A(A4) MOVE.W $E(A0),$E(A1) MOVE.W $E(A0),$E(A2) MOVE.W $E(A0),$E(A3) MOVE.W $E(A0),$E(A4) MOVE.W $12(A0),$12(A1) MOVE.W $12(A0),$12(A2) MOVE.W $12(A0),$12(A3) MOVE.W $12(A0),$12(A4) MOVE.W $16(A0),$16(A1) MOVE.W $16(A0),$16(A2) R#o MOVE.W $16(A0),$16(A3) MOVE.W $16(A0),$16(A4) MOVE.W $1A(A0),$1A(A1) MOVE.W $1A(A0),$1A(A2) MOVE.W $1A(A0),$1A(A3) MOVE.W $1A(A0),$1A(A4) MOVE.W $1E(A0),$1E(A1) MOVE.W $1E(A0),$1E(A2) MOVE.W $1E(A0),$1E(A3) MOVE.W $1E(A0),$1E(A4) MOVE.W $22(A0),$22(A1) MOVE.W $22(A0),$22(A2) MOVE.W $22(A0),$22(A3) MOVE.W $22(A0),$22(A4) SUB.L #36,A0 MOVE.L A0,WAVENOW RTS WAVE2: MOVE.L WAVENOW,A0 MOVE.L A0,A1 SUB.L #36,A1 MOVE.L A1,A2 SUB.L #36,A2 MOVE:j$ڹu is SLOW ! To get the source of this program write to our headquarters at Malta. But write only if you want to start using it, coz there are enough lamers who play with my sources. Anyway let's start with the action of all the buttons. First of all the numeric keypad works just like the Cracker Journal style , and this can take you to any page you want. Left mouse = Page down Right mouse = Page up Left Commodore = Page down Right Amiga = Page up Left Alt :X(__r = 5 pages down Right Alt = 5 pages up Left Shift = Go to start Right Shift = Go to end F1 through F5 = Specific pages F6 through F9 = Audio Channels F10 = Audio (Master) Caps Lock = LED (A500/2000) Del = Page num On/Off Help = For NTSC users ! Escape = Exit More key functions could be added in the future, hopefully to make the program more user friendly !! I hope that there are not toofSh*********************************************************** SS_ADDCOUNT: MOVE.L SS_SINDIR,D0 ADD.L D0,SS_SINCNT CMP.L #320,SS_SINCNT BLT.S SS_ADDOK NEG.L SS_SINDIR ADD.B #1,SS_SHAPE SS_ADDOK: CMP.L #0,SS_SINCNT BGT.S SS_ADDOK2 NEG.L SS_SINDIR ADD.B #1,SS_SHAPE SS_ADDOK2: AND.B #$7,SS_SHAPE BNE.S SS_ADDXIT ADD.B #1,SS_SHAPE ADD.L #4,SS_TABPOINT CMP.L #20,SS_TABPOINT BLT.S SS_ADDXIT CLR.L SS_TABPOINT SS_ADDXIT: LEA SS_TABLE,A0 MOVE.L SS_TABPOINT,D0 MOVEm|׫+L,GAMESMAN FLASH PRODUCTS - THE PRIDE ESCAPE NEW ORDER - NATAS BODYBAGS - MURPHY ALCATRAZ - HELIX THE RISING FORCE TACS - MICROCHIP EVE & KAREN ACTION FORCE - SCORPI TOP SWAP - HANSA PEGAZE THE COPY CREW - KOEN HISPEED - SLAYER CYBORG - THE SCREAMING BEAST THE SILENTS - MR. ZERO, LORD DREAD THE GURUS - SLY MAD MONKS - BIG RED* CRUSH - THE BLACK DEVIL BCS - DIRK DUKES OF HELL - ORCOS TWF - ARNIE MAFFIA - DON KNATTE ZICCHO & ZACCHO - CPT. ZICCHO THE BLACK SOUND - FIKIL THE SQUAD - MIKIutE DUECO ENT. - MASKER CRUSADERS MASTER GEORGE ATOMIC INTELLIGENCE - DEFLEX BYTERAPERS INC. - EYEBALL THE CODE CREW - RIK POSSESSED BROWBEAT CRUSADERS BRAINPOWER INC. - MARTIN ELECTRONIC ARTISTS - MEGA MAN TNF - IEE * = IT'S ABOUT FUCKIN TIME THEY SHOULD SEND SOMETHING FUCKINGS: TELSTAR - FOR FUCKING WITH MY (CRAIN'S) PROGRAM ICG (ITALY) - FOR CALLING SHITTY TO PRINCE ROW - GARRISON THE CULPRITS ALIENSOFT NEUTRAL ZONE CRACKERS - TIGER SHARK SCOTLAND YARD FLASH ATTRIUM - THE CORPORAq;o$l,13,11,10,10,10,12,14,17,20,23,25,27,29,29,29,29,29,29 DC.B 29,29,29,28,28,28,28,29,29,29,29,29,29,29,28,28,28,28,28,29,29,29,29,29 DC.B 28,26,24,21,18,16,13,11,10,10,10,12,14,17,20,23,25,27,29,29,29,29,29,29 SIN3: DC.B 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28 DC.B 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28 DC.B 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28 DC.B 8,8,8,q<p8,8,8,8,8,8,8,8,8,8,8,8,8,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28 DC.B 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28 DC.B 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28 DC.B 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28 DC.B 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28 DC.B 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,28,28,28,28,28,28,28,28,28,28,28q=q,28,28,28,28,28 DC.B 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28 DC.B 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28 DC.B 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28 DC.B 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28 DC.B 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28 DC.B 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,28,2q>r&k8,28,28,28,28,28,28,28,28,28,28,28,28,28,28 DC.B 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28 DC.B 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28 DC.B 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28 DC.B 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28 DC.B 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28 SIN4: DC.B 8q?snDgF,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8 DC.B 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8 DC.B 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8 DC.B 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8 DC.B 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8 DC.B 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8 DC.B 8,8,8,8,8,8,8,8,8,8,8q@tnDgD,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8 DC.B 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8 DC.B 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8 DC.B 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8 DC.B 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8 DC.B 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8 DC.B 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8qAunDgB,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8 DC.B 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8 DC.B 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8 DC.B 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8 DC.B 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8 DC.B 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8 DC.B 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8qB`PGa,8,8,8,8,8 DC.B 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8 SIN5: DC.B 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25 DC.B 26,27,28,29,30,31,32,33,34,35,36,37,38,39,38,37,36,35,34,33,32,31,30 DC.B 29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6 DC.B 5,4,3,2,1 DC.B 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25 DC.B 26,27,28,29,30,31,32,33,34,35,36,37,38,39,38,37,36,35,34,33,32,31,30 DCxT * * * * * * * * * * * * * * * SS_WAITBLIT: BTST #$E,$002(A5) BNE.S SS_WAITBLIT ;IF YES WAIT RTS SS_SCROLLVAL: DC.B 0 DC.W 0 SS_MESSAGE: DC.B ' HI JPN ' DC.B ' THIS IS JUST PART OF THE INTRO IM ' DC.B 'WORKING ON THE BAR TO THE LEFT OF THE SCREEN IS ' DC.B 'NOT A BUGGED SPRITE BUT ITS JUST TEST DATA IN ' DC.B 'PLAYFIELD TWO THE RUBBISH AT THE BOTTOM ' DC.B 'IS DUE TO UNSET BPLANE POINTERS ' DC.B 'IN A COUPLE OF SECONDS YOU WILL SEE THE RESULT OF ' DC.B x)8p8p8p88<88 y i88888 z?00000 { 000| <@80! 8`00 pp0|~ `000  0 < 0  0  0 }~ڻ 0  0 8 0 80 ?`80 ` `0  ~J0 0 ` Zuw 'A SINUS SCROLLER WHICH UNFORTUNATELY I HAD ALREADY ' DC.B 'DONE BEFORE I GOT YOUR LETTER BASICALLY IT IS THE ' DC.B 'SAME PRINCIPLE OF WORK BUT I DID NOT DO THE FINAL ' DC.B 'SINUS COPYING BY BLITTER SO IT IS RATHER SLOW ' DC.B 'ANYWAY IT WILL BE FOR NEXT TIME I HOPE ' DC.B 'AFTER EXITING FROM THIS DEMO YOU WILL ENTER THE ' DC.B 'DISK MAG CODE I TOLD YOU ABOUT ALMOST EVERYTHING ' DC.B 'IS TEST DATA SO DONT TAKE NOTICE OF THE BULLSHIT ' DC.B 'THERE IS OK kLSOME NOTES ABOUT THE DISKMAG ARE ' DC.B 'ON SOME PAGES AS I ALREADY TOLD YOU YOU CAN ' DC.B 'USE IT EVEN FOR CRACKER JOURNAL SO I INCLUDED ' DC.B 'THE SOURCE TOO BUT I HAVENT ' DC.B 'CHECKED IT MUCH YET SO THERE MIGHT BE SOME BUGS ' DC.B 'AND INSECTS SOME PAGES ARE EMPTY BUT JUST KEEP ' DC.B 'TURNING THE PAGE TILL ABOUT PAGE FIFTEEN ' DC.B 'SEE YA CLICK LEFT BUTTON ' DC.W 0 SS_MESSPTR: DC.L SS_MESSAGE SS_DOCHAR: DC.B 0 DC.W 0 *****************q9=8,29,29,29,29,29 DC.B 28,26,24,21,18,16,13,11,10,10,10,12,14,17,20,23,25,27,29,29,29,29,29,29 DC.B 29,29,29,28,28,28,28,29,29,29,29,29,29,29,28,28,28,28,28,29,29,29,29,29 DC.B 28,26,24,21,18,16,13,11,10,10,10,12,14,17,20,23,25,27,29,29,29,29,29,29 DC.B 29,29,29,28,28,28,28,29,29,29,29,29,29,29,28,28,28,28,28,29,29,29,29,29 DC.B 28,26,24,21,18,16,13,11,10,10,10,12,14,17,20,23,25,27,29,29,29,29,29,29 DC.B 29,29,29,28,28,28,28,29,29,29,29,29,29,29,28,28,28,28,28,29,29,29,29,29 DC|6䆴})+ ;STORE IN "DISKNAME" MOVE.B (A0)+,D0 ;ETC ETC BSR CONVLOW ;REPEAT FOR 5 CHARACTERS MOVE.B D0,(A1)+ MOVE.B (A0)+,D0 BSR CONVLOW MOVE.B D0,(A1)+ MOVE.B (A0)+,D0 BSR CONVLOW MOVE.B D0,(A1)+ MOVE.B (A0)+,D0 BSR CONVLOW MOVE.B D0,(A1)+ MOVE.B #':',(A1) MOVE.L DIRINFO,A5 ;A5=START OF DIRECTORY DIRLOOP: MOVE.L LOCKED,D1 MOVE.L INFOBLOCK,D2 JSR EXNEXT(A6) ;GET NEXT DIR BEQ.S ERROR ;MORE ENTRIES MOVE.L INFOBLOCK,A0 ADD.L #4,A0 ;OFFSET TO q:n$4.B 28,26,24,21,18,16,13,11,10,10,10,12,14,17,20,23,25,27,29,29,29,29,29,29 DC.B 29,29,29,28,28,28,28,29,29,29,29,29,29,29,28,28,28,28,28,29,29,29,29,29 DC.B 28,26,24,21,18,16,13,11,10,10,10,12,14,17,20,23,25,27,29,29,29,29,29,29 DC.B 29,29,29,28,28,28,28,29,29,29,29,29,29,29,28,28,28,28,28,29,29,29,29,29 DC.B 28,26,24,21,18,16,13,11,10,10,10,12,14,17,20,23,25,27,29,29,29,29,29,29 DC.B 29,29,29,28,28,28,28,29,29,29,29,29,29,29,28,28,28,28,28,29,29,29,29,29 DC.B 28,26,24,21,18,16|7|TYPE CMP.L #$02,(A0) ;IS IT A DIRECTORY ? BEQ.S DIRLOOP ;IF YES THEN DONT BOTHER MOVE.L A5,A1 MOVE.L INFOBLOCK,A0 ADD.L #8,A0 ;OFFSET TO NAME COPYNAME: MOVE.B (A0)+,D7 CMP.B #'A',D7 ;CHECK IF ANY BLT.S CNOK ;CHARS IN DIS CMP.B #'Z',D7 ;FILENAME ARE BGT.S CNOK ;LOWER CASE ... ADD.B #32,D7 ;IF YES PUT THEM U-CASE CNOK: MOVE.B D7,(A1)+ CMP.B #0,(A0) BNE.S COPYNAME ADD.L #30,A5 ;30 BYTES FOR FNAME ADD.L #1,DIRITEMS MOVE.L INFOBLOCK,A0 ;|8START OF INFO ADD.L #124,A0 ;START OF LENGTH MOVE.L (A0),D0 ;GET FILELEN ASR.L #1,D0 ;CONVERT TO WORDS MOVE.W D0,(A5)+ ;2BYTES FOR LENGTH MOVE.W #0,(A5)+ ;2BYTES FOR INVERSE BRA DIRLOOP NOTST: MOVE.L #DISKNAME,A1 MOVE.W #'NO',(A1)+ MOVE.W #'T ',(A1)+ MOVE.W #'ST',(A1) ERROR: MOVE.L #6,D0 ;LEN OF MESS MOVE.L #DISKNAME,A0 ;START OF MESS MOVE.L #33,D1 ;X MOVE.L #4,D2 ;Y BSR PRINTMESS MOVE.L #0,DIRPOS ;START FROM DIR ITEM 1 BSR SORTDIR |962 BSR SHOWDIR BSR DELAY RTS * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * PRINT ALL THE DIRECTORY SHOWDIR: MOVEQ #13,D5 ;14 ITEMS MOVE.L DIRINFO,A0 MOVE.L DIRPOS,D0 ;GET THE CURRENT MULU #34,D0 ;POS IN THE DIR AND ADD.L D0,A0 ;ADD TO START OF DIRINFO MOVE.L A0,A5 MOVE.L #1,YCOUNTER PRINTDIR: MOVE.L A5,A0 ;POP DOWN THE VAAAL-UE MOVEQ #22,D0 ;LENGTH MOVEQ #2,D1 ;X POS ADD.L #1,YCOUNTER ;ADD IT MOVE.L YCOUNTER,|:fiZD2 ;Y POSITION BSR PRINTMESS ;HIT IT ADD.L #34,A5 ;NEXT DIR ITEM DBF D5,PRINTDIR ;LOOP IT RTS * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * LOCKNAME: DC.B ':' DC.W 0 INSERTNAME: DC.B 'INSERT' DC.W 0 DIRITEMS: DC.L 0 DIRPOS: DC.L 0 PLSTITEMS: DC.L 0 PLSTPOS: DC.L 0 LOCKED: DC.L 0 DISKNAME: DC.L 0,0 DELCOUNTER: DC.L 0 YCOUNTER: DC.L 0 WRITEPROTECT: DC.L 0 INVERT: DC.L 0 PLSTNAME: DC.B 'st-00:PLST' DC.W 0 PLSTTEMPNAME: DC.B 'st-0|;?0:PLST.TEMP' DC.W 0 ST00NAME: DC.B 'st-00:' DC.W 0 ****************************************************************************** * CLEAR ALL * CLEARALL: CMP.L #0,DIRITEMS BEQ.S CAXIT MOVE.L DIRINFO,A0 ADD.L #32,A0 ;FIRST CLEAR POS MOVE.L DIRITEMS,D0 SUB.L #1,D0 ;TO USE WITH DBF CALOOP: CLR.B (A0) ADD.L #34,A0 ;NEXT POS DBF D0,CALOOP BSR SHOWDIR BSR DELAY CAXIT: RTS ***************************************************************************** * MA|<cޢ1RK ALL * MARKALL: CMP.L #0,DIRITEMS BEQ.S MAXIT MOVE.L DIRINFO,A0 ADD.L #32,A0 ;FIRST CLEAR POS MOVE.L DIRITEMS,D0 SUB.L #1,D0 ;TO USE WITH DBF MALOOP: MOVE.B #1,(A0) ADD.L #34,A0 ;NEXT POS DBF D0,MALOOP BSR SHOWDIR MOVE.L SCREEN,A0 ADD.L #(16*40)+2,A0 ;START OF SCREEN MOVE.W #11,D0 ;WIDTH MOVE.W #8*14,D1 ;HEIGHT MOVE.W #18,D2 MOVE.W #18,D3 BSR BLIT3 BSR DELAY MAXIT: RTS *****************************************************************9>SS_SINPTR,A5 ADD.L SS_SINCNT,A5 MOVE.L STORESCROLL,A0 MOVE.L PF1,A1 MOVEQ #80-1,D0 ;80 CHARS SS_WILOOP: MOVEQ #0,D7 MOVE.B (A5)+,D7 MULU #80,D7 MOVE.L A0,A2 MOVE.L A1,A3 ADD.L D7,A3 MOVE.B (A2),(A3) ADD.L #80,A2 ADD.L #80,A3 MOVE.B (A2),(A3) ADD.L #80,A2 ADD.L #80,A3 MOVE.B (A2),(A3) ADD.L #80,A2 ADD.L #80,A3 MOVE.B (A2),(A3) ADD.L #80,A2 ADD.L #80,A3 MOVE.B (A2),(A3) ADD.L #80,A2 ADD.L #80,A3 MOVE.B (A2),(A3) ADD.L #80,A2 v l ADD.L #80,A3 MOVE.B (A2),(A3) ADD.L #80,A2 ADD.L #80,A3 MOVE.B (A2),(A3) ADD.L #80,A2 ADD.L #80,A3 MOVE.B (A2),(A3) ADD.L #80,A2 ADD.L #80,A3 MOVE.B (A2),(A3) ADD.L #80,A2 ADD.L #80,A3 MOVE.B (A2),(A3) ADD.L #80,A2 ADD.L #80,A3 MOVE.B (A2),(A3) ADD.L #80,A2 ADD.L #80,A3 MOVE.B (A2),(A3) ADD.L #80,A2 ADD.L #80,A3 MOVE.B (A2),(A3) ADD.L #1,A0 ADD.L #1,A1 DBF D0,SS_WILOOP RTS * * * * * * * * * * * * * * * * * * * * * * * *q57\C.W $D501,$FF00,$0180,$0003 DC.W $D601,$FF00,$0180,$0002 DC.W $D701,$FF00,$0180,$0001 DC.W $D801,$FF00,$0180,$0000 DC.W $FFFF,$FFFE **************************************************************************** SIN1: DC.B 5,5,5,6,7,8,10,12,13,15,17,19,22,24,26,27,29,31,32,33,34,34,34 DC.B 34,34,33,33,31,30,28,27,25,23,21,18,16,14,12,11,9,8,7,6,5,5 DC.B 5,5,5,6,7,8,10,12,13,15,17,19,22,24,26,27,29,31,32,33,34,34,34 DC.B 34,34,33,33,31,30,28,27,25,23,21,18,16,14,12,11,9,8,7,6,|/٭. COPYTOR: MOVE.B (A4)+,(A2)+ DBF D3,COPYTOR MOVE.L A0,A4 ADD.L #30,A4 ;FIND THE FILELEN MOVE.W (A4),(A2)+ ;LENGTH MOVE.W #$40,(A2)+ ;VOLUME MOVE.W #0,(A2)+ ;REP MOVE.W #1,(A2)+ ;RLEN ADD.L #1,PLSTITEMS ADD.L #1,ACTUALREAD NOTMARKED: ADD.L #34,A0 ;NEXT ADDRESS ADD.L #34,A1 ;NEXT ADDRESS DBF D0,DTRLOOP BSR SHOWDIR BSR SORTPLST MOVE.L ACTUALREAD,D0 MOVE.L D0,D1 MOVE.L D1,D2 DIVU #10,D2 AND.L #$FFFF,D2 ;THERE WOZ A BUG MULU #10,D2 SU|0@^U]B.L D2,D1 ;D1 = 0-9 ADD.B #48,D1 ;START FROM CHAR '0' MOVE.B D1,ACMESS3 MOVE.L D0,D1 DIVU #10,D1 ;MIDDLE DIGIT AND.L #$FFFF,D1 ;THERE WOZ A BUG MOVE.L D1,D2 DIVU #10,D2 AND.L #$FFFF,D2 ;THERE WOZ A BUG MULU #10,D2 SUB.L D2,D1 ;D1 = 0-9 ADD.B #48,D1 ;START FROM CHAR '0' MOVE.B D1,ACMESS2 MOVE.L D0,D1 DIVU #10,D1 ;MIDDLE DIGIT AND.L #$FFFF,D1 ;THERE WOZ A BUG DIVU #10,D1 ;MIDDLE DIGIT AND.L #$FFFF,D1 ;THERE WOZ A BUG MOVE.L D1,D2 |1Z DIVU #10,D2 AND.L #$FFFF,D2 ;THERE WOZ A BUG MULU #10,D2 SUB.L D2,D1 ;D1 = 0-9 ADD.B #48,D1 ;START FROM CHAR '0' MOVE.B D1,ACMESS1 MOVE.L #ACMESS1,A0 ;START OF STRING MOVEQ #22,D0 ;LENGTH MOVEQ #2,D1 ;X POS MOVEQ #25,D2 ;Y POSITION BSR PRINTMESS ;HIT IT MOVE.L #20,D1 ANOTHERW: BSR DELAY DBF D1,ANOTHERW ;ANOTHER WAIT !! BSR PRINTPLST DTRXIT: RTS ACTUALREAD: DC.L 0 ACMESS1: DC.B 0 ACMESS2: DC.B 0 ACMESS3: DC.B 0,' ITEMS ADDED TO RAM' *****|23************************************************************************* ************ * READ DIR * ************ READDIR: MOVE.L DIRINFO,A0 MOVE.L #DIRLEN-1,D0 CLEARDIR: CLR.B (A0)+ DBF D0,CLEARDIR MOVE.L #6,D0 ;LEN OF MESS MOVE.L #INSERTNAME,A0 ;START OF MESS MOVE.L #33,D1 ;X MOVE.L #4,D2 ;Y BSR PRINTMESS MOVE.L #0,DIRITEMS ;RESET DIS COUNTER MOVE.L DOSBASE,A6 MOVE.L #LOCKNAME,D1 MOVE.L #ACCESS_READ,D2 JSR LOCK(A6) MOVE.L D0,LOCKED CMP.L #0,D|3 90 BEQ ERROR MOVE.L LOCKED,D1 MOVE.L INFOBLOCK,D2 JSR INFO(A6) MOVE.L SCREEN,A1 ADD.L #(16*40)+31,A1 MOVE.L INFOBLOCK,A0 ADD.L #11,A0 MOVE.B (A0),D0 AND.B #$02,D0 LSL.B #5,D0 OR.B #$A2,D0 MOVE.B D0,(A1) MOVE.L LOCKED,D1 MOVE.L INFOBLOCK,D2 JSR EXAMINE(A6) MOVE.L INFOBLOCK,A0 ;CHECK IF DIS IS AN ADD.L #8,A0 ADD.L #3,A0 ;FIRST DIGIT CMP.B #'0',(A0) ;ALLOW ONLY BLT NOTST ;ALPHANUMERIC CHARS CMP.B #'z',(A0) ;AS AN ST NAME BGT NOTST|4pI ;I.E. ONLY CMP.B #'a',(A0) ;0-9 AND A-Z BGE.S PERHAPS CMP.B #'Z',(A0) BGT NOTST CMP.B #'A',(A0) BGE.S PERHAPS CMP.B #'9',(A0) BGT NOTST PERHAPS: ADD.L #1,A0 ;SECOND DIGIT CMP.B #'0',(A0) ;ALLOW AS ABOVE BLT NOTST ;I.E. ALPHANUMERIC ONLY CMP.B #'z',(A0) BGT NOTST CMP.B #'a',(A0) BGE.S PERHAPS2 CMP.B #'Z',(A0) BGT NOTST CMP.B #'A',(A0) BGE.S PERHAPS2 CMP.B #'9',(A0) BGT NOTST PERHAPS2: MOVE.L INFOBLOCK,A0 ;CHECK IF DIS IS AN ADD.L #q65,5 DC.B 5,5,5,6,7,8,10,12,13,15,17,19,22,24,26,27,29,31,32,33,34,34,34 DC.B 34,34,33,33,31,30,28,27,25,23,21,18,16,14,12,11,9,8,7,6,5,5 DC.B 5,5,5,6,7,8,10,12,13,15,17,19,22,24,26,27,29,31,32,33,34,34,34 DC.B 34,34,33,33,31,30,28,27,25,23,21,18,16,14,12,11,9,8,7,6,5,5 DC.B 5,5,5,6,7,8,10,12,13,15,17,19,22,24,26,27,29,31,32,33,34,34,34 DC.B 34,34,33,33,31,30,28,27,25,23,21,18,16,14,12,11,9,8,7,6,5,5 DC.B 5,5,5,6,7,8,10,12,13,15,17,19,22,24,26,27,29,31,32,33,34,34,34 DC.B 34,3q74,33,33,31,30,28,27,25,23,21,18,16,14,12,11,9,8,7,6,5,5 DC.B 5,5,5,6,7,8,10,12,13,15,17,19,22,24,26,27,29,31,32,33,34,34,34 DC.B 34,34,33,33,31,30,28,27,25,23,21,18,16,14,12,11,9,8,7,6,5,5 DC.B 5,5,5,6,7,8,10,12,13,15,17,19,22,24,26,27,29,31,32,33,34,34,34 DC.B 34,34,33,33,31,30,28,27,25,23,21,18,16,14,12,11,9,8,7,6,5,5 DC.B 5,5,5,6,7,8,10,12,13,15,17,19,22,24,26,27,29,31,32,33,34,34,34 DC.B 34,34,33,33,31,30,28,27,25,23,21,18,16,14,12,11,9,8,7,6,5,5 DC.B 5,5,5,6,7,8,10,12,13,q87V15,17,19,22,24,26,27,29,31,32,33,34,34,34 DC.B 34,34,33,33,31,30,28,27,25,23,21,18,16,14,12,11,9,8,7,6,5,5 SIN2: DC.B 29,29,29,28,28,28,28,29,29,29,29,29,29,29,28,28,28,28,28,29,29,29,29,29 DC.B 28,26,24,21,18,16,13,11,10,10,10,12,14,17,20,23,25,27,29,29,29,29,29,29 DC.B 29,29,29,28,28,28,28,29,29,29,29,29,29,29,28,28,28,28,28,29,29,29,29,29 DC.B 28,26,24,21,18,16,13,11,10,10,10,12,14,17,20,23,25,27,29,29,29,29,29,29 DC.B 29,29,29,28,28,28,28,29,29,29,29,29,29,29,28,28,28,28,2|5O8,A0 AND.W #$DFDF,(A0) ;ST DISK AT ALL CMP.W #'ST',(A0)+ BNE NOTST ;NAAAH DIS IS NOT AN ST DISK CMP.B #'-',(A0)+ ;WHY ? COZ ST DISKS ARE BNE NOTST ;SINGLE SIDED & I HATE THEM ! CMP.B #'0',(A0)+ ;CHECK FOR ST-00: BNE.S WASST ;IF IT IS AN ST-00: CMP.B #'0',(A0) ;DISK, THEN TREAT IT BEQ NOTST ;AS NOT ST !!! WASST: MOVE.L INFOBLOCK,A0 ADD.L #8,A0 MOVE.L #DISKNAME,A1 MOVE.B (A0)+,D0 ;GET BYTE FROM DISKNAME BSR CONVLOW ;CONVERT TO MOVE.B D0,(A1|+je,),INVERT ;AND STORE MOVE.L #22,D0 ;LEN OF MESS MOVE.L #2,D1 ;X MOVE.L #15,D2 ;Y BSR PRINTMESS BTST #0,INVERT ;DO WE NEED TO INVERT? BEQ.S NOADDPL MOVE.L SCREEN,A0 ADD.L #(120*40)+2,A0 MOVE.W #11,D0 MOVE.W #8,D1 MOVE.W #18,D2 MOVE.W #18,D3 BSR BLIT3 NOADDPL: BSR DELAY RTS ***************************************************************************** * DISK TO RAM * DISKTORAM: CMP.L #0,DIRITEMS BEQ DTRXIT MOVE.L #0,ACTUALREAD ;RESTORE DIS|,\^ COUNTER MOVE.L DIRINFO,A0 ;START OF DIR INFO MOVE.L A0,A1 ADD.L #32,A1 ;WHERE INVERT LIES MOVE.L DIRITEMS,D0 SUB.L #1,D0 MOVE.L PLSTINFO,A2 ;START OF INFO MOVE.L PLSTITEMS,D1 ;#OF PLST ITEMS MULU #30,D1 ;EACH IS 30 BYTES ADD.L D1,A2 ;FINAL START ADDRESS DTRLOOP: BTST #0,(A1) ;WAS IT INVERTED ? BEQ NOTMARKED BCLR #0,(A1) * * THIS PART CHECKS IF A SIMILAR (VERY SIMILAR) ENTRY IS PRESENT IN PLST * A0=START OF CURRENT FILENAME FROM DIRINFO * MOVEM|-6.L D0-D7/A0-A6,-(SP) ;PUSH ON STACK/XMEN MOVE.L A0,A4 ;JUST FOR CLARITY MOVE.L PLSTINFO,A6 ;JUST FOR CLARITY * ADD.L #6,A6 ;DO NOT SKIP THE ST-?? STUFF MOVE.L PLSTITEMS,D5 SUB.L #1,D5 ;COZ WE USE DBF CHECKIFEXIST: MOVE.L A4,A0 MOVE.L A6,A5 ;STORE FOR FUTURE USE MOVE.L #22-1,D4 ;USE DBF CHECKFN: MOVE.B (A0)+,D0 CMP.B (A5)+,D0 ;EQUAL ? BNE.S NOEXIST ;IF NO EXIT DBF D4,CHECKFN ;DO ALL FILENAME BRA.S EXISTED ;HEY MAN ... IT EXITST NOEXIST: ADD.L q..E0,$0000,$00E2,$0000,$00E4,$0000,$00E6,$0000 DC.W $00E8,$0000,$00EA,$0000,$00EC,$0000,$00EE,$0000 DC.W $B801,$FF00,$00E0,$0000,$00E2,$0000,$00E4,$0000,$00E6,$0000 DC.W $00E8,$0000,$00EA,$0000,$00EC,$0000,$00EE,$0000 DC.W $B901,$FF00,$00E0,$0000,$00E2,$0000,$00E4,$0000,$00E6,$0000 DC.W $00E8,$0000,$00EA,$0000,$00EC,$0000,$00EE,$0000 DC.W $BA01,$FF00,$00E0,$0000,$00E2,$0000,$00E4,$0000,$00E6,$0000 DC.W $00E8,$0000,$00EA,$0000,$00EC,$0000,$00EE,$0000 DC.W $BB01,$FF00,$00E0,$0000q/,$00E2,$0000,$00E4,$0000,$00E6,$0000 DC.W $00E8,$0000,$00EA,$0000,$00EC,$0000,$00EE,$0000 DC.W $BC01,$FF00,$00E0,$0000,$00E2,$0000,$00E4,$0000,$00E6,$0000 DC.W $00E8,$0000,$00EA,$0000,$00EC,$0000,$00EE,$0000 DC.W $BD01,$FF00,$00E0,$0000,$00E2,$0000,$00E4,$0000,$00E6,$0000 DC.W $00E8,$0000,$00EA,$0000,$00EC,$0000,$00EE,$0000 DC.W $BE01,$FF00,$00E0,$0000,$00E2,$0000,$00E4,$0000,$00E6,$0000 DC.W $00E8,$0000,$00EA,$0000,$00EC,$0000,$00EE,$0000 DC.W $BF01,$FF00,$00E0,$0000,$00E2,$q00000,$00E4,$0000,$00E6,$0000 DC.W $00E8,$0000,$00EA,$0000,$00EC,$0000,$00EE,$0000 DC.W $C001,$FF00,$00E0,$0000,$00E2,$0000,$00E4,$0000,$00E6,$0000 DC.W $00E8,$0000,$00EA,$0000,$00EC,$0000,$00EE,$0000 DC.W $C101,$FF00,$00E0,$0000,$00E2,$0000,$00E4,$0000,$00E6,$0000 DC.W $00E8,$0000,$00EA,$0000,$00EC,$0000,$00EE,$0000 DC.W $C201,$FF00,$00E0,$0000,$00E2,$0000,$00E4,$0000,$00E6,$0000 DC.W $00E8,$0000,$00EA,$0000,$00EC,$0000,$00EE,$0000 DC.W $C301,$FF00,$00E0,$0000,$00E2,$0000,$0q1^0E4,$0000,$00E6,$0000 DC.W $00E8,$0000,$00EA,$0000,$00EC,$0000,$00EE,$0000 DC.W $C401,$FF00,$00E0,$0000,$00E2,$0000,$00E4,$0000,$00E6,$0000 DC.W $00E8,$0000,$00EA,$0000,$00EC,$0000,$00EE,$0000 DC.W $C501,$FF00,$00E0,$0000,$00E2,$0000,$00E4,$0000,$00E6,$0000 DC.W $00E8,$0000,$00EA,$0000,$00EC,$0000,$00EE,$0000 DC.W $C601,$FF00,$00E0,$0000,$00E2,$0000,$00E4,$0000,$00E6,$0000 DC.W $00E8,$0000,$00EA,$0000,$00EC,$0000,$00EE,$0000 DC.W $C701,$FF00,$00E0,$0000,$00E2,$0000,$00E4,$000q240,$00E6,$0000 DC.W $00E8,$0000,$00EA,$0000,$00EC,$0000,$00EE,$0000 DC.W $C801,$FF00,$00E0,$0000,$00E2,$0000,$00E4,$0000,$00E6,$0000 DC.W $00E8,$0000,$00EA,$0000,$00EC,$0000,$00EE,$0000 DC.W $C901,$FF00,$00E0,$0000,$00E2,$0000,$00E4,$0000,$00E6,$0000 DC.W $00E8,$0000,$00EA,$0000,$00EC,$0000,$00EE,$0000 DC.W $CA01,$FF00,$00E0,$0000,$00E2,$0000,$00E4,$0000,$00E6,$0000 DC.W $00E8,$0000,$00EA,$0000,$00EC,$0000,$00EE,$0000 DC.W $CB01,$FF00,$00E0,$0000,$00E2,$0000,$00E4,$0000,$00E6,|./0#30,A6 ;NEXT PLST POS DBF D5,CHECKIFEXIST ;REPEAT FOR ALL FILENAMES MOVEM.L (SP)+,D0-D7/A0-A6 ;POP FROM STACK/XMEN BRA.S MARKED ;WE FOUND ONE WHICH IS SIMILAR ;SO DONT PUT IT AGAIN IN PLST EXISTED: MOVEM.L (SP)+,D0-D7/A0-A6 ;POP FROM STACK/XMEN BRA.S NOTMARKED MARKED: MOVE.L #DISKNAME,A3 MOVE.W (A3)+,(A2)+ ;COPY DISKNAME(STNAME) MOVE.W (A3)+,(A2)+ ;TO THE PART OF MOVE.W (A3)+,(A2)+ ;PLST WE ARE MAKING MOVEQ #15,D3 ;22 CHARS = FILELEN MOVE.L A0,A4q37$0000 DC.W $00E8,$0000,$00EA,$0000,$00EC,$0000,$00EE,$0000 DC.W $CC01,$FF00,$00E0,$0000,$00E2,$0000,$00E4,$0000,$00E6,$0000 DC.W $00E8,$0000,$00EA,$0000,$00EC,$0000,$00EE,$0000 WAVESTART: DC.W $CD01,$FF00,$00E0,$0000,$00E2,$0000,$00E4,$0000,$00E6,$0000 DC.W $00E8,$0000,$00EA,$0000,$00EC,$0000,$00EE,$0000 DC.W $CE01,$FF00,$00E0,$0000,$00E2,$0000,$00E4,$0000,$00E6,$0000 DC.W $00E8,$0000,$00EA,$0000,$00EC,$0000,$00EE,$0000 DC.W $CF01,$FF00,$00E0,$0000,$00E2,$0000,$00E4,$0000,$q4q00E6,$0000 DC.W $00E8,$0000,$00EA,$0000,$00EC,$0000,$00EE,$0000 DC.W $D001,$FF00,$00E0,$0000,$00E2,$0000,$00E4,$0000,$00E6,$0000 DC.W $00E8,$0000,$00EA,$0000,$00EC,$0000,$00EE,$0000 DC.W $D101,$FF00,$00E0,$0000,$00E2,$0000,$00E4,$0000,$00E6,$0000 DC.W $00E8,$0000,$00EA,$0000,$00EC,$0000,$00EE,$0000 DC.W $D201,$FF00,$00E0,$0000,$00E2,$0000,$00E4,$0000,$00E6,$0000 DC.W $00E8,$0000,$00EA,$0000,$00EC,$0000,$00EE,$0000 DC.W $D301,$FF00,$0180,$0005 DC.W $D401,$FF00,$0180,$0004 D|!XG******************************************* * MAIN RUTINES OF THE MEGA PRESET LIST EDITOR BY 101 - THE MALTESE HACKERS * ***************************************************************************** MAINPROG: MOVE.B $BFE001,D0 AND.B #$80,D0 BEQ MAINXIT BTST #10,$DFF016 ;RIGHT MOUSE BUTTON? BEQ.S RIGHTIT ;IF YES JUMP !! MOVE.B $BFE001,D0 ANDI.B #$40,D0 BNE.S MAINPROG MOVE.L #50000,DELCOUNTER BRA.S WHODUNNIT RIGHTIT: MOVE.L #1000,DELCOUNTER WHODUNNIT: BSR GET|"{GCORDS MOVEQ #0,D2 MOVE.L #AREAS,A0 MAINLOOP: ADD.L #1,D2 MOVE.W (A0)+,D3 MOVE.W (A0)+,D4 MOVE.W (A0)+,D5 MOVE.W (A0)+,D6 MOVE.W D3,D7 OR.W D4,D7 OR.W D5,D7 OR.W D6,D7 CMP.W #0,D7 BEQ.S MAINXIT CMP.W D0,D3 ;LEFTX BGT.S MAINLOOP CMP.W D0,D5 ;RIGHTX BLT.S MAINLOOP CMP.W D1,D4 ;TOPY BGT.S MAINLOOP CMP.W D1,D6 ;BOTTOMY BLT.S MAINLOOP MULU #4,D2 ;CONVERT TO LONGWORD MOVE.L #VECTORTABLE,A0 ;START OF TABLE ADD.L D2,A0 ;FINAL ADDRESS M|#OVE.L (A0),D0 ;GET VECTOR MOVEM.L D0,-(SP) ;PUT THE REQUIRED ADDRESS ON STACK AND RTS ;RETURN. I.E. -> JUMP TO VECTOR !! MAINXIT: RTS * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * CNOP 0,4 ;ANOTHER PAD VECTORTABLE: DC.L 0 ;PAD DC.L MARKIT DC.L DIRUP DC.L DIRDOWN DC.L DISKTORAM DC.L READDIR DC.L CLEARALL DC.L MARKALL DC.L READPLST DC.L SAVEPLST DC.L CLEARPLST DC.L MERGEPLST DC.L PLSTUP DC.L PLSTDOWN DC.L KILL |$\7 DC.L REPUP DC.L RLENUP DC.L REPDOWN DC.L RLENDOWN DC.L HELP DC.L IFF2RAW DC.L PLAY DC.L QUIT ***************************************************************************** AREAS: DC.W 16,16,191,127 ;THE GREAT WINDOW DC.W 204,10,226,33 ;ARROW UP DC.W 204,35,226,58 ;ARROW DOWN DC.W 232,10,254,58 ;DISK TO RAM DC.W 204,60,312,83 ;RIGHT GADGET 1 DC.W 204,85,312,108 ;RIGHT GADGET 2 DC.W 204,110,312,133 ;RIGHT GADGET 3 DC.W 10,137,157,160 ;TOPLEFT G|%7ADGET DC.W 164,137,312,160 ;TOPRIGHT GADGET DC.W 10,162,157,185 ;DOWNLEFT GADGET DC.W 164,162,312,185 ;DOWNRIGHT GADGET DC.W 196,190,214,203 ;ARROW UP DC.W 196,205,214,218 ;ARROW DOWN DC.W 216,190,234,218 ;KILL DC.W 237,190,255,203 ;UP DC.W 257,190,275,203 ;DOWN DC.W 237,205,255,218 ;UP2 DC.W 257,205,275,218 ;DOWN2 DC.W 10,221,101,247 ;IFF2RAW DC.W 103,221,194,247 ;PLST2RAM DC.W 196,221,255,247 ;PLAY DC.W 257,221,312,247 ;QUIT !! DC.W 0,|&0,0,0 ;THAT'S IT ***************************************************************************** * MARK/UNMARK * MARKIT: CMP.L #0,DIRITEMS BEQ.S MARKXIT MOVE.L YCORD,D0 ;GET Y POS OF POINTER SUB.L #16,D0 DIVU #8,D0 ;CHAR Y COORD MOVE.L D0,D1 MOVE.L DIRINFO,A0 ;START OF MESS MOVE.L DIRPOS,D1 ;CURRENT DIRPOS ADD.L D0,D1 ;ADD OFFSET MULU #34,D1 ;EACH ITEM = 34 BYTES ADD.L D1,A0 ;FINAL INFO POS ADD.L #32,A0 ;POSITION OF INVERT EOR.B #1,(A0) ;I|' ['NVERT IT !!! MULU #(40*8),D0 ;CONVERT TO BYTE MOVE.L SCREEN,A0 ADD.L #(16*40)+2,A0 ;START OF SCREEN ADD.L D0,A0 ;ACTUAL START OF INVERTED MOVE.W #11,D0 MOVE.W #8,D1 MOVE.W #18,D2 MOVE.W #18,D3 BSR BLIT3 BSR DELAY MARKXIT: RTS ***************************************************************************** * DIR UP * DIRUP: BSR SMOOTH CMP.L #0,DIRITEMS BEQ NOSUBPL CMP.L #0,DIRPOS ;IS DIS 0 ? BEQ NOSUBPL ;IF YES THEN DONT SUB.L #1,DIRPOS ;DEC|(;c=REMENT IT ANY MORE !! MOVE.L SCREEN,A0 ADD.L #(119*40)+23,A0 MOVE.L A0,A1 ADD.L #(8*40),A1 MOVE.W #11,D0 MOVE.W #106,D1 MOVE.W #18,D2 MOVE.W #18,D3 BSR BLIT2 MOVE.L DIRINFO,A0 ;START OF MESS MOVE.L DIRPOS,D0 ;CURRENT DIRPOS MULU #34,D0 ;EACH ITEM = 34 BYTES ADD.L D0,A0 ;FINAL INFO POS MOVE.L A0,A1 ;CHECK FOR INVERT ADD.L #32,A1 ;IN DIS LOC MOVE.B (A1),INVERT ;AND STORE MOVE.L #22,D0 ;LEN OF MESS MOVE.L #2,D1 ;X MOVE.L #2,D2 ;q-BFF00,$00E0,$0000,$00E2,$0000,$00E4,$0000,$00E6,$0000 DC.W $00E8,$0000,$00EA,$0000,$00EC,$0000,$00EE,$0000 DC.W $B401,$FF00,$00E0,$0000,$00E2,$0000,$00E4,$0000,$00E6,$0000 DC.W $00E8,$0000,$00EA,$0000,$00EC,$0000,$00EE,$0000 DC.W $B501,$FF00,$00E0,$0000,$00E2,$0000,$00E4,$0000,$00E6,$0000 DC.W $00E8,$0000,$00EA,$0000,$00EC,$0000,$00EE,$0000 DC.W $B601,$FF00,$00E0,$0000,$00E2,$0000,$00E4,$0000,$00E6,$0000 DC.W $00E8,$0000,$00EA,$0000,$00EC,$0000,$00EE,$0000 DC.W $B701,$FF00,$00|)ehY BSR PRINTMESS BTST #0,INVERT ;DO WE NEED TO INVERT? BEQ.S NOSUBPL MOVE.L SCREEN,A0 ADD.L #(16*40)+2,A0 MOVE.W #11,D0 MOVE.W #8,D1 MOVE.W #18,D2 MOVE.W #18,D3 BSR BLIT3 NOSUBPL: BSR DELAY RTS ***************************************************************************** * DIR DOWN * DIRDOWN: BSR SMOOTH CMP.L #0,DIRITEMS BEQ NOADDPL MOVE.L DIRITEMS,D0 ;ARE TOO MUCH ITEMS SUB.L #14,D0 ;COZ THERE ARE 14 ON-SCREEN MOVE.L DIRPOS,D1 CMP.L D0,D1|* ;SCROLLED DOWN ? IF YES BGE NOADDPL ;DONT ADD ANY MORE !! ADD.L #1,DIRPOS MOVE.L SCREEN,A0 ADD.L #(16*40)+2,A0 MOVE.L A0,A1 ADD.L #(8*40),A0 MOVE.W #11,D0 MOVE.W #106,D1 MOVE.W #18,D2 MOVE.W #18,D3 BSR BLIT MOVE.L DIRINFO,A0 ;START OF MESS MOVE.L DIRPOS,D0 ;CURRENT DIRPOS ADD.L #13,D0 ;+ 13 DOWNWARDS MULU #34,D0 ;EACH ITEM = 34 BYTES ADD.L D0,A0 ;FINAL INFO POS MOVE.L A0,A1 ;CHECK FOR INVERT ADD.L #32,A1 ;IN DIS LOC MOVE.B (A1|Pq MOVE.L #PLSTLEN,D0 MOVE.L MERGEINFO,A1 JSR FREEMEM(A6) MOVE.L EXECBASE,A6 MOVE.L #400,D0 MOVE.L INFOBLOCK,A1 JSR FREEMEM(A6) MOVE.L EXECBASE,A6 MOVE.L #65*1024,D0 MOVE.L INSTRUMENT,A1 JSR FREEMEM(A6) MOVE.L EXECBASE,A6 MOVE.L #1024,D0 MOVE.L NEWCOP,A1 JSR FREEMEM(A6) RTS ***************************************************************************** ********************************** * DEINITIALISE MY OWN COPPERLIZT * *****************************|&***** DEINITCOPPER: LEA CUSTOM,A5 MOVE.L GRABASE,A6 ADD.L #$32,A6 ;offset to copper pointer MOVE.W #$80,DMACON(A5) ;disable copper MOVE.L OLDCOPPER,(A6) MOVE.W #$8080,DMACON(A5) ;enable copper RTS ***************************************************************************** ***************************** * CLOZE MY INTUITION WINDOW * ***************************** RESTOREWINDOW: MOVE.L INTBASE,A6 MOVE.L WINDOWPTR,A0 JSR CLOSEWINDOW(A6) RTS ********************|m9********************************************************* ***************************************************************************** * ALL SUBS WHICH ARE USED ONE OR MORE TIMES ARE SITUATED HERE MAN !!! * * I TRIED TO MAKE THESE AS SIMPLE TO INTERFACE WITH AS POSSIBLE * ***************************************************************************** ****************************************** * BLITTER DATA COPYING ROUTINE * * ON ENTRY A0 = SOURCE ADDRE|ӣSS * * A1 = DESTINATION ADDRESS * * D0 = WIDTH (WORDS) * * D1 = HEIGHT * * D2 = MODULO FOR SOURCE * * D3 = MODULO FOR DESTINATION * ****************************************** BLIT: MOVEM.L D0-D2/A5,-(SP) ;PUSH ON STACK LEA CUSTOM,A5 MOVE.L #-1,BLTAFWM(A5) ;JUST IN CASE MOVE.L A0,BLTAPTH(A5) ;SOURCE ADDRESS MOVE.L A1,BLTDPTH(A5) ;DEST ADDRESS MOVE.W D2,BLTAMOD(A5) ;SOURC|HE MODULO MOVE.W D3,BLTDMOD(A5) ;DEST MODULO=0 MOVE.W #0,BLTCON1(A5) ;BLTCON1=0 MOVE.W #$09F0,BLTCON0(A5) ;BLTCON0 LSL.W #6,D1 AND.W #$FFC0,D1 AND.W #$3F,D0 OR.W D1,D0 MOVE.W D0,BLTSIZE(A5) ;BLIT SIZE MOVEM.L (SP)+,D0-D2/A5 ;POP FROM X-MEN WAITBLIT: BTST #$E,$DFF002 ;BLITTER ACTIVE? BNE.S WAITBLIT ;IF YES WAIT FOR IT RTS ****************************************************************************** ****************************************** * BLITTER |\ DATA COPYING ROUTINE * * SAME AS ABOVE BUT DECREMENT NOT INCREM * ****************************************** BLIT2: MOVEM.L D0-D2/A5,-(SP) ;PUSH ON STACK LEA CUSTOM,A5 MOVE.L #-1,BLTAFWM(A5) ;JUST IN CASE MOVE.L A0,BLTAPTH(A5) ;SOURCE ADDRESS MOVE.L A1,BLTDPTH(A5) ;DEST ADDRESS MOVE.W D2,BLTAMOD(A5) ;SOURCE MODULO MOVE.W D3,BLTDMOD(A5) ;DEST MODULO=0 MOVE.W #2,BLTCON1(A5) ;BLTCON1=2 = DESC MOVE.W #$09F0,BLTCON0(A5) ;BLTCON0 LSL.W #6,D1 AND.|`aW #$FFC0,D1 AND.W #$3F,D0 OR.W D1,D0 MOVE.W D0,BLTSIZE(A5) ;BLIT SIZE MOVEM.L (SP)+,D0-D2/A5 ;POP FROM X-MEN BRA WAITBLIT RTS ***************************************************************************** ****************************************** * BLITTER DATA COPYING ROUTINE * * SAME AS ABOVE BUT D= NOT A (INVERT) * ****************************************** BLIT3: MOVEM.L D0-D2/A5,-(SP) ;PUSH ON STACK LEA CUSTOM,A5 MOVE.L #-1,BLTAFWM(A5) ;J|UST IN CASE MOVE.L A0,BLTAPTH(A5) ;SOURCE ADDRESS MOVE.L A0,BLTDPTH(A5) ;DEST ADDRESS MOVE.W D2,BLTAMOD(A5) ;SOURCE MODULO MOVE.W D3,BLTDMOD(A5) ;DEST MODULO=0 MOVE.W #0,BLTCON1(A5) ;BLTCON1=0 MOVE.W #$090F,BLTCON0(A5) ;BLTCON0 LSL.W #6,D1 AND.W #$FFC0,D1 AND.W #$3F,D0 OR.W D1,D0 MOVE.W D0,BLTSIZE(A5) ;BLIT SIZE MOVEM.L (SP)+,D0-D2/A5 ;POP FROM X-MEN BRA WAITBLIT RTS *****************************************************************************|O* ****************************************** * LOAD A FILE TO MEMORY * * * * ON ENTRY * * A0 = START ADDRESS WHERE TO PUT DATA * * A1 = ADDRESS WHERE FILENAME IS LOCATED * * D0 = LENGTH OF DATA * ****************************************** LOAD: MOVE.L A0,A3 MOVE.L D0,D4 MOVE.L A1,A4 MOVE.L DOSBASE,A6 ;STORE DOS LIBRARY ADDRESS IN A6 MOVE.L A4,D1 ;FILENAME ADDR|ʧ}ESS IN D1 MOVE.L #$3ED,D2 ;OPEN MODE IN D2 JSR OPEN(A6) ;CALL FILE OPEN LIBRARY TST.L D0 BEQ.S LOADERR MOVE.L D0,BUFFER ;STORE FILE HANDLER MOVE.L BUFFER,D1 MOVE.L A3,D2 ;BUFFER START ADDRESS FOR READ IS MOVE.L D4,D3 ;STORE LENGHT IN D3 FOR READ JSR READ(A6) ;CALL LIBRARY READ MOVE.L D0,-(SP) MOVE.L BUFFER,D1 JSR CLOSE(A6) ;CALL CLOSE FILE MOVE.L (SP)+,D0 LOADERR: RTS BUFFER: DC.L 0 ********************************************************************| 73'********* ****************************** * GET MOUSEX/MOUSEY IN D0/D1 * ****************************** GETCORDS: MOVE.L WINDOWPTR,A0 ADD.L #12,A0 MOVEQ #0,D0 MOVEQ #0,D1 MOVE.W (A0)+,D1 MOVE.W (A0)+,D0 SUB.W #5,D1 ;YOFFSET ADD.W #2,D0 ;XOFFSET LSR.W #1,D0 ;COZ IT WAS 0-640 !! MOVE.L D0,XCORD MOVE.L D1,YCORD RTS XCORD: DC.L 0 YCORD: DC.L 0 ***************************************************************************** **********************************4^VE.W #$8080,DMACON ;enable copper RTS **************************************************************************** * A C T U A L D E M O C O D E * **************************************************************************** LOADLOGO: MOVE.L LOGO,A0 MOVE.L #LOGONAME,A1 MOVE.L #80*256*2,D0 BSR LOAD RTS LOGONAME: DC.B 'PHAZE.LOGO' DC.W 0 **************************************************************************** LOADFONTS: V%MOVE.L FONTS,A0 MOVE.L #FONTNAME,A1 MOVE.L #80*15*3,D0 BSR LOAD RTS FONTNAME: DC.B 'PHAZE.FONT' DC.W 0 **************************************************************************** SS_SINSCROLL: LEA $DFF000,A5 SUB.B #4,SS_SCROLLVAL CMP.B #0,SS_SCROLLVAL BGE.S SS_OK BSR.S SS_NEWCHAR SS_OK: MOVEQ #0,D0 MOVE.B SS_SCROLLVAL,D0 LSL.W #8,D0 ;SHIFT TO HIGH LSL.W #4,D0 ;4 BITS OR.W #$9F0,D0 ;USED & MINTERM MOVE.W D0,$040(A5) ;BLTCON0 * CLR.W $042(A5) ;BONDLTCON1 MOVE.L #$60000,$064(A5) ;BLTAMOD/BLTDMOD MOVE.L TEMPSTORE,A0 ADD.L #2,A0 MOVE.L A0,$050(A5) ;BLTAPTH MOVE.L STORESCROLL,$054(A5) ;BLTDPTH MOVE.W #$3E8,$058(A5) ;40 WORDS x 15 RASTLINES BSR SS_WAITBLIT RTS * THIS PART IS USED TO SCROLL BY 1 WORD TEMPSTORE AND GET A NEW FONT CHAR SS_NEWCHAR: ADD.B #$10,SS_SCROLLVAL ;ADD 16 MOVE.W #$09F0,$040(A5) ;BLTCON0 CLR.W $042(A5) ;BLTCON1 MOVE.L #$20002,$064(A5) ;BLTAMOD/BLTDMOD MOVE.L TEMPSTORE,A0 MOVE.L Ała0,$054(A5) ;BLTDPTH ADD.L #2,A0 MOVE.L A0,$050(A5) ;BLTAPTH MOVE.W #$3EA,$058(A5) ;42 WORDS x 15 RASTLINES BSR SS_WAITBLIT EOR.B #1,SS_DOCHAR ;IS IT TIME FOR CHAR ? BNE SS_NCXIT ;IF NO GET OUT .. YOU BASTARD MOVEQ #0,D0 MOVE.L SS_MESSPTR,A0 ;GET CURRENT MESS POINTER MOVE.B (A0)+,D0 ;END OF TEXT ? BNE.S SS_NOTZ ;IF NO JUMP MOVE.L #SS_MESSAGE,A0 ;RESET MESS POINTER MOVE.B (A0)+,D0 ;GET NEW CHAR SS_NOTZ: MOVE.L A0,SS_MESSPTR ;STORE AGAIN CMP.B #32Lץ,D0 ;IF IT IS A SPACE CHAR THEN SET BNE.S SS_NOTSPACE ;IT TO ANOTHER PLACE IN FONTS MOVE.B #94,D0 ;SO THAT THERE WILL BE A SPACE SS_NOTSPACE: SUB.B #65,D0 ;'A' IS FIRST CHAR IN FONTS ! MOVE.L FONTS,A0 ;START OF FONTS MOVEQ #0,D2 CMP.B #10,D0 ;ALL DIS PIECE OF CODE BLT.S SS_GOTIT ;DOES IS TO FIND THE X AND SUB.B #10,D0 ;Y OFFSET OF CURRENT SELECTED ADD.L #15*40,D2 ;CHAR TO ADD IT TO THE CMP.B #10,D0 ;ALL DIS PIECE OF CODE BLT.S SS_GOTIT ;DOES IS Tj O FIND THE X AND SUB.B #10,D0 ;Y OFFSET OF CURRENT SELECTED ADD.L #15*40,D2 ;CHAR TO ADD IT TO THE SS_GOTIT: ASL.W #2,D0 ;CONVERT TO HOR CHARS ADD.L D0,D2 ;ADD .... WOT ELSE ??? ADD.L D2,A0 ;ACTUAL FONT POSITION MOVE.L A0,$050(A5) ;BLTAPTH MOVE.W #$09F0,$040(A5) ;BLTCON0 CLR.W $042(A5) ;BLTCON1 MOVE.W #$0024,$064(A5) MOVE.W #$0052,$066(A5) ;BLTAMOD/BLTDMOD MOVE.L TEMPSTORE,A0 ADD.L #82,A0 MOVE.L A0,$054(A5) ;BLTDPTH MOVE.W #$3C2,$058(A5) ;2 W ORDS x 15 RASTLINES BSR SS_WAITBLIT SS_NCXIT: RTS * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * NOTE: THIS PART SHOULD BE CALLED AFTER WAITING FOR BEAM * FIRST CLEAN THE PART WHERE SCROLLTEXT IS SS_SINSCROLL2: MOVE.L PF1,$054(A5) ;BLTDPTH CLR.W $066(A5) ;BLTDMOD MOVE.W #$0100,$040(A5) ;BLTCON0 MOVE.W #$093F,$058(A5) ;40 WORDS x ?? RASTLINES BSR SS_WAITBLIT * NOW JUST COPY FROM STORESCROLL TO THE SCREEN IN SINUS FORM !! MOVE.L |+{qS' RIGHT MOUSEBUTTON MOVE.L INTBASE,A6 LEA NEWWINDOW,A0 JSR OPENWINDOW(A6) MOVE.L D0,WINDOWPTR MOVE.L INTBASE,A6 MOVE.L WINDOWPTR,A0 ;WINDOW STRUCT LEA NEWPOINTER,A1 ;NEW POINTER MOVE.L #$10,D0 ;HEIGHT MOVE.L #$10,D1 ;WIDTH MOVE.L #-7,D2 ;XOFFSET MOVE.L #-7,D3 ;YOFFSET JSR SETPOINTER(A6) ;DIS IZ A NEW NEW POINTER RTS * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * NEWWINDOW: DC.W 0,0 ;LEFT/TOP EDGES DC.W 640,256 ;WI|(MDTH/HEIGHT DC.B 0,1 ;DETAIL/BLOCK PENS DC.L NULL ;IDCMP FLAGS DC.L $1000 ;FLAGS WAZ $1000 DC.L NULL ;FIRST GADGET DC.L NULL ;CHECKMARK DC.L WINDOWTITLE ;WINDOW TITLE SCREENPTR: DC.L NULL ;POINTER TO SCREEN DC.L NULL ;BITMAP DC.W 640,256 ;MIN WIDTH/HEIGHT DC.W 640,256 ;MAX WIDTH/HEIGHT DC.W $F ;CUSTOMSCREEN WINDOWPTR: DC.L 0 WINDOWTITLE: DC.B 'DELUXE PRESED V2.0 BY CRAIN OF PHAZE 101 ' DC.W 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *|׹ܾ * * * * * * * * * * OH PLEASE - PLEASE ? DO NOT CHANGE DIS POINTER .... NEWPOINTER: DC.W $0000,$0000 DC.W $0080,$0080 DC.W $0140,$01C0 DC.W $0220,$03E0 DC.W $0490,$0770 DC.W $0948,$0EB8 DC.W $1224,$1DDC DC.W $22A2,$3D5E DC.W $2B6A,$3496 DC.W $2A2A,$35D6 DC.W $288A,$37F6 DC.W $294A,$3776 DC.W $2222,$3E3E DC.W $2412,$3C1E DC.W $280A,$380E DC.W $3006,$3006 DC.W $0000,$0000 DC.W $0000,$0000 ***********************************************************|g****************** ***************************** * FREE THE ALLOCATED MEMORY * ***************************** RESTOREMEM: MOVE.L EXECBASE,A6 ;STILL 4 MOVE.L #(40*256*2)+8,D0 ;4 PLANE PAL HIRES + COLS MOVE.L SCREEN,A1 ;START OF SCREEN JSR FREEMEM(A6) ;GOODBYE TO CHIPMEM MOVE.L EXECBASE,A6 ;STILL 4 EH? MOVE.L #DIRLEN,D0 ;DIR INFO MOVE.L DIRINFO,A1 JSR FREEMEM(A6) MOVE.L EXECBASE,A6 MOVE.L #PLSTLEN,D0 MOVE.L PLSTINFO,A1 JSR FREEMEM(A6) MOVE.L EXECBASE,A6ļ ???8<88<888x w~[cp>p8p8p8p8>p`ceSLIB: DC.B 'dos.library' DC.W 0 EXECLIB: DC.B 'exec.library' DC.W 0 GRALIB: DC.B 'graphics.library' DC.W 0 DOSBASE: DC.L 0 EXECBASE: DC.L 0 GRABASE: DC.L 0 **************************************************************************** *************************************** * * * ALLOCATE MEMORY BLOCKS AND LINK 'EM * * * *************************************** INITMEM: MOVE.L EXECBASE,A6 MOVE.L #80*10 m2*2,D0 MOVE.L #$10001,D1 ;CHIP + CLEAR JSR ALLOCMEM(A6) MOVE.L D0,PF1 ADD.L #80*68,D0 MOVE.L D0,PF1B MOVE.L #80*102*2,D0 MOVE.L #$10001,D1 ;CHIP + CLEAR JSR ALLOCMEM(A6) MOVE.L D0,PF2 MOVE.L #80*15*3,D0 MOVE.L #$10001,D1 ;CHIP + CLEAR JSR ALLOCMEM(A6) MOVE.L D0,FONTS MOVE.L #86*15,D0 MOVE.L #$10001,D1 ;CHIP + CLEAR JSR ALLOCMEM(A6) MOVE.L D0,TEMPSTORE MOVE.L #80*15,D0 MOVE.L #$10001,D1 ;CHIP + CLEAR JSR ALLOCMEM(A6) MOVE.L D0,STORESCROLL ȥ.= MOVE.L #80*256*2,D0 MOVE.L #$10001,D1 ;CHIP + CLEAR JSR ALLOCMEM(A6) MOVE.L D0,LOGO MOVE.L PF1,D0 MOVE.W D0,PL0L SWAP D0 MOVE.W D0,PL0H SWAP D0 ADD.L #80*100,D0 MOVE.W D0,PL2L SWAP D0 MOVE.W D0,PL2H MOVE.L PF2,D0 MOVE.W D0,PL1L SWAP D0 MOVE.W D0,PL1H SWAP D0 ADD.L #80*100,D0 MOVE.W D0,PL3L SWAP D0 MOVE.W D0,PL3H MOVE.L PF1,D0 ADD.L #80*99,D0 MOVE.L D0,D1 ADD.L #80*100,D1 MOVE.L PF2,D2 ADD.L #80*99,D2 MOVE.L D2,D3 ADD.Lɹo #80*100,D3 LEA SEATAB,A0 MOVE.L #4-1,D4 ;LOOP 4 TIMES SEALOOP0: MOVE.W D0,$0A(A0) SWAP D0 MOVE.W D0,$06(A0) SWAP D0 MOVE.W D1,$1A(A0) SWAP D1 MOVE.W D1,$16(A0) SWAP D1 MOVE.W D2,$12(A0) SWAP D2 MOVE.W D2,$0E(A0) SWAP D2 MOVE.W D3,$22(A0) SWAP D3 MOVE.W D3,$1E(A0) SWAP D3 ADD.L #36,A0 DBF D4,SEALOOP0 MOVE.L #50-1,D4 ;LOOP 100 TIMES SEALOOP1: MOVE.W D0,$0A(A0) SWAP D0 MOVE.W D0,$06(A0) SWAP D0 MOVE.W D1,$1A(A0) SWAP D1 MOVE. adcW D1,$16(A0) SWAP D1 MOVE.W D2,$12(A0) SWAP D2 MOVE.W D2,$0E(A0) SWAP D2 MOVE.W D3,$22(A0) SWAP D3 MOVE.W D3,$1E(A0) SWAP D3 SUB.L #80*2,D0 SUB.L #80*2,D1 SUB.L #80*2,D2 SUB.L #80*2,D3 ADD.L #36,A0 DBF D4,SEALOOP1 ADD.L #80*2,D0 ADD.L #80*2,D1 ADD.L #80*2,D2 ADD.L #80*2,D3 MOVE.L #4-1,D4 ;LOOP 4 TIMES SEALOOP2: MOVE.W D0,$0A(A0) SWAP D0 MOVE.W D0,$06(A0) SWAP D0 MOVE.W D1,$1A(A0) SWAP D1 MOVE.W D1,$16(A0) SWAP D1 MOVE.W  ˓D2,$12(A0) SWAP D2 MOVE.W D2,$0E(A0) SWAP D2 MOVE.W D3,$22(A0) SWAP D3 MOVE.W D3,$1E(A0) SWAP D3 ADD.L #36,A0 DBF D4,SEALOOP2 RTS PF1: DC.L 0 PF2: DC.L 0 FONTS: DC.L 0 TEMPSTORE: DC.L 0 STORESCROLL: DC.L 0 LOGO: DC.L 0 PF1B: DC.L 0 **************************************************************************** ************************************* * * * INITIALISE MY VERY OWN COPPERLIZT * *  Y] * ************************************* INITCOPPER: MOVE.L GRABASE,A6 ADD.L #$32,A6 ;offset to copper pointer MOVE.W #$80,DMACON ;disable copper MOVE.L (A6),OLDCOPPER ;store old pointer MOVE.L #NEWCOPPER,(A6) MOVE.W #$81A0,DMACON ;enable COPPER/SPRITE/BPLANE DMA RTS OLDCOPPER: DC.L 0 **************************************************************************** * R E S T O R A T I O N * ****************************** ̓eh********************************************** **************************** * * * DEALLOCATE MEMORY BLOCKS * * * **************************** RESTOREMEM: MOVE.L EXECBASE,A6 MOVE.L #80*100*2,D0 MOVE.L PF1,A1 JSR FREEMEM(A6) MOVE.L #80*100*2,D0 MOVE.L PF2,A1 JSR FREEMEM(A6) MOVE.L #80*15*3,D0 MOVE.L FONTS,A1 JSR FREEMEM(A6) MOVE.L #86*15,D0 MOVE.L TEMPSTORE,A1 JSR FREEMEM(A6) MOVE.L #80*15,D0 MOVE.L ST  ȮORESCROLL,A1 JSR FREEMEM(A6) MOVE.L #80*256*2,D0 MOVE.L LOGO,A1 JSR FREEMEM(A6) RTS **************************************************************************** ***************************** * * * RESTORE TO OLD COPPERLIZT * * * ***************************** RESTORECOPPER: MOVE.L GRABASE,A6 ADD.L #$32,A6 ;offset to copper pointer MOVE.W #$80,DMACON ;disable copper MOVE.L OLDCOPPER,(A6) ;restore old pointer MO<SI if ya switch the computer off. ROM: Read only memory. Here, in the Amiga, the Kickstart is stored. You can only read, and not write dates. PROM: Programmable ~these are spe- cial ROMs, but rare, because ya can only write on them one time. EPROM:Erasable ~ The same like PROM but you can erase them. WOM: This is a special Amiga-chip : Write Once Memory. Here the Kick - start (A1000) is loaded in and af - ter that, you ca not write anything in it. Bitween RAMs and ROMs, there are H<Jardware Registers. I will explain them later. Back to RAM:The standard to express the Memory is KByte. One Kbyte are 1024 Byte. To work with 1 Kbyte, a prozessor needs 10 Adresswires with either 5V or 0V. So, you have 2^10 =1024 different Combinationes, and so 1024 different Bytes. One Byte contains 8 Bits so you can store in 1 Byte 2^8=256 different numbers bitween 0 and 255. Bit is the short-form of Binary coded Di - git. look next page to go on...he dates are lost>ѭ mation about the sign. So, ya can show in one byte numbers from -128 to +127 and in one word from -32768 to +32767. In addition to this, you must subtract the ab - solute worth of the number from $100 (Byte) or $10000 (word).As re- sult, you have the showing of -1 by $FF (or $FFFF), of -2 by $FE (or $F FFE), etc. . Look at the Decimal system: Here ya have the base 10, so you can follow that 246=2*10^2+4*10^1+6*10^0. Here you can only use singns from 0 to 9 In the Binary system>t, you can only use two signs:0 and 1. So, the base is 2. We follow: 1010=1*2^3+0*2^2+1 *2^1+0*2^0=2^3+2^1 = 10. Binary-numbers are shown by %-sign: %110101. The most important system is the Hexadecimal-system.Here is the base 16. The signs 0 to F are used. So , we follow, that 10 is decimal $A. $ is the sign for decimal. One Byte goes from $00 to $FF and 1 word from $0000 to $FFFF, one long- word from $00000000 to $FFFFFFFF. look next page to go on ...give Bit 15 the Infor,s are used with adresses from $DFF000. They`re called Hard - ware register. To make the program- ming easier, there are librarys on Kickstart and Workbench with ser - vice-prgs. . Some adresses: $000000-$07FFFF: 512KByte RAM $080000-$1FFFFF: reserved $200000-$9FFFFF: 1MByte FAST-RAM $A00000-$BEFFFF: reserved $BFD000-$BFDF00: PIA B $BFE001-$BFEf01: PIA A $C00000-$DFEFFF: reserved $DFF000-$DFFFFF: Hardware register $E00000-$E7FFFF: reserved $E80000-$EFFFFF: Adresses Expansion $F000K300-$F7FFFF: reserved $F80000-$FFFFFF: system-rom The Custom-Chips can only use the first 512K RAM (Chip-Ram). Now, you`ve learned enough for to - day. In the next issue, you learn something about Multitasking and special things about MC68000:regis- ter and one of the most important command: move. (TORCH) time to move memory, which is useful for fast Animatio - nes. Denise is used for Screen out- put and Paula for out/input, e.g. : Sound or Disk. These Chip.yd. The RootBlock is allways at Zylinder 40 Head 0, Sector 0 (880). In all fol- lowing Block-types, the structure is nearly the same. To mark a block, the first and the last long-word is used, the primary and secundary type. The Root-Block has a primary type of $00000002 and a secundary type of $00000001. So , the Dos see, that this is a Root-B. The following two Longwords have no Function. The fourth shows,how long the Hash-Table is, which is discri- bed later. It has allways th+2e worth 72 ($00000048). The next field is not used. The following shows the Checksum of the whole Root-B. Is it not correct, you will have an error message, called Key 880 Checksum - error. This sum is so discribed: All 128 Longwords added with $00000 000. Then you must subtract all the longwords, not this of the Checksum of course! After Position $018, there is a 72 Longwords containing Hash-Table. In the next Position ($138) there is a Flag, which shows, if the Bitmap-B. is (valid. look next page to go on ... 40 Head 0, Sector 0 (880). In all fol- lowing Block-types, the structure is nearly the same. To mark a block, the first and the last long-word is used, the primary and secundary type. The Root-Block has a primary type of $00000002 and a secundary type of $00000001. So , the Dos see, that this is a Root-B. The following two Longwords have no Function. The fourth shows,how long the Hash-Table is, which is discri- bed later. It has allways thet Disk was formatted (see at top). The next three Longwords are not in use. The last Longword shows secun- dary type. The next Block is the File Header B It contains special Informationes about a Disk-File, like the name or length or the numbers of Blocks. What is a Hash? A hash is a number bitween 0 and 71 and is calculated by the name of a file. When AmigaDos searches for a file, it calculates the Hash. The Hash shows, which note in the Hash table in the RootBlock belongs tuo the searched File. In the table, there are only the Blocknumbers of the File-Info-Block. So, the Info - Block will be founded fast. Now, how to calculate the Hash: 1.Change the name into capital let- ters. 2.For every Char in name: -multi - plicate vHash with 13, -Add ASCII- code to Hash, -And combination: Hash and $07ff. 3.rest of division:Hash/72=Final read next page to go on ... m $1b1,and in $1b0, the length of the name is shown. In $1e4, there is the info , when theFkame. Then, we`ll send you an Interview-sheet, if you are worth to be interviewed. - If ya want to make an Interview of an other cracker/group, make interesting questions, or you`ll get some questions from us, if you want. - Send us the interview to: INTERVIEW PLK 052706 D 5430 MONTABAUR, W-GERMANY O.K., start writing something . . . Oh, ask the crackers, if they want, that we should offer their adresses Tt************** MOVE.W #$802A,$DFF09A BSR RESTORECOPPER BSR RESTOREMEM CLR.L D0 RTS SMOOTH: MOVE.L $DFF004,D0 LSR.L #8,D0 ANDI.W #$1FF,D0 CMP.W #200,D0 BLE.S SMOOTH RTS ******************** * THAT'S ALL FOLKS * ******************** **************************************************************************** * I N I T I A L I S A T I O N * ***************************************************************************JF+o feel free to fill in the truth, nothing, but the truth. Send the answers to: QUESTIONNAIRE PLK 052706 D 5430 MONTABAUR W-GERMANY -COMPUTER -PERIPHERAL -BOOK -SOFTWARE-HOUSE -GAME TYPE -COMMERCIAL GAME -ARCADE GAME -COMMERCIAL UTILITY -HACKERS GAME -HACKERS UTILITY -GROUP -INTRO/DEMO -CRACKER -CODER -MUZAK WIZARD -GFX ARTIST -LAMER/LOOSER -DISKSTEALER -MUSIC-TYPE -MUSIC GROUP -MUSICAL INSTRUMENT -SINGLE -ALBUM -MOVIE TYPcE -MOVIE/VIDEO -ACTOR -TV-PRG -TV-ARTIST -HOBBY (NOT AMIGA) -DRINK -MEAL -PET -SEXIEST LADY -HOLIDAY PLACE -PLACE TO WORK -PLACE TO DIE LOOK NEXT PAGE FOR MORE ... to judge, just leave them empty!For each Item wri- te your opinion about which is the worst. Note, that this question - naire is highly confidential and that under NO circumstanses we will publish this sheet as an individual result. I.E. we will not tell, who has given us the answers, s޲< 0 p 0 00000⯄6` ?89NW (A6),6(A5) MOVE.W 20(A6),D0 OR.W D0,MT_DMACON MT_RETROUT TST.W (A6) BEQ.S MT_NONEWPER MOVE.W (A6),22(A6) MT_NONEWPER MOVE.B 2(A6),D0 AND.B #$0F,D0 CMP.B #11,D0 BEQ.S MT_POSJMP CMP.B #12,D0 BEQ.S MT_SETVOL CMP.B #13,D0 BEQ.S MT_BREAK CMP.B #14,D0 BEQ.S MT_SETFIL CMP.B #15,D0 BEQ MT_SETSPEED RTS MT_POSJMP NOT.W MT_STATUS MOVEQ #$00,D0 MOVE.B 3(A6),D0 SUBQ.B #$01,D0 MOVE.L D0,MT_PARTNRPLAY RTS MT_SETVOL MOVE.B 3(A6),8(A5) RTS MT_BREAK !nec - drive. prize:240.00 DM with a 1 year guarantee 03 - AMIGA 5.25" Disk-drive, infos are the same as by 3.5" prize:270.00 DM 04 - ALF Harddisk, formatted, boot- software 20 MB for A500/1000: 870.00 DM 20 MB for A2000 : 790.00 DM 30 MB : + 80.00DM 05 - Bootselector: 20.00 DM 06 - Mouse-Pad : 13.00 DM 07 - Highscore-killer :60.00 DM 08 - Virus-killer-expansion:50.00DM 09 - Modem 2400 Baud: 400.00 DM 10 - Modem*үu 1200 Baud: 280.00 DM 11 - look next pageOP Here, in the Phaze-Shop, you can by cheap disks, drives, modems, ... Please send your order list with a) number of your order b)complete a- dress c)The money! Don`t be afraid to send money! We are not stealing it! Ya will get 101% error-free things with an gua- rantee of 1/2 year. 01 - No-Name-Disks, 101% error free 2DD 3.5" for only 16.00 DM for 10 Disks. 02 - AMIGA 3.5" Disk-Drive, a very low noise, on/off, bus, ~pZ 70.00 DM 17 - Kickstart changer (e.g. V1.3) 3 Eproms prize: 60.00 DM Now, if ya want to order something, write to "SHOP" PLK 052706 D 5430 Montabaur W-Germany NOTE: All things are originals! They are in their original package! They are 101% error-free! WE SEND YA YOUR ORDER 3 DAYS AFTER REACHING US! NO POSTAL-PRIZES FOR YA! ----------------------------------- YLazarus YFjame. Then, we`ll send you an Interview-sheet, if you are worth to be interviewed. - If ya want to make an Interview of an other cracker/group, make interesting questions, or you`ll get some questions from us, if you want. - Send us the interview to: INTERVIEW PLK 052706 D 5430 MONTABAUR, W-GERMANY O.K., start writing something . . . Oh, ask the crackers, if they want, that we should offer their adresses p奨F8 have originals, that you can not crack, send them to my contact-adress in startup-se- quence. I will crack them for you . I can crack most of all PRG`s! But the only thing I need are original- deliverers! RECORD-COMPANY IN SOFTWARE BUISNES: The record company Delphine Records from Paris, will make three to four games a year for Amiga, AtariST and MS-DOS-PCs. The first game`s called Bio Challenge. It comes out this spring.Chrysalis, a British record- company will make Gamp^@es for 8-, 16- and 32 Bit Computers. In 1989, there will come 6 games. The first game is around since one or two months, called PRISON. ly, we get game-testers and game-news writers from England, USA and Germany to give us news and reports from really hot stuff. We know some guys, working in soft- ware-companies! Now to Game-tips: In next issue the Game-tips will get to over 5 pages to many different games. If you want to send us some tips, try and do so! Oh, games! If yousVr you can connect it to the apparatus mentioned above, and begin transmitting in packet radio. This is more fun, as there are lots of users already, as well as BBS. The demonstration we had included being connected to a BBS too ! Although it was a very small BBS and it was dedicated to C64/128, there were also programs for IBM (shit), Atari (shit), and of course Amiga. The programs included Virus and Dos2Dos! (Note: As I already said, this happened a while ago, so do not expect sH 0Afterburner to be there, coz it was not yet released !) Since we were more interested on the Amiga side of this thing, we told our friend to leave a message in a BBS to ask if there is an Amiga program similar to DIGICOM. A few days later we got a favourable reply ! Unfortunately, VHF limits you to direct sight connection, ie. one can only communicate to limited distances. From Malta we can connect quite easily to Scicily. But there are the so-called Digipeaters which can be used, tshus enabling us to connect to more distant places, and it is even possible to connect to UK or Germany !! Moreover, recently the 50M band has been given to use of Radio Amateurs and although it is not too much used till now, one can connect even directly to UK or Germany from Malta so make sure that your transmitter can use this range too! There are more nice features such as the Oscar 13, a satellite which can be used by Radio Amateurs, and which will enable more distant connectionss*V. But to explain everything would take lots of space and time !! I suggest that those who are interested should immediately contact a local Radio Amateur Club for more details. I hope that I did not take too much mistakes, but I am still studying to sit for the RAexam.In the meanwhile we would be very grateful if there`re groups who are using/will be using VHF transmitting will contact us. Most important for us is to get the soft for the Amiga to use packet radio, called ONLINE, so s*Lany news of this program (or other equivalent program) will be a great help. PHAZE 101 - PO BOX 529 - Valletta - Malta M band has been given to use of Radio Amateurs and although it is not too much used till now, one can connect even directly to UK or Germany from Malta so make sure that your transmitter can use this range too! There are more nice features such as the Oscar 13, a satellite which can be used by Radio Amateurs, and which will enable more distant connections|nd cheap Disks, 3 pages Assembler-course #1, 4 pages Floppy-course #1 and a few pages full of questions for all our readers, to make a list of the most liked things from our readers, like music-top-ten, game-charts, ... Then, you will find a short infor - mation about interviews. Now, there are some pages free. If you want, you can save your piccies from page80 to 99 (page XX, XX is the number) to spread them together with the mag. NOTE: DO NOT WRITE ANY BULLSHIT OF OTHER PEO|3BPLE ! ! ! If you want to write an article a- bout any kind you can send it to us either as a TextEd-File or on a simple paper, written with your hands or a typewriter. If you want to get all issues, you can send us disks. I will copy all following issues on it, and I send them back to your adress. THIS ADRESS ONLY: THE NEW PHAZE PLK 052706 D 5430 MONTABAUR, W-GERMANY Bye, TORCH.@LIBS|ps/hich you all have), a special modem which can be made for about STG 50 and a VHF transmitter/receiver which one can purchase for about STG 200. It is perhaps a bit too much for some users,but when keeping in mind that you dont have to pay the huge phone bills which sometimes arrive (often at least desired times) it is really worthwhile to go through the trouble to become a RADIO AMATEUR. To become a Radio Amateur one must sit for an exam, which is a bit different from country to sb=country.But basically one needs to know some electronics and study the regulations, and that's it. Some exams are multiple choice, so it makes it easier.Once you have passed this exam you are issued with a licence and thus you can buy the transmitter. (NOTE: You can buy the transmitter only after passing the exam, thus having a CALL SIGN. This helps them to eliminate lamers !!) Once you have got the transmitter you can either use it as a sort of telephone, just to transmit speech, oY Z|Y RXBx00800l$xx||y|p||ypxxaxxx$p0000$x000xx0`&0l 440 x0`l0xx0lxxxy0x xxlx0`x̹XL#!xx0x0 0x0xxl<<<>l<<<vffwwfnfvf~<wfffvvffwwfnfvf~<wfffvf~fkkf ~vfkfffff~fkkf ~vfkfffff`ffccf` ff cfff`f`ffccf` ff cfff` <<><><|6<0<>>f<>><;<%f880f><><|6<0<>>f<>><;<~xfkff`ffnx`wf``ff~xfkff`ffnx`wf``fff0fkff<~ff0<k~<<f~f0fkff<~ff0<k~<<f~%f0<<<|<|6c8><f<<<|<|6c8><f><;<8|<l8|l<cl8><%f<>><;<8|<l8|l<cl8><%wf``fffvfvfffnffvfkvf%wf``fffvfvfffnffvfkvf%k~<<f~fffff`ff~ff~kf~%k~<<f~fffff`ff~Y}iff~kf~c`f<`fffff`<f `ff`6f`c`f<`fffff`<f `ff`6f`%c<||;<<c8>8|;<>>>l<"l<c8>8|;<>>>l<vf6vffkfxfvkvffvf``vfvf6vffkfxfvkvffvf``vfff~fk~0~fkffY׸1f~<<f~ff~fk~0~fkfff~<<f~f 6f`f60``6`f<|``f`f 6f`f60``6`f<|``f`<c<6x <6< f<lf>><|<|6f><;<#8;l>f<lf>><|<|6f><;<vfvwff`f~vffffnfvwf``ffvfvwff`f~vffffnfvwf``fffffkff<~fffffffk~Yc6<<f~fffkff<~fffffffk~<<f~`c8<lf>kvffvf`kvffvf`kf~`ff<kf~`ff<6``ff6``ff6< <;<;|6< <;<;| 8~~8Y՘Έ 8~~8lZfZ`6``lZfZ`6``"`l8>0f|<>8<|<|fcc8>l"`l8>0f|<>8<|<|fcc8>l xv`xfffffkfvl`kv xv`xfffffkfvl`kv"`f<0ff`fffffkffx<kf"`f<0ff`fffffkffx<kf lff0fffff<6f`l6f lff0fffff<6f`l6f"8<<<|x;f< <O???>~?>OO&gO O1a<0><<>~?>O? ??< gfgfg灙300~0~fJ-\ ~>??< 灙>|/?<gfgf~<域<3003000``>|/?< <域<>$' ?gg ?<<`1?x <<<>$'? <<????@J. |8 g60ll`` 'g O? 9Ã6f>f<|6 > g#f& 9f`wffn aaـ9 Sg9ÔJ/ wrf ǃÙ?8|cnFfgfg矟ß333031aif f``f0ff<`ai ~>~$?g gJ2 ꞹ Ç1߁3< ;<< G&O ÃǙÃJ3 A@+< Fgf'g 爙癙 < ܧfgfgg 甙癙< fggg <眙癙$ g g <ÜÙ<???0?J4o:Z????0 ??????????????<C 4@p?C 4'<>??>?30'' L B@L  ÙÙ ?L<@  $?L<'' L B@LJ5^ Y ?<< Ì?<$ O Ã?à O ?p< ?/?fg?fg a?fo ~&ϟ$g Ùęg ?<Nߞ? ?? 6q? l<< ~<><N? ?? ???ߟ?@p?88?>???>O??030J ?ߟ?gg'fs`0?f<<`? >?ߜOggdà 0a?`<<~>>?J<<<>< ?ߞgggfgRg癙 s301?bf`>>< ???,?ߞ~fgfgfr癙 330000?f??,?&| ?fgrJ 1<Ù a<< &|??????? }0@J!(8?},? g90,??9<gNg' Oǃa1017o <<6<68|<<?ǃ?g?J#Nę9Ù11a߃<;<;?9Ù?p????0pJ$:88?g 00`?f<` ? 'gg  01c?l6f ?fJ '| 33`303ó33sa lf|vffv̟<x~ >g?s 1600 <;;<>x~????p???????J )b5m???? p?ߘØ`??@ 00?f ؎N? OGggÀÙ ql<<0<? o <OOfGfgf'&g' 牙 c003 vfvfvfxfvJ-JWh٘`?<< gfgfgfgfg 癁ϙ030 f~f~f~0ffyy`?o<fgfgfff~f ϙ0c01f`f`0f`񙙀h?g'x~'>ggg?g?1J.<)<< <<x<`0?~<<????? 9 9 `8?J/_??gg9gg9`? ? ?dgg' 9Ù ?dgg'9 pa?<>L?< "ggfG )癙 "ggfG) aݘa?ܜ?< ǞRggNg 灙 ǞRggJ0 Ng 8aa?f L/,? grf~g  grf~g a`?ff ? rs 9 rs9 `?<; ????????J??????????p8` ?8?,?ߟ'??ߟ'```?f`? <?ߟ?gg'fs ^dd -MUSIC GROUP -MUSICAL INSTRUMENT -SINGLE -ALBUM -MOVIE TYPE -MOVIE/VIDEO -ACTOR -TV-PRG -TV-ARTIST -HOBBY (NOT AMIGA) -DRINK -MEAL -PET -SEXIEST LADY -HOLIDAY PLACE -PLACE TO WORK -PLACE TO DIE LOOK NEXT PAGE FOR MORE ........... d that under NO circumstanses we will publish this sheet as an individual result. I.E. we will not tell, who has given us the answers, so4ۼ BJX`rz ,8,DP`p ,8DP`rx>   & 8 D X ^ n  " ( . 4 : @ F L R X p 1a2 feel free to fill in the truth, nothing, but the truth. Send the answers to...............: QUESTIONNAIRE PLK 052706 D 5430 MONTABAUR W-GERMANY -COMPUTER -PERIPHERAL -BOOK -SOFTWARE-HOUSE -GAME TYPE -COMMERCIAL GAME -ARCADE GAME -COMMERCIAL UTILITY -HACKERS GAME -HACKERS UTILITY -GROUP -INTRO/DEMO -CRACKER -CODER -MUZAK WIZARD -GFX ARTIST -LAMER/LOOSER -DISKSTEALER -MUSIC-TYPE5$    ( 2 : @ F N p z    * 8 D N X b l t z  ,4:` &Thr ,8DJV\hnzDhnt\pz,BHPZb ,8D f,DP`p ,8DP`rx>   & 8 D X ^ n  " ( . 4 : @ F L R X p B7Zsers are comeing after the game has started, they`ll go to the other looser/lamers. If there is comeing no other loo- ser or lamer, the other in the edge will have 5 seconds time to run away. The winners will follow them, smash `em down and keep the disks and computers of them. 3. If there are comeing others, the copy-party begins. Meanwhile, the loosers and lamers are watching the winners. If a winner has not more hot stuff, he`ll get a loo - ser B%瓱image and he has to go to the edge. 4. When the beer is empty, the loo- sers must bring more beer. 5. If there are no more empty disks the lamers will have to buy some for the winners. 6. When the copy-party is over, the winners will have to smash down all people in the edge and to get the loosers/lamers computer. I hope, ya like this game. If it`ll be released allways, there are no loosers/lamers any more on parties. sitting still in an edge. If some lamers/looG9g as I want. Well, my friends brought me disks from some swappers around and I copied `em. I asked the guy, if he want some new stuff, but he said no. At the end of party, we was gone, and the guy, too, with no stuff and he hasn not used his Amiga all the day. Funny! Well there were not so famous peo - ple around. I do not want to name all . . . There was not much new stuff around only a few good games and demos. There was a boring creature behind me, who wanted to hGT#u40ave some stuff. Without asking, he put his 3.5" on my floppy. Well, I said nothing but with X-Copy I only copied with df0: the source and df1: for me a copy , and df2: the floppy of the creature I has not copied. The joke was: He thanked me for co- pieing the disks. He hasn`t checked that I`ve not copied on df2:!!!!! TORCHk-Drive and put it on his computer. After I had finnished to copy these two disks, I wanted to go. But the guy said to me, that I can copy so lonF;pLdrove to him. His equipment: A2000,an Epson LQ850 and a monitor. He was jumping across the room like my bass-loudspeakers, when I`m lis- tening to ACIDmusic on highest vol- ume, as he saw my disks. (He hasn`t known, that they`re emp- ty!) Well,I had a short look at his Disk collection. There were some new ga- mes. He said, that he has cracked them himself. I don`t believe in that, I said to him and looked up the disks. But I was surprised! All games has his Intro. After the seconF*td look I checked out that these games were cracked from others!!! As I saw this,I loaded a Virus from my VIRUS-COLLECTION into his memory (so, that he don`t know it) and I tested all his disks with no pro - tection! I hate virusses, but I think, this time it was right to use it! 64-user and the other , who is talking bullshit, an amiga - user. I said to the amiga-lamer, that I want to have him as a new contact . O.K., he said to me his original - adress, and on next day, I =XB|mC2Ag@3 B03 |mC y By By B09 @E "RBy Bfy y Q`Dy y Q29 09 ʰAmB09 @E $y 29 A09 ưAmn9f2( ( ( ( ( y 29 09 Ȱ|m$| ~"y vB@BABBHJAB4QA BB29 0"| ~aNu>Ê ByBy3<33 y2p0"y6## y Cfh Mf` AfX PfP# p0  oQ y CtrHQ2Q# `A0f000 y p  gR@`"<L〒 y:"y $y~ &JH|H2@ ?qAAIA2@AIA2@AIA2@AIA2@AIA2@AIA2@AIA2@AIA2IA2HOOQfL  f># y p  gR@`#"<' &m"<O y:!@# y "y$y(Ip"Lr< g &Ja`#  Q &l 9"<' <O"9" y: @# y "y$y(Ip"Lr< g &Ja` Q,yN8 y:P"y @M5taL y:P"yta4 y:P"yta y:"yta y:"yta y:"yta y:"yPta y:"yPta y:"yPta y:"yta,yN2"|p arNuH@tPQLNuK;|@+HP+IL+ITBmdBmbBmfBmBJJB6< B;C@;|X-fNuaA l#lNuA#la83NuH 9 A;;e@|naNLNNuA C*IE(Jp0&IPaP"ME(Jp0&IPa*,y yT"|h <"<tvNNup QNu<||~<~<<~<~~~|~~~~<~~>~|~~~~<~>~~~~~~~~~~>~~~~~~><~||<<<<||~<~<F<g0<gNuFyp.S#fNunNuFyNup.99NuX(\:}hS@. xq20 >P|2PV`fp~ER&%dn`t send us Disk A!! If you wanna to have shit old stuff contact MARC or ED Holland. Hey, I only say, that Ed and Marc are la - mers,but not MCJ, HIGHTOWN or NATAS because I never get in touch with them. Note to all people: Don`t write to NOC/Postlagernd/1180 Wien/Austria , because someone has stolen us all sendings. Write again to TSB! Note to: The Ferryman: I`ve lost yor adress. Write back again! Helloween : You wrote to NOC ? Write~ s again to TSB!!! (RAP of Phaze 101) Note from TORCH: RAP`s meanings about Marc and Ed are his and not ours !!! hot-stuff. Only for some new Games, we don`t want to drive to Holland or Denmark because it`s too expensive. People who can do special things or who want to swap, should write us. NEW ORDER AUSTRIA IS DEAD BECAUSE OF SOME PROBLEMS WITH MARC, ED! They were us too lame. They send us only shit things like Superman Disk B (before 1 month), but they diy( called `SEASONS GND` and it will come out in Sep - tember. ----------------------------------- David Bowie has found a new band. A report about it in next issue. ----------------------------------- Bros are only two any more. ----------------------------------- Note:In next issue, there are about 4-5 pages with music-scene-news. ----------------------------------- Lazarus  n translate more Horror-sto- ries which are only in German into English. ----------------------------------- Here, I have some Space for a note: As you can see, the mag is complete written in English, so, to our Ger- man-readers, I will say, that they can write to our office in German , but the articles in English. If you do not so, I will have to translate them and this is a hard work !!!!!! -----------------------------------   5 * 512 = 901120. 901120 Bytes (880 KB) can be stored on each Disk. A sector is also cal- led a Block. AmigaDos knows 7 different Blocks : The first is the Boot-Block (0-1) . These blocks contains a 4 Byte long ASCII-mark. It shows the type of a disk. It`s either KICK for a Kick - start-disk (A1000), or DOS\0 for an AmigaDos disk.If it has a different mark, you can`t boot with it. read next page to go on .... Track: Circles with different ra - dius around the center of the DJ*`Nq3`jNu y,yN3`D < x9<:g<;ggAnr g Q`6< y9x0 9y0 `a`ra Q`9 90 l,9 90 l0 0 `9 Nua`jra Q`\9 99 o,9 99 o9 9 `9 Nu`` 9 9g`#,a`#a`309 `329 `349 `369O127 `389 `~300 `r399 `f,yC>BNh#|,yCJBNh#,yCXBNh#,yCjBNh#Nudos.libraryexec.libraryintuition.librarygraphics.library,y"yNb"y|Nb"yNb"yNbNu,y <"<N:# <@ "<N:#2 <<"<N:#6 <P"<N:#: < "<N:#>Nu,y <"yN. <@ "y2N. < "y>N. <<"y6N. <P"y:N. LUt, to run away.But it was too late because the ratt head smashed through the window and bites him at the head ... Jawalkow was not died. He was only knocked out. But he had no chance : The helicopter sank down in the red liquid. No one has ever had a real chance ... In the Moskauer center of KGB,there are people, more important,than the most important politicans. Since the last few month, it has changed something:The leader wanted to make a liberal course. But many were ag C`ainst this. Wladimir Golenkow enjoyed this sug- gestion. He knows things about the Devil,the wizard and the magic part in this world. In the far Sibirien, he was fighting against ghosts. Since then, he met a man from Scot- land Yard, who was John Sinclair. He thought about the happenings in Kaukasus. He decided to call John , because the problem was too big for him. After he had phoned him , and John wanted to come, he got a phone call from Mrs. Orgenkin. She said could make i Ne Disk was formatted (see at top). The next three Longwords are not in use. The last Longword shows secun- dary type. The next Block is the File Header B It contains special Informationes about a Disk-File, like the name or length or the numbers of Blocks. What is a Hash? A hash is a number bitween 0 and 71 and is calculated by the name of a file. When AmigaDos searches for a file, it calculates the Hash. The Hash shows, which note in the Hash table in the RootBlock belongs t uo the searched File. In the table, there are only the Blocknumbers of the File-Info-Block. So, the Info - Block will be founded fast. Now, how to calculate the Hash: 1.Change the name into capital let- ters. 2.For every Char in name: -multi - plicate vHash with 13, -Add ASCII- code to Hash, -And combination: Hash and $07ff. 3.rest of division:Hash/72=Final read next page to go on ... m $1b1,and in $1b0, the length of the name is shown. In $1e4, there is the info , when theP+[Nu,y yTNNu y< #B @0y,yA$N4#T,y yTCh <"<$<&#P#P#P#P# a.K,y2;|# ,;|Nu 9й3H@3 9й3H@3 9й3H@3 9й3H@3 9 й3H@3NuXCRAIN WOZ EREQx $ 8,, y6"| <<aHNuDF0:CHARSETS y"| <a"NuDF0:MUZAK"| p a < yBQ < yBQ < yBQ < yBQ < y BQ < y:BQ y2 < Q y2"| < OOG3|m0<"J "JB03 |@n*3(3(383y`$3<3ByByy Sf*<<0f fffff;f;<<<0 HNf<`>f<>8<|8|>>f<>8<|<>f`vffff~f`vfff``ff<ff`fff<ff`ff UQ ǎ @`  Èa @  C @ ax @x `8 @ ` @x @ @ @ @` 0a @>; ca1cCc2&0 c 8>< |zp@ V-?q0aa` |*y>C3`9qo`q{<*O1pc!0`` `1*G,10c{&0ac` `1`~*c=C1xǏnqgp{ǰ` o 0  1  1? |ns~p{x?!311a1c 0a301a1c{~|wx W"Ԣp 11 0|@`1?1`> 13{@{`  Î`1q `` 0@pn 2̱ 0  `x`0s? 41 c<)1|??px??;qxxc11c 81 `(C0x ?cax F3` X, 10`#>>? )2 `xa 3d1`{3*|~`~<90p1{??88c 8c`@ 8@<|e ef  `~ia ~ic`)>;3#qk`~qa qc`(C0!0381kǀ`?!|~?~?Yu (` {&0A313`0 (><p1x㷏gq<?8c8pscve010`~ia(|s|71w cw|7pqa)1c8p1 f130ag8afc{~?'<1c01 132af0f`x)|{={x#{;s 0?Af8|fX~Ag|>~0!}?`C< f0 `p00 b?p?`0F` `3Cp30x<Oy`qc`(C0!0381kǀ`?!|~?~?[Xbooting 20 Mega Byte Hard Disk for Amiga 500 from Commo- dore. There is a SCSI-Controller, and 2MB-RAM. On the SCSI-Controller you can use 7 more SCSI-tools, like HARD-DISKS, TAPE-STREAMERS, etc. . __A2090A___________________________ A new Hard-Disk Controller for the Amiga 2000 and 2500. In Amiga 2500, it steers a 100MB-HD and an 80MB streamer. In the base-version, it`s fitted with 40MB-HD and costs about 2650.--DM. __A2620____________________________ A 68020-Card for the AmRZ iga 2000. It is the base of UNIX on Amiga and it can be used in Amiga-Dos! With the PAL-Amiga, it has 14.2 MHz. It`s fitted with 2MB Working-Space, which can be fitted up to 8MB. If you press both buttons after re- set, there comes a menu: You can choose bitween Amiga-Dos on 68000 , on 68020 ans UNIX. There are up to 400% faster!!! -module, and an Instruction. It is very good, that you can work with the mouse-pointer on pages! __A590_____________________________ It` a new auto,Dnd the working in a Disk Station. (TORCH)ually of the next FileList Block, if there isn`t enough space in only one to list all Blocks of 1 File. If not, the pointer contains $00000 000. The next pointer is on $1f4 it shows the Block-number of the File- Header-Block. The easiest Block type is the Data- Block (Primary:$08, no secundary) . It contains only the Checksum,and a pointer to the File Header,the num- ber of the Block, a pointer to the number of the next Data-Block and qK-o MAGPIE. Now the adress for autogramms and the FAN-CLUB: THE WEB P.O.BOX 533 Richmond, Surrey TW9 2EX Note: This is of course not THE WEB in Computer-Scene!!! (TORCH) ----------------------------------- Here is some space for infos about Music-part: Why not writing about your favourite music-band/singer ?? Well, send your articles to our mag adress: "MUZAK" PLK 052706 D 5430 MONTABAUR GERMANY -----------------------------------p_S `8   p a   0 `  ; 0 `  3 8`  3  ``  1  0``  q  0p` 0 a 00` P a <800p  a 0080  0 00p 0 0x0`1z 000$1 xp80"p  `0#@@`80!"p@`0<0!$@@ `p0!  `0 p1 `0 ` p? ` 0? P 80 0  0e콏 `  0  ` 0  pp `80  80 `0p 0 0 `p8 8  0  p`c  0 0`c  80 p80s x 0 0003  0 8p17 0 96v px >> `8 8b؏h Mike Oldfield, Breathe, Jennifer Rush,.. They`ve written 4 songs together. He`s also written with Hal Lindes a couple of numbers. The new Album will came out in the beginning of September and a single in August. Other Projects: A guest spot on THE GHOSTS OF FAFFNER HALL, which is a Jim Henson production. In it, he is playing the Lyric Wizard teaching a creature how to write a lyric for a song, which happens to be Freaks. It`s screened in Autumn. He is also working together8 with Mark Wilkinson for a book, called Masque, which shows the Marillion - work in the last seven years. In future he will work also for films. We are all looking forward to hear from him. In the next issue I make an Inter - view with Fish and MARILLION. I think it`s interesting to see the future of the two bands, which were one, some month ago. (TORCH) r his first Solo-album, he worked with Mickey Simmonds, who`s been a session keyboard-player witdguUNDER A BLOOD RED SKY? 4th: The name of an electronic band 16 ....... ? 5th: A person, who has made a GLASS SPIDER TOUR. Now, guy, the instruction to get the words we are searching for: 1st word: __e. To get the 1st char, take the 3rd letter of question 1!! For the 2nd char, the 5th char from question 2. 2nd word:___ze. To get the 1st char take the 1st char from Number 3. For the 2nd, the 3rd letter of the same word and for the 3rd, the 7th again from the same! 3rd wo%Prd:is 4th word: _. Therefore take the 2nd letter of question number 5. 5th word: J_K_. Take the 7th letter of No. 5 for the 2nd char. For the 4th char, take the last letter of number 5. Got it? Well, it`s not easy,but you can win a CD!!!!!!!ho works in a local music-shop. 1st: Who is the singer of GENISIS` album, called TRESPASS? 2nd: Queen brought out an album , named exactly like the Sience - Fiction-Film? 3rd: What`s the name of U2`s fourth track on side2 of f& ` 0  pp `0  `              ?  ?? 9g E cp~lZ`lf8;8>8~<l8>>8f<f8;8>8~<ffLfv v`wfffLfvff~f f<k~ff~flRpD<2``fc`l<2``<< <~<<<| >f<>8<|8|>>f<>8<|<f`vffff~f`vfff`ff<ff`fff<ff`ff~f`fffff`ffff`<f| ;< < 7$ ` ` !9: 1NF y~r =x > O?*  ϭ>E }ˁU  _l'~ 'j `E 2 DX Q@ /~aEP~Q@ ?K :d " O X=  RE{ $PC$   &(E S(;E -Ju v"Eh * 2`h" B(f FK+@? oLD() lPIUB 0@B FY9{ w8"0 (1` k2 hQ@ @p1hQ@ (k  )+nجgD )T  0F  D )Ti@pgϿ(3^f| mY "ʜ i@R "``:ck3G1A````` 5@YIpIT 0`uI@IT`` ǜ\}w '>8l0@pa"fx````\@ @ 0 ;޾ | h`0,o LLrf+@L5$Tqo8@2ќ*:@&  .f;݀?߀1~1 d0D I;t pp   @@   @ 1a  @P$ P$ _@?p@    @ @@x-p  0@ 0 w`b l  mFu 0  (6@*`euC``{8u8 D`\ p T `p, p(@(@~ XR `  .q͓| P>*@@ >` `*     @@@`  3 @@@!@^P,r@ n @  p`@/P>b@p11@`/FF`?<9r  |@ 0@$0@Ill\ p T `p, p(@(@~ XR `  ^:3                 ~0  0`  0` txC)@3  x@ e  c  A#? M/6M`pM0e"_`(MO",A( @0p( ?A( P쀥~2DhP}`lPE#ހ B,PE)"D=wsD(S ")@@"lVSWu:߀;"4}t0 4BE \ !3DE u#% aQ"E az(p$*JH] fpA kJH>?,=aYEBa5`@TP( 8PEд(y.z%C}a0Hd""HHa ?HL(HPP0A"HPP79ݲl;|a, @ @?Q@l`{ QK(1D)0 0 E0 Q@E0>QD(Ba QI$!"8"Jw0k6-  AB@"J QH0QE$Q D $  AbH$QEQ ,Dz Q)@T$_@ bT$Q@ 1J4 DQtF?Qt,DRp0DR0D4V BQ A般R@@!Q AHwX  @N!Q AHLF^xwl BR1߾0xꦆBTπN*I$!BN*I$B L`?yyFT4 0W<(  `@efP  `@ a0 (wlŊX@A?  k `3"Bb@#"B43߿O `` D3>6,eN4)ш 1w\wD#} @  ye7 ,x8@@I$Y 0: @@I$ \nxy] 6X 8||0W< Iz vxYH  Q_xv 40  &s3&`*8wa O ^ OWP 3? l?S2 @Q" $`8 `a!z5Q@@M ŐI `}x @ 0y B@P@B@/x?p`8|P    }    \~}u_;ˀ`1R`6 #D: y@B @@:ŀB!"{X=P:e "0` .8*08J`  ?,)0@X  P    `    @#|Ao  /(`9p ]Tj p7 @ ` ` 8`@ 8p @p#@p#0p9LL>2 r`S $}EtcA]> 66                 ``?@`P `?w<%hTO| @ @t|8 @ @ @ @Μy||p c q 쿹<@`< 0<e|"f {X4? ͡| M8 s߀A2 2u(QF(f? ?2(QD AR` $ AR,D(hH 07(QDH>!`  ?? @(QDAH@ RAH!hXw / (QD,c"  ?(QHD ;D 1(Qxfo  + (QHvfr#~  @ҝ (QP >E8@ ($ ` 8F@ ($ X(Q0f; ?(QP8&D ? sx`^( %RT"@H,%R(P= x(Q`|!  A(R@  a@ 'w0"?~ <(Q0 g  ~ gD ڟk. ҀF D tp?g  8b 3  ~ ja $ ` $5q8  O|pa`  6%0"4g Fw|  &`     kdH <p  #d80 K #8Tu>6   5*@@  xf%> C*@  8Rf X   8tP/ |)@ | 8''; ~9@2 ~ < cc ;<  9_  ? zq0d~x r  x? wA00 @A0@ ȀA  x? }L`0H`  0  ? t4 $ ?  `????00 ?c@;'>HT:HQgNLAFyw<x>8W18v_rOtiF^̌ @Z|`QCs4\QFcCsr@2>sA3tGys ff=@,e f>&9 R߀ `>{ |@ O1r@ D?@ Xr <` ߁ N< , oypnGB:P .RC P @ YZ M=  i< EH0s`v3T  ??x1303c@303c> 303c>  ?  ǁ ǁP^ǁR  ? v  r  ?햋6v @r  ?>@00"ɀ ? ? ? @~ ?  ? >? ? $?|1@? ? ~|~ ??? md?  8~ x6Ɓ !P ? "p8 ? >8~9Gɝ8D1<9 |9 | ~>^;4ad @  s | ?Ѥ | |? {20x!,@ iyF>  ?< ` ?< |?  *7 ˿x!@ #8 D? ϟ(? <? #@i~ C??>gp??> <?>s?~CF<?~C _ x<? ~{ `B@lBA8 ~}yA~}?<?pM @8@* I )@ p1ek?~7x ?~ > X)V44 Aj@@Ϡ4 )\?|+9n?H |> d7C0st(0AJ b %z%( T?z\~|??'T? x<s9o[5|@Clh<@'74O?7e?<?x5?  BD^Š(3?!B(=?~ktE@?~ _7ҟ Af`z3{A#!<~`I, H ~ 0;`?KN0LP"*p8?vPv*? Z[M^8~p8?@O< D$ T p8?@>xa%d4E $>xash0P$>xaԌ`W9~A.ޘ DP 2RA>x=ؠ 0 ( >xt1`0!( >xxqd AQBТ>x6`AcWBТ>xH  gAC{"E A A>x!2D!A@>x#8 F!A@>xvˉkChAǁhDD,A?y)@ (?@ B Ԓ(?y~ebH!"Ϗ@~xI(D"aR@! ]@qB`f,PDI("b`"J )D@" )DH,B{CE(Q"H QM,ٶ?  E(P T XF0 BK `8S`@(~ͮoD BK EY<??8S E,PN1?8S  @!p0 !F!9EPx{ E$HF n  ~"DP P(0 (Q P(81E" BJxg? EHF(c!F? 0:@F@@   (A@@ \gE @@g?`EH@~?`||B@`<<"80"@@0~???|p@@ @d?|  A>! pppD8$  DѢ?>??~|||>~ >  `LJ~??|`LJ`LJ  ~     c ǀ|!| c ǀ c ǀ ǀ lC | ǀ lC  ǀ lC  gaǏ|~ gaǏ gaǏ|?~|~|| |?  ۇ~ۇ"Zۇ~|ǀ ??|~ǀǀ π ?|?~? π πl??ll?| ߀| ߀ ߀ M ̀ \| M ̀ \ M ̀ \ #ݍ ̀ | ̀  ̀ Ϗ ππϏ ππϏ ππ ͌ ̀ ͌ ̀ ͌ ̀  ̓   ̓   ̓ ǀ߃ǀ߃ǀ߃$0    ?   @? @ @g?gg??????%~}E ππϏ ππ ͌ ̀ ͌ ̀ ͌ ̀  ̓   ̓   ̓ ǀ߃ǀ߃ǀ߃DE( D(  !P@ ,P XP# 0  N`E x?(P  !d@ !H@鍯ü p f'׀& jwppmp KDh2zM 1.0 0yQF>pGFp|Ax:,vCgD@(: &=C3 B,, π  1  z }  @L H@ }0 2@; 3 %  pd< ,x@(X pPP p@ 1 1 @ 1 `H @b9&@x 303c2@303c2@303c2  @00 303@ 303"??3035 ?? >( a 13 13U|?13kT ? ?(`! 0s`v3 0s`v3J|$ | @` ?x ( 0 ? @@??@ ??@'0 @`?? ??@^P ?@ ?` ? ?`@%60 8@_? ~\??y?p@<  @?a??60ܾ8?p ` /@  ??? `<?@O@080@ ?|A @@@9  p?@?p?? aO~A  @@#h?0?xq@@ @  ?! ???-Wm??y? @@ ? 0 00 ?~??^? }@  ?  ?p A   |? ?x$@ _ @T7 ?` ~ p?p(p ? p@?8 ??? ? ???P`   p?~ 0 0  x ߏZ `0@    8 ?w@  Gp8;?   ppC~kb=~@ @ ?!`L "  @@<x#?}??$@| @@ ~??~?=.v,??H  @~@0|?x0|?x| ? b p`pP?   @ w?@`/ ?p@ ?@@ ~@@0?`@<@ pp@?@ }0p_p>`8k0w0 x <0>?8p |}|0 ?`` ?<|  @| 60?`@??s| @ `8??| 0p|x `? ])+ ?|?>@ > ??? |?<@ `?|? ??`|p  ?~~ C?<>@? <~~|@@????x~??Og0?~< Q80?>?8> p??><!s | ` x ??oU >xx ? @ 0@ ??`>?| g ??@8 8  ??>߀>?@~ 2< 0p?S'??|>???@???_>?? ??0?<? ?????*?> 8??>?< ?|0p`?|?x/} @??? :?@@  ` ? ??w?@ 8 |h? ? >?c  `9~@0 ~!7?| ! ?@?? "?@>0 @? >?~`<(: gg` @@`?cfgfagc @`fpos;@ /ǃ?@ @ |<@ ?&`P&`p`&c8'gf``<` A&gg@?>ff``@???fcgp8@@ 0p `   < f)OSÃ< fggagfa`0 ffaf`  ``?????????` ??  4' ??@ f`f`g`?0 g`f` fgf cö??߀?π njǀ!T#   0p c p>@?0"> À@K? ??? p`  ?{     p  #B      ǀxc  x ~ px| ? c? {~??$-? 0?? `@"  $ ho(  (@(@~%C@A( 1 !P A `>C`@`o(  (@(@~%.??@ ???0?`?@?@@¦߀?߀@@@@ @??$`m@??@@?`??@?@??@>@@>?~@?ċl2~?~@~|@|@?? @8B8@Q5` @@??@??x< 0@?  @ 0@? p??>@ x~ap~!0a??  0??<p  ???uN2H 0@? p???>>|>?>?~~~~||??M~??????~????x??88 B>0` ` c`@`f` g`njǃ0?f  c l  lnj ;<6`f``<6`f``<%><<>>0<>ll<|c><l8f<%><<>>0<>ll<|c><l8f<%fvf`xfvvfw8fwffvf6fvw%fvf`xfvvfw8fwffvf6fvw%~f~<0fff~kfk~fffffk%~f~<0fff~kfk~fffffk`0f`f`cffc`pO`>< 8 ~9D0A~0A~0 0~H >|p 71$ | < H0@@>>@H  HA @ " 8H@80@@ _K` \ q$|p0 8 8<  ` @|  V p~0<`@1`@8<< Р 8o QA  ? > 0     ?  @ hr0  ??? @  !``@?@? @ Ȁ`?@ @Qq??}} @8<L ? @@  @0??<<  @ 8?@   H@p7  ? @?w?  0G?@ ? > |?K???>? ~@0##>~>` ~ @? ~ լ?0| _<< | |>  <@?|@@@ ?@p'?Ln`H@ ?@@`?~I fv`f`ff`vffnvff`fxfvf `f xflffkvff`kfv~f<ff~<fff`fffff``f<0f`f`fffff``f<0f`<><ff`ff`ln|n`f|ln<Lc8><><ff`ff`ln|n`f|ln<kvffAffx~f|`x~ ~|f~f|ff|~fvwff~<<~<<<<<8<>>~<<~<<<<<8<>><33a3q`330<|ff><33a3q`DRI330fffff30ó0ðfffff30ó0ðfffff330300fffff330300f<f|f33300c0`f<f|f33300c0``8ff<>><<6>f<>><>0<8;8|<< <|6<>f8><@p`8ff<>><<6>f<>><>0<8;8|<< <|6<>f8><@8fwffxfvLf`xw~|f`fvn`|f`fv`0fvff fn`fvfv`f@8fwffxfvLf`xw~|f`fvn`|f`fv`0fvff fn`fvfv`f9fk~f0ff~<`k`f<`ff<`f<~f<0ffff ff<8~<>c<<;8f<|f>lfp><0<|cl<l<>>><<6><<<<<>`8f<>>Il<><8~<>c<<;8f<|f>lfp><0<|cl<l<>>><<6><<<<<>`8f<>>vf`ffvLf`kfvffff`vf8fxfkvfv``fnfffffxw~ff`~vf`ffvLf`kfvffff`vf8fxfkvfv``fnfffffxw~ff`~/f~<~ff~<k~f~ff~ff<ff~0fkfff<<f~ff`f~``kff</f~<~ff~<k~f~ff~ff<ff~0fkfff<<f~ff`f~``kf~eHf< f``|`2`6`8<<`fff<f`0ff6fffff||`ffff`f`c|f f``|`2`6`8<<`fff<f`0ff6fffff||`ffff`f`c|f8<<|<`<~<|6<<<<|6<>><>f< >;8f<|f>>l<<<<<>8<|l<f><l<l<><>>l8>8|<|6<>><>f< >;8f<|f>>l<<<<<>8<|l<f><l<l<><>>l8>8|fvn`fnff`fv`~f`ff.f`vfffffffvfff`fvfv`f`v`f~fvn`fnff`fv`~f`ff.f`vfffffffvfff`fvfv`f`v`f~J`ff<ffff<~f<f~<ff~ff<f~`f~`Bfff~`f<~f~f<f<f<fJ`ff<ffff<~f<f~<ff~ff<f~`f~`fff~`f<~f~f<f<f<ff`ff)|f``f`<<`fff`ff`ffff`f`f`ffffff`ff)|f``f`<<`fff`ff`ffff`f`f`fffff$<;;|;f;`<| <|f<|<8&.(. $nz&|BHxN,PfHxg/NdpP` -j//N,Hy/N8Hx/N(Ogp0*trfBHxN/ //N*OgJBgHx8/*B//N*Og*g2/*//N*O gd/*//N*O f4`J/*/:"/N*O g2/*//N*O gJfJ2gB/*2N$R-BHxHn//N*Og/./*2//N*OgJ6gz(j6p-@`XXJfHxHn//N*Og(j6`@/N$R-BHxHn//N*Ogf/.///N*OgPXJfJFgB/*FN$R-BHxHn//N*Og/./*F//N*Og/NXHx/N%n PL|N^NuH0 / oA&/N\$Xg /N0X`L Nu/$/ o Hh/NP$NuH8 $//<HxN$@ɊJɊPgPHjNHj o]͋/NPJO fHx/ NP` Hx/ Hj/N.JOg `pLNuH0 &/$o$/SRn/ /NPJPfp`&SR"j 0HA!0HA!pL NuH> &/*/ /<Hx^N,Pgb(tN؂$DHjN/ /NPJO g@Hx^// /NVJOg(/ ///N6JOf/ /NhpP` `Hx^/NpPL|NuH8(/$/&tNւ//N.PLNuH00$o$//N&X&Zg /// NHJO f =f `pL NuH>$/&//N*XJgPHx|/N(Pg,` /N,X f///NHJO fp`Jg R$`t`pL|NuH> &/(/ |$D CtBHxHy / NHJO g"Hy/N,///NlO`ZHxHy/ NHJO fzV`Nz` Ѐ$ЂЈ*RHH/N @XlJgHxHy / NHJO frX$R/Hy&/N// /NlO L|Nu"/p0np9m r0`pNu F4 Z 2 RV  F j $ b H@ Xhjq:  | P:RZ~44 " B  nf`ZPL : .info.infocopy copy of of of copy %ld of ) opJWFNu o /g fS Nup`LfNuLJfS`L / Sm fJfpNupnpNuL / JgSn`SaNuL / Sm fSoB`Nu <"< n2ABAHA HA0 2B@H@Nu B@H@HABA"BtҁрnRAQNu/$ B$HBHAЂH@B@ $Nu/$"a$Nu/$"a $Nu/$lD"pJlDF @an4gD$Nu/ @p$lDF"lDF @aH$gD $NuH:&o oCE,yNL\NuNu o XB!HNuH ,yL NL@Nu/,y"/N,_NuH0,yLNL@ NuH0,yLNL@ Nu 6R/,yLN:,_Nu /,y"o / N.,_Nu/,y oN,_Nu/,yLN ,_Nu/,y oN,_Nu4H`" B  nf`ZPL : .info.infocopy copy of of of copy %ld of ) opJWFNu o /g fS Nup`LfNuLJfS`L / Sm fJfpNupnpNuL / JgSn`SaNuL / Sm fSoB`NuJK~wffv`vf`vv`fffnvvffwf`>> |fn><|fvf1vk~~f<f~<ff<ff~fff~~k~<fffffff~f c```ff`f`ff|f<`ff`c` ff ff  ffff`<;<>l<c8>lf<|f8><|~xwvf`fffff(vfvkv~flfvffnfwfxvflfCff`kf~<ffffff~f~fkfffx`f~ff~kf`ffxf$ ff`cf`|f<f<f<`f``6ff lff`f c<``fflf.~8<<<l8>=f<>>8<|>lf0<f| >8>0f<f|l<<|>c<4<>l8>=f<>>8<|>lf0<f| >8>0f<f|l<<|>c< fv`f`ff`vffnvff`fxfvf `f xflffkvff`kfv%П7`1oc3`1ÿL7`1oc3`1ÿffggf`v`fgaf,v`c` `fa`f` ggpf`ffggf`v`fgaf,v`c` `fa`f` ggpf`ffggf`v`fgaf,`` f``fag gf`f``g`fa ?????? _1?????? D   ??? (GGG`a`a`a Xð03c0 Xð03c0 Xð03c0 X030 X030 X030 00 00 00 g0 g0 g01bf8f8~~f`lf`lZ``6`f<<8>>l<f<>>8<|Of<<8>>l<f<>>8<|l8>>8f<c<<<><<><> ><l8;ff|>><~fvf`vfff`ffO~fvf`vfff`ffv`wfkfvf`fvfvffxfv`v`vfwff`fvf~f~<f~f~<ffOf~f~<f~f~<fff<k~k~f~<~f`fff0ff<f<ffkfs7f<~ff`f`lf`fff`Kf`lf`fffc`6`f```f`fff<0f`ff`ff<cff``f<<<| <<;<| <<>><l<>><l<>l<<>8f<>ff`<|6ff`|>l<Ҏ^ $_Nu//NPNuH/NO NuH/N$ONuH/NO Nu//NfPNu//NPNu/NXNuH/N.ONu//NPNu//N PNuHNBPNuHNPNuHNPNu/,o/,n"N,_"@#o ,_Nu|xtplhd`\XTPL  \N@2$CM'H<*/(/$/// /N&Pg&////N.JOf//NvP L $/*/ (/$J(g/<Hx//N/@8OgHx//,//NJOg| o(<(Hp܀$o("0*HN@, o("0(HN@,$o(Hx///N%@ /$o<tkc0` 8x~y|G  t there are different opinions being expressed. Personally I think that all those nasty things which were said in open letters in both disk-mags , actually did lot of good to both sides, becoz this made them more conscious that they must keep high standards of the mags. But both sides could have been more careful in the?@? @?@@?xxrxxrs @@?331?I~~y" 233<< I c`f`#]@cnÃLcg `> c`f`cnÃLcg `> c`f`cnÃ,v`c` `fa`f` ggpf`ffggf`v`fgaf,v`c` `fa`f` ggpf`ffggf`v`fgaf,v`c` `fa`f` ggpf`ffggf`v`fgaf,`` f``fag gf`f``g`fa$Zl,`` f``fag gf`f``g`fa,`` f``fag gf`f``g`faK0``fl1faf`faff6f`ag`f3cff`K0``fl1faf`faff6f`ag`f3cff`K0``fl1faf`faff6f`ag`f3cff`L7`1oc3`1ÿLM0w ??0 p`???@?@3x3x??73 @63 6W} ?gsyw0??0  @60??0  6 ?G9 8? 170 {@3170 {3 ?ϓ>O  py瓟0lffc0l`  p0lffc0l`  p ?!OO>O? f=ffca  8ffca  8 ? O q>g_L f?`m0f?`m? >p8``?????o?>??? |?[<>??~~Ҁ>>?<<1? 9~< |g?0 >? 9&|r~~x|s38px0x? >?? 9~ys3?3 >>?9?N~Y_3?338@8?|H?IL0 |<?0I<<??? <?~89~#Y?? ????9x||~yI0xyx9~ys8y?8xx?<y /yy?~y?s2?3?<89y9y? ~#yY"~yəp3?0<<809?|0񘉓~1?<? =}_@?~<0?<|>~|?<9>|< 9? ?y~yxy ?|9~xx? I?9~y|y ??8>|<?x~|L<<8? L9??? ?<~8~y85rq8rpx8s 0?~y?>??1?31 83ɞ^y?~#99_ ,!c<3?338|2P<3?<<9_ ??? <<8<|?~>8 8>0 ||8?`-Wl@8@8@ `@ @@    `` `8x @ @ |@ 8  88@ 08@  <8 jx||x@ 0 88  88>8  |888 @`}||      0 p u? ???0?????0p???0xwI$?? Da??0x ?p??0xx$H ????0x ???0x`I$???? [\0džx8??p$H??0ǀ8??I$??F??????>08 ??>>?|>0<<?0< | ???x0 ??0`0 ?p?٫p   8?owo}bfbf`f{ffd`f`$ff``=~x$`$f"$"88$8~<=>><>0p969v9Ǽ________________________ "Also a dead Policeman is a good policeman" thought Detective Mortis and he`s done his job as a ghost. It`s really funny !!! FSK18 USA1987 83MINUTES Humour : 5 Points Tension : 3 Points Action : 4 Points ----------------------------------- __Crocodile Dundee II______________ Paul Hogan as Mike Dundee loves Sue and in New York, he`s again fighting against baddies, before he is in Australia. There he does the same thing . . . FSK12 9KzUSA1988 107Minutes Humour : 4 Points Tension : 1 Point Action : 2 Points (Note: I don`t like it!) ----------------------------------- __NOTE: LOOK THE VIDEO PATHFINDER!_ IT`S VERY GOOD !!! Tension : 4 Points Action : 3 Points Pretension : 5 Points ----------------------------------- 983 75MINUTES Humour : 1 Point Tension : 4 Points Action : 2 Points Erotic : 2 Points Pretension : 2 Points ----------------------------------- __Dead Heate-Sound-Quality. Normal Price in Germany: 4000.--DM. ----------------------------------- __D-290-KV_________________________ Fisher presents a new Super-VHS-re- corder with more than 400 lines in- stead of 240. You can also look the old VHS-Cassettes. With HIFI-Quali- ty and a protection for Kids, not to look forbidden Videos. It`s a good thing for people, using a CamCorder:They can get rid of the boring background-voices with the Insert-Cuttingtecnic from Fischer. Normal Price inB Germany: 3000.--DM. ----------------------------------- Hey, Video-Freaks! Yes, I know, the things above are very expensive, but some of you can pay for it. For the others it`s in- teresting to know something about it. If you have some Questions with the Video-recorder or questions about films, write to our mag-adress. I and Frank are Video-Freaks with a good information about Video-recor- ders. ----------------------------------- en- sor with 420000 Dots and a great HIFIy for Points . . .itary- ranks, but who lops off his tongue. FSK12 USA1987 116 MINUTES Humour : 4 Points Tension : 2 Points Action : 2 Points Pretension : 1 Point ----------------------------------- __Stars and Bars___________________ The Title-Song is from Sting. For the joung british Henderson Dores, it`s not easy in the USA. He see the real America. Daniel Day-Lewis stars the stranger in the satiric from Pat O`Connors. FSK12 USA1988 90MINUTES Humour : 4 Poin6@|@( ` ! (0 ?  @? ?@?8 U, `d]` 8 p 8  ? G 0 ? ? ?@ o??   0p ?  I`>fl0p>0 ~?|xpf`` `?@ 0 f`f`?%p?~~?| <`? `pA>1(~? ?|aa! fcf`a&zfcqap<g&߀?l6f`l?>??~``  cfc gvff  ffc ff6c` 3ñ???`'@ ?`? c ggfg`f`P "P "?fffP` xp1`cVVPf`ee`NfbgFV~VPf`ee`~vcgfWTTP@@E@@BDDPwxspw7w;sww{EUUPCPU4UPU"BTURkk~TD EPTPDET@"R@URouo߃s{T PEPUE@&FFDR~06o?of`@+cPS83c;2N339( c` gq` 汁`,`f,` ,`f,` f1 e`E]P  6}`u]P6`003d`T@M@VdFfV dngv`Z\hM@VvfgV0fnw@PTHH@PD@P D?p{k{p{?s0w7?%PBDA@B%UBS E5$7k~{7{o%@BD@EA@B%TRT UD 7so_{{7}w޳ %@@DYPV%TBU`ET& ?7hn?o>?;032+k;)W76 faf`f` p,," p,," 6af`  8`6 3` Fdfee`f 0fvgeg`g DE@ 0wW?363? UU%2U$P" 077x3 UD %BU$@" y 077x3  `D %REl@b x p0?o`s @8 8kP361 Á0`  ?gagf@ ?fac-ā6 ?f`?o``Ã?0af`af`ff`&` ~one&` ~onefaffaf`` @@Es0 w߀`w c`B f$@gf`Es0fkg`eB %ItD@Es07pwǀR %%+W.) To get the source of this program write to our headquarters at Malta. But write only if you want to start using it, coz there are enough lamers who play with my sources. Anyway let's start with the action of all the buttons. First of all the numeric keypad works just like the Cracker Journal style , and this can take you to any page you want. Left mouse = Page down Right mouse = Page up Left Commodore = Page down Right Amiga = Page up Left Alt = 5 ,Xmpages down Right Alt = 5 pages up Left Shift = Go to start Right Shift = Go to end F1 through F5 = Specific pages F6 through F9 = Audio (Channels) F10 = Audio (Master) Caps Lock = LED (A500/2000) Del = Page num On/Off Help = For NTSC users ! Escape = Exit More key functions could be added in the future, hopefully to make the program more user friendly !! I hope that there are not too much bugs and if thLS6ere are, they will be destroyed soon ! ut write only if you want to start using it, coz there are enough lamers who play with my sources. Anyway let's start with the action of all the buttons. First of all the numeric keypad works just like the Cracker Journal style , and this can take you to any page you want. Left mouse = Page down Right mouse = Page up Left Commodore = Page down Right Amiga = Page up Left Alt = 5 WxlI4UPU{07ǀ %$R@U@T$ 076~oW`elEVE@@ME pw߇k?K02?{7ς56nc? g`gp`? fa? ?f6`? 3! ` <<gf <cc <c`` >g1x ???? ; ; ;   $ 0iyWho are your members? We are mainly the members of Ar- cadia, I (Danny) and an Ex-Sun - riders programmer called THE FOG What`s your favorite a)Band b)Game c)Cracker d)Sound-programmer e)gfx programmer f)Demo-creator g)Comp.- language ??? a)We love electronic-bands like New Order, Dep. Mode, Camou - flage and 16Bit. b)Our favourite game is Katakis Zoom and IK+. c)Favourite Cracker, I think is QUARTEX. d)Oh, that`s easy - ShadowLight of AFL. e)The best artist, pr%mmmmh -Sachs designers of Psygnosis. f)Sargon-O.K!At the moment it`s Dexion. g)basic - the joke away - it is Assembler look at the next page to go on!by TORCH. You were members of AFL. But now, you are making a new group, called Sargon. Why? In time of AFL we got the latest AFL-stuff not as fast - or never as other guys who were not mem- bers. Also we got no help from AFL , we only should write new productions. At this time, Alpha Flight was OUT. 2vr$<<<|oc<C88?8 !> " 3N o?! ?" ?!<َo>9#  4M$ ;  w? ?>9<???_?? 5|W\ ?8o ?? ?;w?  {  ? <9< }??~ 6ح>|!?| |?|?|?||?|?? #Z5 ``~f``fgp|f``ff|g`f0|0|0|<|~|`` c`p ggpff`p gff` pf6fc` 2------------------ Oh, I has forgotten to say: Ya can make 8 Text-lines without paying, but for each line more, you will have to pay 1 Disk. I think it is a good thing to make adverts. But before I print `em, I will check it out. I do not print adverts from lamers!!! But I`ll print adverts from loosers and winners. I have nothing against loosers, but I hate lamers . . . ----------------------------------- p76x000>ff6``lffffff4``flhlfLlffff<ff<|f|``|| lf```<`,|00|00ffff.ff<Ll(lfff6|~uXWJ0~pppv3333<``f<x fflx~x``~~x```<nff<fffnfff~~ff4fflhlff``````n<ffff<fff<||```<fjl6||lff<f`,f<~ffffff,fffff,l((lfff.|0`<0000<wLthis wel - come, I`ll say something about the programmers and authors: - loading routine done by CRAIN - sound this time (it`ll change from issue to issue) by CRAIN - All graphix this time by TORCH - Reader letters will be answered by TORCH - Authors named at the end of each article. (TORCH) cLazarus c>5F<?{?;;{?ـw߀oa?<~??~A%A_} 8 ~   >   >  ~ ~  8@ؤ everybody a nice day and good little lies for the police, if they will get you. (SARGON, PLK 073904 C 5060 BGL 2 W-GERMANY) ----------------------------------- Something wonderful has happened !! An ATARI ST has destroyed himself!! All the people around are still wining, coz they must be ashame !!! They had not expected such an in - telligence of the Atari! Listen to the crowd: he he he groehl happyness GREAT! I have/D never seen so many smashed down Amiga-owners! Report from the street: TORCH ----------------------------------- , AFL, THE SQUAD, HUTCH BYTE/NNT, MIRAGE, WARFALCONS and of course to all our con - tacts. Also greetings to our girls: Heidi, Birgit, Janine, Simone & Simone, Kergl Q :A few words to our readers? A :We greet all readers of this mag and if you are interested to contact us , please write us. We wishBg/  9 ? `   ??CwrA??   `?.??0ُ??0ٙ ?>;0>0߀0  ?<?<u EI(((88|pppv333333fwUW~X~~0f8ll9ff90<00000<< <f<<f~uFG0~ 0`~fnvff~8~~``~~~``ll~ ~``~~~``~ff~~<ff<ff<~ff~0 0`0 ~~`0 0`~f||~ff~fff|ff|ff|~f```f~|fffff|~``x``~~``x```~f`nff~fff~fff~~ff~uGEfflxlff````ff~~ffffff~fffff~~ff~```~fffjlv~ff~lff~f`~f~~ffffff~fffff<ff<<fffff~~~ 0`~<00000<`0 < <<~0 |l|llxh|l||l`l|xlllx|`x`||`x``|`ll|ll|ll<uH!#C< l|dlxld````||llll|lll||l|``|ldht|l|hd|`| |0000llll|lll8|(ll8llll| || 0|pppv3333llllllll>X<|0f8l8vv0uIHA 000 0 0f<<f~0~ 0`|f<8<F<`b~<FF<<l ~b`|F<<b`|ff<>F 6f<ff<<ff>F<0 0`0 ~~`0 0`<ff ||6ffff>xlxlff|2```b<xlffff|<b`8`b<<b`xuJ?``@2``nf<fff~fff~~ L8ffllxlf`````b|l|ffffff8lfff6|fflx``8lffjl6xlf~lff20F<<Zffffff<ffff6 lfl88lffff60~ 0b<00000<`0 < <<~0 xv``|fflx2`b< <lvuK=<f~040x0006f>|``lvfffF<``flxlf <~6fff8lf6<vf|``|| |v```0|00x004ffff<ff6 ~<f<8lfff6|>L2|pppv3333lllllluL;ll>X<|0f8l8vv0 000 0 0f<<f~0~ 0`||8<f<``~||<l ~``||<f`|ff<~ <ff<ff<<ff>f<0 0`0 ~~`0 0`<ff ||<ff~fffuM9|ff|ff|<f```f<xlffflx~``x``~~``x```<f`nff<fff~fff~~ff<fflxlff``````~<ffffff<fffff<|ff|```<fffjl6|ff|lff<f`<f<~ffffff<fffff<l88lfff< 0`<00000<`0 < <<~3 uN7x ||``|fff|<```< ||<f~`>60x000>ff>``|ffffff<``flxlfl|ffff<fff<|ff|``|| |f```<`<|00|000ffff>fff<ll8lfff>|~ 0~pppvu9?K3333llll lll><|0fxxvv0 000 0 0f<<f~0~ 0`||8<`<``~||<l ~`||<`|ff<v <ff<ff<<ff6f<06ll6~uPpE"AA" <00000<`0 < <<~0 8<D> <"""|<B@B<<DDD><f~@< 8>BB>| ,2"""DD8 $(0(& 6IIAA\""""<BBB<\""< >DD<\" <@<|< DDDD>BBB$uQ߬CAAII6B$$BBBB>|~~ppp333338888882fxHx88p<88888<<<88~88p~~~888 0`uR]?A0 0`0 ~~`0 0`88888>u S(?8888|d88<<00000<`0 < <8|88880 88888N~u T#o=88888|pppv33338(((882fxHx88p<(((((<<<88~88p~B~888 0`u U';   0 0`0 ~~`0 0`(((((>u D~K((((|8<|<00000<`0 < <8|88880 8(((8 J~uW߿B0`| 88||8|<vv<<vf>88888>x8||88|v|||8888|||8xx|88|8r|ppppp|p8uXm@>><~8x |v|| |v||<vppp~~8x888|nn<x88888|l||v| >||ppppv<~|8lx~8r88uY<>88xxv3333lll""DD>X<|0f8l8vv0 000 0 0f<<f~0~ 0`||(><B<@B~<BB<$D~B@|B<<B@|BB<~B <BB<BB<<BB>B<uO]eG0 0`0 ~~`0 0`<ff ||>AAAAA~AA~AA~>A@@@A>~AAAAA~~@@x@@~~@@x@@@>A@@GA>AAAAAA>DD8BDHPhDB@@@@@@AcUIAAAAaQIECA>AAAAA>~AA~@@@>AAIEC>~EA~DBA>A@>A>AAAAAA>AA""AAAIII6A"r [Z? ?'?? ? ?? ? '?? ? ?? ? '?? ? ?? ?'?x ? ? ?? ?'? ? ? ?? ?'  ?? ?? ? ' r\- ????? ? ' ? ???? ?'  ???? ?' 8 ???? ?' / a ;c  9{Arc y  830!̀ 1`?@ pDb@ p< 8 8p c``~ Z`f`l` ð1a`'l<f<;ٙaa`'vffk|vLff`l~fɀa`'f~~k`f~f/ a ;c  9{Aw<cthing else, then write to: PLK 052706 D 5430 Montabaur Germany NOTE: This adress is only for people who will write to the mag!!! This is not an adress for swappings! We use this special adress to be sure that no letters will be taken by the police! O.K.? If you want to contact me, (not the mag!) then write to my contacts-adr. You can find the way, how to find it in startup-sequence. Well, there is the way, and not the adress! Well, in the last part of trf4Ɇn ? ? ? ? ? ? ? ? ? ? ? ? ?rgj ? ? ? ? ? ? ? ? ? ??  ? ? rhٚM? ? ? ? ?? ????????ri??????@ ???p?????rjG?????? ? ?  ?   ?rkW   ?    ?  ?  ?  ?  ??  ?  ???    ?  rl4  ?    ?    ?    ?    ?    ?  ?  ?? r m[    ??????? ? ? 7 ?7 ????????? ?? ?? r n!4? ? ? ? ?@? ?@? ? ?O? ?  H? ?  H? ? ? 'I?? r o4\? ? 'I?? ? ? 'I?? ? ? 'I?? ? ? 'I?? ? ? 'I?? ? ? 'I?? ? ? 'I?? ? ?'I?? r Zi\5? ?'I??? ?'I??? ?'?I???? ?'? ?? ??? ?'? ?? ?7? ?'? ? ? ?7? ?'? ? ? ?H?+7yMJFqt_ YX]a2ejilprwz~u<>  yLazarus ^q{\<}|{ cgpage36prs~cba`_^]\[Zonmlkjihgfes)t *lPAGE01predI#FORM)lILBMBMHD@@CMAP PPDPPSnh@Z,Z,Z,ZCRNG CRNG CRNG CRNG CRNGCRNGCAMG@BODY(M ? ? ? ?t0fJDEVSGpuvRh@;:9NMLKJIHGFEDUTSRQPOYXWVv0 4 "CHARSETSpuV?D888888lll(~|*(8pxxvv88p8ppp888D88D888888p~~888p||8x8888|<`||<| >|||888||||~|88888888p 0`0 ~~~~`0 wx_6-<dx cpage05pwdB;FORMTEXT0000 CMAP06660F0000000FFC Hello guys! Yeah! This is the first issue of THE NEW PHAZE, a great new Disk-mag. Yes, I know, there are a couple of mags around, but this is great. We don`t want to make a copy of the Cracker Journal! We make something different as the others! I hope, you like this and you will read all issues comeing in future. Now, if you want to want to have all comeing issues, or if you want to write artikles (they`re really wel - come!) or someyәiCpz_2 page06spq|rFORMTEXT0002 CMAP08880F0000000FFF TORCH-INFO Hello, I`m TORCH. I want to say to say to all my contacts and friends, that I`m now a member of Phaze 101. You don`t know Phaze 101? Well, it is the new name of 101-The Maltese Hackers. My adress is the same as before en- tering this famous group. A note to all Ex-64-Contacts of MR. PUNCH: I`ve stopped all with the 64 and if you have an Amiga, too, then write to me. I`ve changed my name in Amiga-scene! A few words to all who don`tq} know me: I`m a programmer in 68000. I do good graphix. These in the mag are not so good, because I do not have enough time to do something better. I can also do good sounds. Oh, if I get originals I can crack most of them. If you want to contact me, look in startup-sequence! We (Phaze 101) are searching for new members all over the world. If you are a sound-master, a graphix- wizard or a good programmer, then, you will have a good chance to be a member. If you are only qFdNa spreader, then list your contacts. They will help you. If you think you are worth to be a member, write to our headquarter in Malta or to my adress. I`m the or - ganizer of German members. All mem- bers together proof if you`re worth to be a member! Look in Startup-Sequence for our a- dresses! (TORCH) of MR. PUNCH: I`ve stopped all with the 64 and if you have an Amiga, too, then write to me. I`ve changed my name in Amiga-scene! A few words to all who don`t~_1.EDS  page07wpz,FORMTEXT0000 CMAP08880F0000000FFF AUSTRIA There are a few good groups in Austria: COSMOS, TSK-CREW, SUBWAY, THE SONIC BLASTERS and a few other cool guys. Yes, everyone asks himself: Who are The Sonic Blasters? Well, the group is in Amiga-Scene since two weeks. We are no crackers, but good pro - grammers, painters and graphix-mas- ters. In fact of this, we will be not so popular as e.g.:Mega Force! But we have as good Demos like M-F. (Notice from TORCH: Send us your Demosz&, we`ll spread `em!) Now the main-part of this article in this wonderful Disk-mag: Today, there are two firms in Aus - tria, who make us a bad live. These are: KaraSoft and Intercomp. These two try to discover as many groups as possible! Then, they in- dict you for damages. This poor guy is not previously convicted. In `91 there comes a new law. Now, some words about copy-parties in Austria: Yes, there are some, but we don`t go to them, because it is not worth to do so. zd look next page =--> ----------------------------------- If you want to write an article about a special country, then write to PLK 052706 D, 5430 Montabaur, GERMANY. (Send the Article). -----------------------------------s in Amiga-Scene since two weeks. We are no crackers, but good pro - grammers, painters and graphix-mas- ters. In fact of this, we will be not so popular as e.g.:Mega Force! But we have as good Demos like M-F. (Notice from TORCH: Send us your Demos_40/w page09p~DGAzFORMTEXT0000 CMAP08880F0000000FFF AUSTRIA side2 And CWT, a member has crushed his car. On the Austrian Copy-parties , there is no hot-stuff. Only for some new Games, we don`t want to drive to Holland or Denmark because it`s too expensive. People who can do special things or who want to swap, should write us. NEW ORDER AUSTRIA IS DEAD BECAUSE OF SOME PROBLEMS WITH MARC, ED! They were us too lame. They send us only shit things like Superman Disk B (before 1 month), but they di^9 +page10p/PFORMTEXT0000 CMAP08880F0000000FFF INTERVIEW This is an interview with SARGON. Sargon are Ex-members of AFL. So is interesting to know why ... The Interview was done by TORCH. You were members of AFL. But now, you are making a new group, called Sargon. Why? In time of AFL we got the latest AFL-stuff not as fast - or never as other guys who were not mem- bers. Also we got no help from AFL , we only should write new productions. At this time, Alpha Flight was OUT. ^7=@?] 4 page11p)FORMTEXT0000 CMAP08880F0000000FFF INTERVIEW Q :What Hardware do you all use ? A :We have got 8 Amiga 500, 1 Amiga 2000, 6 Megabyte, 11 DiskDrives, 4 Printers and 5 C=64/128, 5 VC- 1541 and 2 Printers and we have got samplers and of course many Joysticks. Q :How do you get the Games for the crackings? A :We have an original supplier in this town and we can get some games from our shops, if we give some games to the assistants. Q :What do ya think 7about loosers, lamers, Virus-programmers, Po- lice? (problems with cops?) A :a) Loosers and Lamers are non- human creatures, but I respect them, until they turn into a nerving person. Then, of course he can be lucky, not to be shot down. b)To code a virus shows some- ones abilities in system-pro- gramming, but I hate them (The programmers and Virus). I think it must not be. c)Police? What`s that? They are nerving lam7ers, but they have to do their job and so I res - pect them. Oh yes, we have got troubles with the police, but at the moment, we hope to have a protection against them. Q :How many Contacts? A :Oh, I don`t really know but all together about 70. Look at next page to go on! crackings? A :We have an original supplier in this town and we can get some games from our shops, if we give some games to the assistants. Q :What do ya think ۪Cg;6system-configurationt?Vӫ3FORMTEXT0000 CMAP08880F0000000FFF INTERVIEW / STREET-REPORT Q :Do you have some Greetings ????? A :Oh, yes! Golden Screams to: RED SECTOR, AFL, THE SQUAD, HUTCH BYTE/NNT, MIRAGE, WARFALCONS and of course to all our con - tacts. Also greetings to our girls: Heidi, Birgit, Janine, Simone & Simone, Kergl Q :A few words to our readers? A :We greet all readers of this mag and if you are interested to contact us , please write us. We wishk] 5 f*_,genericK Bgenericg;DEVSp^: xLpage13p]9-)('&%$#654321.CBA>=) page12pWǵ\542CBA@?>=<QPOJID THE NEW PHAZE)p=FORM(ILBMBMHD@@CMAP DPPSnh@Z CRNG CRNG CRNG CRNG CRNGCRNGCAMG@BODY'x `?~|w~"{[74{ cpage48p/YOqponmlkjih}|{zyxwvuts~Y page50p^7"! x page14pO:+FORMTEXT0005 CMAP08880F0000000FFF COMEDY-NEWS __Bye Bye Baby_____________________ The relation of four people is built up by regisseur Oldoini. In this Erotic-comedy stars Brigitte Nielsen, Ex-Stallone. She shows not only the `Bond`-jr. where to go ... FSK16 ITALY1988 90MINUTES Humour : 2 Points Erotic : 3 Points ----------------------------------- __Good Morning, Vietnam____________ Regisseur Barry Levinson shows the life of a radio-speaker, who suppresses wƟith his jokes Military- ranks, but who lops off his tongue. FSK12 USA1987 116 MINUTES Humour : 4 Points Tension : 2 Points Action : 2 Points Pretension : 1 Point ----------------------------------- __Stars and Bars___________________ The Title-Song is from Sting. For the joung british Henderson Dores, it`s not easy in the USA. He see the real America. Daniel Day-Lewis stars the stranger in the satiric from Pat O`Connors. FSK12 USA1988 90MINUTES Humour : 4 PoinTts Tension : 1 Point Action : 1 Point Pretension : 2 Points ----------------------------------- __Party Plane______________________ It`s not like the adverts tells ya because the airline is posessed by a joung lady which loves Erotic surprises. The Pilot and his ste - wardesses are doing the best thing to make a lovely flught . . . FSK18 USA1987 92MINUTES Humour : 4 Points Erotic : 3 Points ----------------------------------- Look at side 16 for the instruction^7 y page15pE@LIBS|p!TrFORMTEXT0005 CMAP08880F0000000FFF HORROR-NEWS __The Brain________________________ The Story plays in a little vil- lage. The people are in panic. It`s called Meadowville-Country.An Alien from Space with a high IQ and it is hungry. This creature takes the horror-message into all houses ... FSK18 USA1988 88MINUTES Tension : 4 Points Action : 2 Points ----------------------------------- __Slaughterhouse___________________ There is a young person, called Alex, who has^3 zpage16[pFORMTEXT0005 CMAP08880F0000000FFF ACTION/THRILLER-NEWS __Black Snake______________________ On the isle San Cristobal, a women leads a slavery government. When a stranger comes who changes it, a revolt of the slaves follows. The Film shows a dominioun with a ex - planation: suppression of sex. FSK18 USA1983 75MINUTES Humour : 1 Point Tension : 4 Points Action : 2 Points Erotic : 2 Points Pretension : 2 Points ----------------------------------- __Dead HeatGQ,+*2PAGE00empp^68 page18p=FORMTEXT0005 CMAP08880F0000000FFF DRAMA/SCIENCE FICTION-NEWS & INFO __Dark Angel_______________________ A girl grows up in Mafia-scene. As the parents were died by Mafia, the godfather helps her. The girl has worked hard to become a good lawyer and to top of a family. FSK16 USA1988 90MINUTES Tension : 3 Points Erotic : 2 Points ----------------------------------- __Star Wars-the Offensive__________ The story:It`s tooo bad to write, USA1988 90INUTES Tension : 4 PoinY<"ts Action : 3 Points ----------------------------------- These are all infos now . . . Here I`ll say you something about the POINTS: If ther`s nothing ( e.g.:Star Wars with no Humour ), there isn`t any - thing about it in Video! 1 Point : hmmmmm, O.K! 2 Points: Yes! It`s O.K.! 3 Points: Oh! Good! 4 Points: Very good! 5 Points: Very Very GREAT! I`ll have to say, that the points are the meanings of the person, who has seen the Video! So it`s possible, that I don`t like a ì,film and you like it . . . If you have some suggestions or something else about the VIDEO PART then write to: MAG/VIDEO-PART PLK 052706 D 5430 MONTABAUR (TORCH)her helps her. The girl has worked hard to become a good lawyer and to top of a family. FSK16 USA1988 90MINUTES Tension : 3 Points Erotic : 2 Points ----------------------------------- __Star Wars-the Offensive__________ The story:It`s tooo bad to write, USA1988 90INUTES Tension : 4 Poin%]      Ez "Gpage17pѣ| FORMTEXT0005 CMAP08880F0000000FFF VIDEO-TECNIC-NEWS __Super VHS Camcorder NV-MS 50 EG__ Panasonic shows as the 1st European a Super-VHS Class Camcorder with nearly the same weight and size as a normally VHS-C- and Video-8-size. It`s used a VHS-C-Cassette with the Super-standart, but by normal speed you can only record 30 minutes. But there are many advantages: A great sharpness in cause of a resolution with 400 lines and a CCD-Recordsen- sor with 420000 Dots and a great HIFINFORMErILBMBMHDCMAP @P DPPSnh@ZCRNG CRNG CRNG CRNG CRNGCRNGCAMGBODYDG?`Z|x`  ]99 /page19 pSFORMTEXT0003 CMAP08880F0000000FFF READER-LETTERS Of course, there are no reader let- ters in this issue, because this is the first. But I want to show ya, that we like meanings, suggestions, questions, etc. from our readers. The negative meanings, too! So, if ya want writing to this part then send your letter to: "Reader-Letter" PLK 052706 D 5430 MONTABAUR GERMANY Don`t forget to write your group - name. Here I have some space for a report about advantages for an ATARI ST: [g And now the Disadvantages: Blah, Blah, Blah, Blah, Blah, Blah, Blah, Blah, Blah, Blah, Blah, Blah, Blah, Blah, Blah, Blah, Blah, Blah, Blah, Blah, Blah, Blah, Blah, Blah, ... So, lamers, I would suggest you the best thing to do: Buy an ATARI ST, because there you will not be dis - criminated as a lamer. Why? Well, All out there in Atari ST scene are lamers! (Note:What for scene? he,he he!)"Gpage17p*FORM9ILBMBMHDCMAP @P DPPSnh@Z CRNG CRNG CRNG CRNG CRNGCRNGCAMGBODY8DZ &^_G lpage08vp^@      >@||@p0`@8  @@ @  @   @ 0@ @ @ IG_aaa,yN3 a`aaaz,yN3 aa9g(9 gr9<:gư<;gg9f<ug<3g<1g4<7gް<5g,<Ugİ<SgȰ<Qg̰<Ogа<Mg԰<Agb<_g<]g<[g<Yg<Wg<?g<=g<sgAnr gQ`K,y2;|, ;|ala:a(aBNu y`P y`D y`8 y`, y yg 3`3rD~@       @0@?? @  ??? @@@? 8  ?|?/???   ???~ ??????VU?????????G???????????????????????????? o????????C_8EDC0 DQpage04pɔbk  m.infop­FORMXILBMBMHD@@CMAP`ppp```PPP@@@000 @0 00@ @P `p@ppPPP0@@000 `0 PPP``` DPPSnh@ZCRNG2!CRNG8)CRNGkJCRNG%`CRNGNyCRNG=CAMG@BODYW H4P  b4P WP :P|  p P` 4P OFORMGILBMBMHDCMAP @P DPPSnh@ZCRNG CRNG CRNG CRNG CRNGCRNGCAMGBODYFi ?0%>`p (~p<@ `` %\E z:page20pEbv0?  8? ` 0> 0~ 30003003 ~ 8000`| ?00300`w ? ?8`100 ~    ? ;  ?  ,  A  0 200 آa,x<901< a11`p! `ó03`3 8ffn@ p300 ffg??0 3`331 f<f<f< ?01 ~f~f~f > }@  f~f~f~? >0k0 1@ 0f`f`f`? > 1@?0 f<f<f<? >1ـ ,000p;6 ?> `0 0 0 p?ff0`? ff<@ ??>0 `f<f<=?8 A`? ~f~f>? 0 f~f~  f`f` f<f< < 0 f`8? 0?@~??` 0<8?0 `'` @  ?@>pa'@@ @ 0A>%  page50.infopN:6̀:```@```` ^``` `!/W`%$`n`;[`UU``@@@@@@ @ `@?@@@@@@@@@@DeluxePaintIII:DPaintFILETYPE=ILBM  GJ X:PAGE03empp3FORMEILBMBMHDCMAP @P DPPSnh@ZCRNG CRNG CRNG CRNG CRNGCRNGCAMGBODYC `͔]8D^page24pY????~ffZfffff~xx|~fx`f```f~2`<fff`fff 0? ?<?<>0 8~?0?xa9 ?SpL  page50       Ez "Gpage17p˔]9baU? page23pa-qFORMTEXT0007 CMAP08880F0000000FFF Info about FISH I have decided to give Infos about Fish, because he was for 7 years the lead-singer of MARILLION. So it is interesting to know what he want to do in future: Since September, he`s been working on a number of projects. He`s been writing and singing with Clannad on a track for their album. He was al- so singing with Mike Oldfield. For his first Solo-album, he worked with Mickey Simmonds, who`s been a session keyboard-player witҔ]?]@page25pιFORMTEXT0007 CMAP08880F0000000FFF MARILLION You wonder why there is so many stuff about Marillion and Fish? Well, in this issue I`m the Music - editor and I`m a great MARILLION- Freak. But in next issue, there is an other editor. He will give infos about Meatloaf and David Bowie. But now let`s start: I will give you no infos about the history of Marillion, because there are many people around, who are not so interested in it. I`ll give you only a short info about the Albums ώPand the music. They have made four Concept-Albums, and many live-albums. These 4 are : Script for a jester`s tear, Fugazi, Mispleaced Childhood and Clutching at Straws. Script ...:A great album, featuring songs from war (Forgotten Sons ) to the seemingly disgusting act of vo- miting (He Knows You Know). For all people who don`t know Marillion at all (like Big Pat! he,he,he) I will suggest to start with this album. Fugazi :Fugazi means ~all fucked up~ and it was used by the amEk2`erican soldiers in Vietnam to discribe bad situationes. The title track is a stirring and complex song. Other tracks deal with failed relation - ships (Jigsaw), ruthlessness in friendship (Assassing), emotional blackmail and uncertainy (Incubus), groupies (She Chameleon) and deal with jealousy (Emerald Lies). Mispl.Ch. :It reached the number 1 and also the tracks Kayleigh and Lavender reached high places (2,5). I would also suggest to buy it, if you`ve never hearedY2 about Maril. . This album contains two tracks: si- de one and side two. look next page cript for a jester`s tear, Fugazi, Mispleaced Childhood and Clutching at Straws. Script ...:A great album, featuring songs from war (Forgotten Sons ) to the seemingly disgusting act of vo- miting (He Knows You Know). For all people who don`t know Marillion at all (like Big Pat! he,he,he) I will suggest to start with this album. Fugazi :Fugazi means ~all fucked up~ and it was used by the amԔ]5R@page26p]d{V^FORMTEXT0007 CMAP08880F0000000FFF MARILLION side 2 Clutching at Straws :This is the last Album with Fish as singer. This album tells the story of Torch a lyricallist,who has problems with drugs and alcohol. In fact, the al- bum tells you, that you don`t have to run away from your problems. The songs Incommunicado and Sugar Mice reached high places. If zou want to have a collection of the most popular tracks, I would suggest you the live double album, called THE THIEVINGה]4<dcD page27p5ēKFORMTEXT0007 CMAP08880F0000000FFF THE WALL / NEW ORDER The Wall is an old Music-film from Pink Floyd, starring Bob Geldof. It`s a very interesting film. It is telling the story about Pink. He is a person who disguicse his feelings He moves back in his dreams. In his dreams, he is building up his own ~dream-world~. He built up a Wall. In his dreams he is thinking about war and the authorities. The film contains great graphix- animationes. The music, written by Pink-Floyd, 4>!is billiant released together with the pictures. You must not be a Pink-Floyd-Fan to look the film and to like it! (FRANK) ----------------------------------- Now, here a short info of the past from New Order: New Order is the third name of the band. Their Ex-Singer Ian Curtis - the early fans have never forgotten this tragic happening - 1980,he was died by suicide. The band changed their name in 1978 from Warsaw into Joy Division and in 1980 into NEW - ORDER. J@Todays leaders : Peter Hook, Bass, Steven Morris, Drums, Ber - nard Albrecht, guitar, singer and Gillian Gilbert, Keyboard. (FRANK) ----------------------------------- a person who disguicse his feelings He moves back in his dreams. In his dreams, he is building up his own ~dream-world~. He built up a Wall. In his dreams he is thinking about war and the authorities. The film contains great graphix- animationes. The music, written by Pink-Floyd, cqFORMTEXT0007 CMAP08880F0000000FFF Quiz Now, a little quiz for all readers: Here are a couple of questions. If you answer them right and you`re in the first 5 reaching us, you`ll win a CD (from Pink Floyd). These CD`s given us by my friend, who works in a local music-shop. 1st: Who is the singer of GENISIS` album, called TRESPASS? 2nd: Queen brought out an album , named exactly like the Sience - Fiction-Film? 3rd: What`s the name of U2`s fourth track on side2 of [YXWVUTH ' Xpage31p ڔ\&SRgfe`_^r8 9%page30pr|5FORM$ILBMBMHD@@CMAP PPDPPSnh@ZCRNG CRNG CRNG CRNG CRNGCRNGCAMG@BODY??     % 9 page30.infoBpFml  fGREETZempp*(*FORMTEXT0000 CMAP06660F0000000FFC How to use this program. Since this is the first issue , we should give some details about this program, with which you are enjoying this new disk-mag. I must admit that I DID keep in mind the functions of other disk-mags available, but I did not lift the code. Come on, there is no harm in taking a couple of ideas from some of our best friends ?? This program was written with Txed and assembled with Devpak !! (I hate Seka coz the editor is SLO:6̀:```@```` ^``` `!/W`%$`n`;[`UU``@@@@@@ @ `@?@@@@@@@@@@DeluxePaintIII:DPaintFILETYPE=ILBMp\; ppage33pCϪSFORM@ILBMBMHDCMAPDPPSnh@ZCRNG CRNG CRNG CRNG CRNGCRNGCAMGBODY'f8~<~f` lfZfff<lf8><f`f~fkfvffx|fkffff2`lf6fffflfff<6 <<;<< ;~>~<~ <~8@8fZflff@pff`A >8||xC? lf`O >fflffC ~<<8C G @ #`'+? #' @ @@#G?$C c#Ce`$>Ci 8`ぃ#C q  aFf00 `q1G? Db>`ya G f`0  O/>C 8 c`0` 0G C 8x!C"C `8G~C:G>&C C% C&CC 0G0'A 0 A q'A0A  0@C y#A? 0  @>A a30` @A?01# 09 *A01 0c`Cacd >C?8!A  #A?A 7 A    Ck|#C` =1A`A70|=A8`"AZ`"0C`"HC? 8A0 A! pA A C!0@8#`<A#8C!D 0|C 00,? `03 `@|>|0 00 00@ `@1xx@?O@  @H@|x@ T<@ D`?D ` D| `8 @(X @F @A @@~| @ @@~| @A @F  @X % ( page31.infop:6̀:```@```` ^``` `!/W`%$`n`;[`UU``@@@@@@ @ `@?@@@@@@@@@@DeluxePaintIII:DPaintFILETYPE=ILBMp\>[Z" a7page32pZW4FORMTEXT0000 CMAP08880F0000000FFF HARDWARE-NEWS __AMIGA-BTX________________________ Commodore sells a new BTX-DECODER for Amiga 500/1000/2000/2500UX. You can save and load pages in IFF format. Off-line-showing in a very high speed. Getting Text-informa- tiones to disk or printer, and you can call Software. It is given you the BTX-module, and an Instruction. It is very good, that you can work with the mouse-pointer on pages! __A590_____________________________ It` a new autoXB=\ Opage70p/FORMTEXT0000 CMAP08880F0000000FFF INFO / INSTRUCTION In the next issue, there is an ins- truction, how to make a 2nd Floppy yourself, news and a special report about the new A2620. So long, MOPO ----------------------------------- Now the instruction for a Hardware- window: 1st: Get an ATARI ST with an ATARI- Screen. 2nd: Clean the Screen. 3rd: Go to the garage. 4th: Search for a hammer and Screw- driver. 5th: Take the two things. 6th: Go back to the ATGϒARI. 7th: Put screwdriver in one and the hammer in the other. 8th: Set the top of Screwdriver on Atari-Screen. 9th: Smash the hammer on other side of screwdriver. 10th: Be very careful, not to make your table dirty! 11th: Try to make a square on the screen. 12th: Enjoy your work. 13th: Don`t forget to take back the tools, you`ve used. And the result is: -ATARI shit -A wining ATARI-owner -You know, that you are stupid, because you read this shit !ARN!! CIAO!8880F0000000FFF INFO / INSTRUCTION In the next issue, there is an ins- truction, how to make a 2nd Floppy yourself, news and a special report about the new A2620. So long, MOPO ----------------------------------- Now the instruction for a Hardware- window: 1st: Get an ATARI ST with an ATARI- Screen. 2nd: Clean the Screen. 3rd: Go to the garage. 4th: Search for a hammer and Screw- driver. 5th: Take the two things. 6th: Go back to the AT_FORMTEXT0001 CMAP08880F0000000FFF FLOPPY-PROGRAMMING 1 The Bitmap-Block shows you, which Blocks on Disk are not used and who are used. At $1a4, it is shown the date of the last change. It`s shown by the days after the 01.01.1978. The next shows the time. The hours are shown in minutes. In $1b0, there is the Diskname as a BCPL-string. It shows the following things: The ASCII-codes begin from $1b1,and in $1b0, the length of the name is shown. In $1e4, there is the info , when theX8 "page72pX> \ Fpage71p  5=lE ICON.LIBRARYqiC )<pNuJ! F+Hicon.libraryicon 33.127 (22 Jul 1986) .XHD ,:HV !+dos.libraryRn  NupSn f .gaNuJn f4/.*"Npr0.2.Ё/,n"N.,_"N Q"i"!I `pNupNu/ $@%H*%N"Cz <!N%@&fH.< ,xNL`p`#"#&¸ ;P`} `@@ `x@``@`@`xpP`@`x} `@@`@@`@@} ``@P`@} `@`@} `@ `@@`@@} `p@P@@ `P`x `@`@ `@EiFORMTEXT0001 CMAP08880F0000000FFF FLOPPY-PROGRAMMING 1 Now the next Block: The File-List- Block has a primary type of $10 and a secundary type of -$03. It con- tains a list of all from the File used Blocks and gets in Action, if the file contains more Blocks than marked in the File-Header. The 6th Longword is again the Checksum, 2nd the pointer of the 1st Block in the table. In the 3rd, Dos shows, how many Blocks there are in the table. The normallt table is from $018 to $3134. From $1f8, there is the poin- ter eventually of the next FileList Block, if there isn`t enough space in only one to list all Blocks of 1 File. If not, the pointer contains $00000 000. The next pointer is on $1f4 it shows the Block-number of the File- Header-Block. The easiest Block type is the Data- Block (Primary:$08, no secundary) . It contains only the Checksum,and a pointer to the File Header,the num- ber of the Block, a pointer to the number of the next Data-Block and \Tthe number of Bytes in this Block. The datas begin from $018. How can the Dos use Subdirs? Well , with User-Directory-Blocks.It leans on the Root and File Header. The primary and secundary type is $ 02. The Hash table is taken from the Root-Block. Well, and there are the Longwords which shows the Block Number, the Checksum, Protect-Bits, the Comment, the releasing date but you know that. That will do for now. Next time you learn something about the last type called Bitmap-Block a[8% J'page40px)FORMTEXT0001 CMAP08880F0000000FFF ASSEMBLER 1 Try to learn,how to change from one system to another!! Now, the structure of the Amiga. It is a very clever machiene. That is caused by the Custom-Chips, that`re working `together` with the proces- sor. They are called Agnus, Denise, Paula. Agnus, also called Blitter, is used most time to move memory, which is useful for fast Animatio - nes. Denise is used for Screen out- put and Paula for out/input, e.g. : Sound or Disk. These Chips are used with adresses from $DFF000. They`re called Hard - ware register. To make the program- ming easier, there are librarys on Kickstart and Workbench with ser - vice-prgs. . Some adresses: $000000-$07FFFF: 512KByte RAM $080000-$1FFFFF: reserved $200000-$9FFFFF: 1MByte FAST-RAM $A00000-$BEFFFF: reserved $BFD000-$BFDF00: PIA B $BFE001-$BFEf01: PIA A $C00000-$DFEFFF: reserved $DFF000-$DFFFFF: Hardware register $E00000-$E7FFFF: reserved $E80000-$EFFFFF: Adresses Expansion $F000K3&00-$F7FFFF: reserved $F80000-$FFFFFF: system-rom The Custom-Chips can only use the first 512K RAM (Chip-Ram). Now, you`ve learned enough for to - day. In the next issue, you learn something about Multitasking and special things about MC68000:regis- ter and one of the most important command: move. (TORCH) time to move memory, which is useful for fast Animatio - nes. Denise is used for Screen out- put and Paula for out/input, e.g. : Sound or Disk. These Chip[;R8 f3page41p*ًFORMTEXT0002 CMAP08880F0000000FFF IN THE GULLET OF THE THREEKILLER "Shit, Gospodin, this is the hell! She can`t be nastier!" Orgenkin looked in the deepness, which has changed. The grey stones has become a glowing red, the Devil`s eye, in which it is beeing roaring. It looks like a jelly mass with a darker center, where it is steaming and twitching. But the 3 soldiers are not in trouble. They are from a special Elite-army, with order to overfly a special place in Kauka,ksus where inexplicable things happened. The autorities doesn`t know much. You were dependent on depositiones. Many people were afraid. They said, that there is a way to hell, or to annother world. As the KGB heared from this happening, the leader of this special part of KGB in Moskau, ordered three men to fly to Kauka - sus. Now, they were on the flight. The helicopter was small and fast. Or - genkin and Tarbow looked at differ- ent sides down to the ground. It looked like manށy vulcanos, but the men wondered, why there is no smoke comeing up. Jawalkow, the pi- lot was the leader of the three men. He was going to fly deeper. Slow was the helicopter comeing down to the center and there was no smoke. The people said, that a big munster came out from the ground, with three heads, but now, there was nothing to see about it. "I can`t see anything!",Tarbow said "no munsters and no faces!". But they all were wondering about the low temperature. 20 metmo(res over the ground, over the vulcano and the temperature was the same, as in Mos- kau. look next page ... Many people were afraid. They said, that there is a way to hell, or to annother world. As the KGB heared from this happening, the leader of this special part of KGB in Moskau, ordered three men to fly to Kauka - sus. Now, they were on the flight. The helicopter was small and fast. Or - genkin and Tarbow looked at differ- ent sides down to the ground. It looked like mancFORMTEXT0002 CMAP08880F0000000FFF IN THE GULLET OF THE THREEKILLER Over the three men the rotor, under the men the glowing mass ... Tarbow saw it first. He said "Hey ! Here`s something!". "Where?" "In the Center!" The men looked. It was exactly like some seconds before,but then,a mys- tery creature was under the mass. "There is someone!", Orgenkin said and normally, the two had laughed , but now it`s dangerous for them. Then, all saw this munster: It was big and tall and it has . =.... three heads! One was the head of a ratt , one of a crocodile and one ... one was the head of a human-creature!!! Jawalkow was the only one, who kept cool. He took photos of the crea - ture. After the Film was full, they wanted to fly back, but .. but they can`t do it. Like a magic wizard, the pilot can`t steer the copter. The men can`t do anything. The ma - chiene was flieing nearer and nea - rer to the ground. The creature was swimming over the top of the mass . The mouthez101 - THE MALTESE HACKERS GREETZLIST SATURDAY 4TH MARCH IN NO RANKING ORDER GROUP NAME - CODENAME OF OUR CONTACT TORCH - NEW MEMBER AAI - THE FED HCC - DAVE JOHN BALASKAS * TAS/FREEDOM FORCE (NORWAY) - THE ANCESTOR,HATTRICK AVENGER - DANIEL ANC - DR.WHO DDD/DEXION - PET DEXION - THE POACHER,MR. MEGA MIND ACES - DOCTOR SOFT IT - BURGLAR, JILSOFT THE SUPPLY TEAM - HAGAR SHADOW SECTOR - IAN ALPHA FLIGHT - FRANKIE DOUBLE TEAM LEVEL 4/AFL - SPZ,JPN ELITE - YOGA* DARKSIDE SGT. PEPPER CRhqes were wide opened. Only two meters, then ... The men thought, how they could be come away from the munster. "We can swim to the Hills!",Orgen- kin suggested. "We have ground-contact!",Jawalkow cried. "Let`s swim!" Tarbow replied. He`s jumped into the liquid and all the three guys wanted to swim away from the Devil. It has taken only a short time,then d normally, the two had laughed , but now it`s dangerous for them. Then, all saw this munster: It was big and tall and it has .[6n Lpage43p .@IONICS - CHANGO* THE ENEMIES BLASTERS INC. - FOXBYTE,RUS ZOD (GB) NORTHERN LIGHT/LINK - RASTAN BAMIGA SECTOR ONE - LION MEGA BRAINS - BABY KILLER THE JUNGLE COMAND - JOHN DDT - WRAITH DISKNET - FALCON ODYSSEY - CYRUS GERMAN DYNAMITE - THE PINCHER SILVER HAWKS/NEMESIS/GOONIES - PREDATOR BUGHUNTERS - COPPER HEAD THE WEB INC. - NIGHT RIDER DRI - THE MOSTKEN SPQR CREATORS - MR. MONITOR SYSTEM 2 - LORD X* FIRST WAVE - EQUALISER FREEDOM FORCE/SUNRIDERS - CRAYONE, CHEVY SIMON & SIMON INC. -lz MR. M BLAZE - KWK BOULE D'OR - GFS MACRO EARMAX RAZOR 1911 - REX ELEMENTS OF CRIME CRITTERS - MR. C CALIFORNIAN BEACH BOYS - MAZE CHAMPION STATIC - SONY NORWEGIAN LIGHT FORCE - ICE MICRO MISSION ANTRAX - JOESH LORDS OF CONQUEST - ANTHRAX XMEN - THE MAN * RASTAN DARSTAR SECRET FORCE DIGITECH/IBB/THE KNIGHT HAWKS - WARLORD*,JENKO AMIGA FORCE EPSILON DESIGNS/WINGS OF TOMORROW - GARRISON THE CULPRITS ALIENSOFT NEUTRAL ZONE CRACKERS - TIGER SHARK SCOTLAND YARD FLASH ATTRIUM - THE CORPORA  [<LK  }~page42p K6aFORMTEXT0002 CMAP08880F0000000FFF IN THE GULLET OF THE THREEKILLER the crocodile-head attacked the man who left the helicopter. The rep - tile bites him first in his arm,and then, in the shoulder. Tarbow cried as never before in his life. Tarbow was in panic,he thought,that Gospodin works together with this creature. He smashes him down with a hard hit. The pilot gets blue and opened his mouth, cried and fell at the bottom of the helicopter. Tarkow thought, that he could make i X:Hs page73pprvFORMTEXT0005 CMAP08880F0000000FFF Yet another disk-mag ? It is true that some people might see this new disk-mag as another one on the pile of ever increasing Amiga disk-magazines.Someone had suggested that there should be only a few disk mags, each specialising in different topics !! It would certainly put end to hot arguments among some groups , but it would also mean that the user has a limited choice. ( Or rather no choice at all !! ) Certainly quality would improve , but ideH0Eeqonmihg|{zyxwvutsr~} 54105 MUZAKr.songp6IYFORMTEXT0002 CMAP08880F0000000FFF IN THE GULLET OF THE THREEKILLER contacts with his husband from the devil-world. Golenkow became a very mystery face. He was shocked! He`s not enough time to wait for John he will have to begin now! "I will come at once!", Golenkow said at the phone. "Is my husband dead?" she cried. Golenkow hang on the phone and ran to his car. After a twenty minute drive, he re- ached a small village. Here, Orgen- kin lived. As he left his car, it`s cold. Co]lder than in Moskau. The children stopped playing and it looks like a reaction, that the stranger brings the devil with him. He knocks at the door, and a small, tall and young lady opened the door and said nothing. She shows him to come in. It was a large house, with most of the walls made by wood. "Come with me!" she said. Golenkow followed the lady. She was gone to the 2nd floor and stopped before a door. "Here is a bath. My husband built it himself. He finnished three da4'Nys before. Come in!" As I entered it, I was surprised, because I never thought,that a bath could be so big. But all seemed to be normally. "Well, i can`t see something spe - cial here!" "Look behind the door of the bath- mirrow!" she said. As I had done so, I saw a hole. It was black and a wind came out. "Through this hole, I have spoken with my husband! He is dead!" ..read the next part in next issue!a small village. Here, Orgen- kin lived. As he left his car, it`s cold. Co"X6q(&#" Qpage74p-as, opinions, etc. would be restricted too. We do NOT intend to set up debates such as those which appeared in Cracker J vs Bad Tongue but this just proves that there are different opinions being expressed. Personally I think that all those nasty things which were said in open letters in both disk-mags , actually did lot of good to both sides, becoz this made them more conscious that they must keep high standards of the mags. But both sides could have been more careful in the- choice of words to express their opinions ! It would be impossible to please everyone coz there are always people who are hard to please , no matter what you do !! But the great positive responses we had from our contacts when we spread the rumour that another disk-mag was going to hit the scenes made us feel that there must be a place for yet another disk-mag. So we really hope that you'll like this new production , and wish that our efforts were not made in vain !! Let's hLp3)fkeymapst$g~ tˊdrg{usa0r,*@L.=6EGAAAAAAAAAAAAAAA@~`!1@2#3$4%5޶^6&7*8(9)0߭_-+=|\00QqWwEeRrTtYyUuIiOoPp{[}]112233AaSsDdFfGgHhJjKkLl:;"'445566ZzXxCcVvBbNnMm<,>.?/..778899  蝁FORMTEXT0001 CMAP08880F0000000FFF FLOPPY-PROGRAMMING 1 Today, Disk-Drives are used by every Computer-user, but they don`t think about, how it works. In this course you learn all about Formats, Hardware-programming and Copy-pro - tectiones. In this first part, you will learn the Structure of a Disk. Let`s start: An Amiga-Disk contains of a Magnetic-Disc, which is divi - ded into two parts: Tracks and Sec- tors. Track: Circles with different ra - dius around the center of the D HsBisc. Sector: Parts, one after annother on each track. An Amiga-Floppy writes on top and buttom of the Disk. So, there are 2 Tracks with the same radius. These 2 Tracks are called one Cy - linder. In the Disk-Drive, there are two R/ W-heads. One is called 0 (Top) and the other 1 (Buttom). With the standard AmigaDos-format, there are 80 Zylinders (0-79), so, there are 120 Tracks (0-119). Each track has 11 Sectors, each Sector stores 512 Byte. So, we follow: 80 * 2 * 11 * 512 b^^]\[ZY ram-handler! kU ##$#(,y#N(@Jga , 0H0EG, @pB0& 9$ y(C ! RB)g\  g  g& "ggB  g`B`g0 "g *f  Ng nfr ` Eg efr`BB <(FL Hy,/N#N,##Np.yNuaa# /B$@ *$g,y @"(N"* g($<N###g @)hNp` /.y/,y 9Bgmytԉ#B&#p8lBX%B\Bpx#Dt`"*\ҩpBRp")tpl$*\v!(Bhp|(j8N$)l!(r#Apt #Bt`")lҩpBRp")tpl$)l!DOS( t"p|(jNp|(jN#Ap`")p <IN&*l$")p <(jN`N")p <ITN&*l$")p <(jN`$")p$$0("0 <I tN&*l$")p <(jN`")p$$0("0 <IN&*l$")p <(jN`")p$&((0H &08$0("0 <IN&*l$")p <(jN`v")p!'%$!ddisk-validator *X9NM*\ page75p$Q('mGD$ #Bv0֪(H "*XW%A%j&*XS%CB"*p(jxNBB#j `rF$*ԩ!(R") lt "*p(jNJg6rF#At #B "*p(jN$) ")$*Ԫ!($*"*p(j$N$*"*p(jN#A$*"*p(jNҩ%A`J$< rp(j(N"*@&)$0(GP" p(jNJf"p(jNrp(j N"*@Jg"p(jNB#j#j `$)"*p(j0N#A$)"*p (j0N#AgJf$)G`" p$(j8N$)"*#i&FORMTEXT0001 CMAP08880F0000000FFF FLOPPY-PROGRAMMING 1 The secont Longword is the Checksum and the next 4 Bytes contains the number of the Root-Block. After the 4th longword, an Assemb - ler Prg is stored in the Bootblock. If there is no Assembler-programm , you cant boot from the Disk. The command Install writes a short Prg in the BB, which allows to boot from the installed disk. The most important Block on a Disk is the Root-Block. Here, the com - plete Disk-structure is base&.x"d. The RootBlock is allways at Zylinder 40 Head 0, Sector 0 (880). In all fol- lowing Block-types, the structure is nearly the same. To mark a block, the first and the last long-word is used, the primary and secundary type. The Root-Block has a primary type of $00000002 and a secundary type of $00000001. So , the Dos see, that this is a Root-B. The following two Longwords have no Function. The fourth shows,how long the Hash-Table is, which is discri- bed later. It has allways th%up$(j$NR$*")p$(j(N`"*Ҫp$(j,Nr#A#j`2"*ҩJg"*ҩ$0"*p,(j$NR")l$*ԪJ(g$*Ԫ"*$0(p$(j$Nr%A`n"*Ҫp$(j,NB"*ҪJg""*Ҫ$0"*p,(j$Nr%A"*#p J g"* l#A ") $*R#B$#j(`B"*ҩ$$0"*p8(j$N"*ҩ$$0"*p8(j$NRRR$")($l$*Ԫ#p(JgJ$)"*p0(j$N$)"*p0(j$NR$*")p0(j(N$)"*p0IN``<$)G'hl" p$(j8N`$$)"*p$I8Ntgvg`$*"*p$(jN#A$*"*p((jNҩgG" p$(j4NR") lBJf&rp(j NN in drive XReplace volume is invalid- not directory or filebitmap checksum error#Bt ")p(jN$*&)#Ax#D t "p(jN$) #B ")m o$)G" p(j8N"ҩ$) İJfr`r`Nis out of range`f$)G" p(j8N`d"ҪJl$)"pILN`B$)"pIN`0$)G" (+\e worth 72 ($00000048). The next field is not used. The following shows the Checksum of the whole Root-B. Is it not correct, you will have an error message, called Key 880 Checksum - error. This sum is so discribed: All 128 Longwords added with $00000 000. Then you must subtract all the longwords, not this of the Checksum of course! After Position $018, there is a 72 Longwords containing Hash-Table. In the next Position ($138) there is a Flag, which shows, if the Bitmap-B. is sȚp(j8N`""0tgvg`N- bad block type- unexpected data block&*ցx8f*JgG|" p(j8N`r%Ar`@"$)fJfJ f Jg$)G" p(j8NrNNq- second root block- bad directory&勴8fJ8g*(*؁*0H8g$)G@" p(j8NrN - bad header&x8f**ځ|Xf 8g$)G@" p(j8NrN- bad extensionp0(j$NR$*")p0(j(N$)"*p0IN``<$)G(Zvalid. look next page to go on ... 40 Head 0, Sector 0 (880). In all fol- lowing Block-types, the structure is nearly the same. To mark a block, the first and the last long-word is used, the primary and secundary type. The Root-Block has a primary type of $00000002 and a secundary type of $00000001. So , the Dos see, that this is a Root-B. The following two Longwords have no Function. The fourth shows,how long the Hash-Table is, which is discri- bed later. It has allways th),X,/.-, page76p MöFORMTEXT0001 CMAP08880F0000000FFF FLOPPY-PROGRAMMING 1 The Bitmap-Block shows you, which Blocks on Disk are not used and who are used. At $1a4, it is shown the date of the last change. It`s shown by the days after the 01.01.1978. The next shows the time. The hours are shown in minutes. In $1b0, there is the Diskname as a BCPL-string. It shows the following things: The ASCII-codes begin from $1b1,and in $1b0, the length of the name is shown. In $1e4, there is the info , when the+8]7T;:8 Rpage21p)-DFORMTEXT0001 CMAP08880F0000000FFF FLOPPY-PROGRAMMING 1 Now the next Block: The File-List- Block has a primary type of $10 and a secundary type of -$03. It con- tains a list of all from the File used Blocks and gets in Action, if the file contains more Blocks than marked in the File-Header. The 6th Longword is again the Checksum, 2nd the pointer of the 1st Block in the table. In the 3rd, Dos shows, how many Blocks there are in the table. The normallt table is from $018 to $).3?134. From $1f8, there is the poin- ter eventually of the next FileList Block, if there isn`t enough space in only one to list all Blocks of 1 File. If not, the pointer contains $00000 000. The next pointer is on $1f4 it shows the Block-number of the File- Header-Block. The easiest Block type is the Data- Block (Primary:$08, no secundary) . It contains only the Checksum,and a pointer to the File Header,the num- ber of the Block, a pointer to the number of the next Data-Block and )/Rthe number of Bytes in this Block. The datas begin from $018. How can the Dos use Subdirs? Well , with User-Directory-Blocks.It leans on the Root and File Header. The primary and secundary type is $ 02. The Hash table is taken from the Root-Block. Well, and there are the Longwords which shows the Block Number, the Checksum, Protect-Bits, the Comment, the releasing date but you know that. That will do for now. Next time you learn something about the last type called Bitmap-Block a),Dfnd the working in a Disk Station. (TORCH)ually of the next FileList Block, if there isn`t enough space in only one to list all Blocks of 1 File. If not, the pointer contains $00000 000. The next pointer is on $1f4 it shows the Block-number of the File- Header-Block. The easiest Block type is the Data- Block (Primary:$08, no secundary) . It contains only the Checksum,and a pointer to the File Header,the num- ber of the Block, a pointer to the number of the next Data-Block and 1"torchst-01:funkbass Z@st-01:hallbrass\@st-01:strings2@nst-01:bassdrum2@st-01:popsnare2@st-01:hihat2@st-02:plate2x4w  o@`@`@` `P`@ `@ `@``@`@`pP`P` `@`@`@`x `P` `@ `23[<73 _page49p27o FORMTEXT0000 CMAP08880F0000000FFF ADVERTS This page is used for adverts. They are costing nothing! Well, at the moment there is only one advert , coz this is the first issue. If ya want to make an advert, write to: ADVERTS PLK 052706 D 5430 Montabaur W-Germany ----------------------------------- NOBLE STAR is searching for GOOD!! contacts all around the world. Write to: BOX 3332 123 Rvik ICELAND Greetz to all my contacts -----------------58Ux@``@`@`xpP`@`x@ `@@`@@`@@@ ``@P`@ `@`@`@`@@ `@@` p@P@`P`x `@`@ `@` `P`M@ `@ `@``@pP`P`p}P} `@`@`@``P`@ `@`@ `@ `@`@ `pP} `P`@ `@`@@ `@`x@ `6+BA@?>=<;PONMLKJIHGF[ZYXWVUTSRQfedcba`_^]\qp7=];8=  opage22p+:<тNFORMTEXT0000 CMAP08880F0000000FFF INTERVIEW 1 In the next issue, we will make an interview with Fish and MARILLION , but this time, we has made one with a non-popular group: The Stranglers We decided to interview them, coz they bring out a new album this year. For all readers, who don`t know the Stranglers. Who are the band leads, and what do they do? The Stranglers are: J.J. Burnel (I) Jet Black, Dave Greenfield and Hugh Cornwell. We are busy working, com- pleting our 1st9Au?A startup-sequence+;  LP in nearly three years, which is in fact our 10th studio-album. We are sometimes augmented by three brass players for live work. You have some known songs like "BIG IN AMERICA" or your single from `87 called "ALL DAY AND ALL NIGHT". What are your plans at the moment? Once, when we have completed our LP we`ll make a tour around the world later this year. What do ya think about interviews ? Has anyone of the band-members a Computer? Interviews depend on the intelli - gen+Kce of those posing the questions and also what side of the bed the interview got up from. Yes, we have all computers, but Dave Greenfield is the one who makes love to it. look next page to go on . . .terview them, coz they bring out a new album this year. For all readers, who don`t know the Stranglers. Who are the band leads, and what do they do? The Stranglers are: J.J. Burnel (I) Jet Black, Dave Greenfield and Hugh Cornwell. We are busy working, com- pleting our 1st<?Y9? page65p78МFORMTEXT0000 CMAP08880F0000000FFF INTERVIEW 1 INFO How do ya record songs . . . . . .. There are many ways of making re - cords as there are days in a year. There is only one rule: THERE IS NO RULE. This short interview was done by TORCH. All questions were answered by J.J.Burnel. ----------------------------------- Here I have some space for a short info: I have the following interviews and answers ready for the following is- sues: - MARILLION - FISH - J. M. Jearre - Dav>@Y?@ page66p<Χ6FORMTEXT0001 CMAP08880F0000000FFF ASSEMBLER 1 Why Assembler? Well, this question is easy to be answered: It is the fastest computer-language, you can programm things with it, that you can`t programm with other languages like Basic or C. For example - you can program the Sound-Chip direct!! And it`s EASY to learn. Let`s start with a look in memory : RAM: Random Access Memory. Here you can read and write dates. The RAM keep the dates, you`ve given to him and the dates are lost>AFORMTEXT0001 CMAP08880F0000000FFF ASSEMBLER 1 In a 512 KByte big Amiga, there are 4194304 Bits. So, ya have 2^4194304 different ways. To programm an MC68000-Prozessor ya must know two other types. These`re words (16Bit) and longwords (32Bit= 2words). In one word, you can store a number from 0 to 65535,in a long- word from 0 to 4294967295. With these high numbers, the 68000 can work with one order. Sometimes, ya need negative numbers You can do this, when you give Bit 15 the Infor9"THE NEW PHAZE" My adress: TORCH PLK 052701 D 5430 MONTABAUR W-Germany Note: I`m searching for many contacts all over the world !!! 9 ?SpBH\:76H 9$page37pD,]-FORMTEXT0003 CMAP08880F0000000FFF HELP! O.K.! A new Disk-mag is there on your screen. I think it is really good for the first one. But I need some help of all readers because I`m only one! person, wri - ting most of the pages (there are 100!). So, if you will write an article or if ya want to work with me together in every issue, you are really wel- come! It`s a problem to make a mag with a few writers, and one who must write about 80 pages. So, we want to become a popular magEjn7 and we don`t want to make a copy of CJ or Bad Tongue! We want to make something new, as you can see: Video, Music, Hardware, Games, in - terviews, interesting articles, ... If you think, the first issue isn`t so good, give us some hints, we`ll try to do better in next issue. Our mag-adress: "THE NEW PHAZE" PLK 052706 D 5430 MONTABAUR W-GERMANY HELP US TO BECOME A POPULAR, GREAT DISK-MAG!!! TORCH ----------------------------------- here is space ... Here is space ... H`$5pFORMTEXT0003 CMAP08880F0000000FFF VENLO Normally, I do not want to write about a monthly copy-party,but here it has happened something funny: There was a guy, who entered with a Monitor and an Amiga500. I was gone to him, and looked in his Disk-list and as I wanted to copy 2 of them , he said, that I can do it. Well, I got my 2nd Disk-Drive and put it on his computer. After I had finnished to copy these two disks, I wanted to go. But the guy said to me, that I can copy so lonJ7L\O{     %$#"! 0/.-,+*)('&VUTSRQPONLh<  page29pF::BRFORMTEXT0005 CMAP08880F0000000FFF The Story about a lamer . . . Hey, I will write a story about a lamer who is a hobby-operator. One day, by my friends, who`s an o- perator, too, I heared two people talking together about Amiga. After a few minutes, I checked, that one of `em is a 64-user and the other , who is talking bullshit, an amiga - user. I said to the amiga-lamer, that I want to have him as a new contact . O.K., he said to me his original - adress, and on next day, I JNYFORMh4ILBMBMHDCMAPа@РDPPSnh`"ZCRNG CRNG4NxCRNG9JCRNGCRNGNyCRNG=CAMGBODYg <? `!F#0@ #`8aX  0 c MW%϶W   page29.infopJO{,X?3  Lcp,tk#c` +p80s  ca`+!00c@  :@p,bA!00c `! \kp1 ,<A0 c 0;1`p @  ~JP)??????????????????????JQ%3????????????????0??JR)???? ?f<??̟?fg 33` ff<̟? ??g330fp<??Ǚ0f8f?Ǚ̜?g JSC3c0?f~̜? ̟??fg<33`?ff̟??<??<><???<????????JT4W??8?0??8?ܟ:&ּ:```@```` ^``` `!/W`%$`n`;[`UU``@@@@@@ @ `@?@@@@@@@@@@DeluxePaintIII:DPaintFILETYPE=ILBMpX^[3^  page45pY Z[,Z2 page44pY`UFORM*ILBMBMHD@CMAP аDPPSnh`"ZCRNG CRNG4NxCRNG9JCRNGCRNGNyCRNG=CAMG@BODY px>|8 fF 0 ٌC1 0p q8γ0: !$1 5H`, \b|8p![\%R\ k page44.infop[G:&ּ:```@```` ^``` `!/W`%$`n`;[`UU``@@@@@@ @ `@?@@@@@@@@@@DeluxePaintIII:DPaintFILETYPE=ILBM[p]b[3dcb page46pX.FORM ILBMBMHD@CMAP аDPPSnh`"ZCRNG CRNG4NxCRNG9JCRNGCRNGNyCRNG=CAMG@BODY 0x xvyxp|xx||xvx 0 0x_`%Q`   page45.infop_v3:&ּ:```@```` ^``` `!/W`%$`n`;[`UU``@@@@@@ @ `@?@@@@@@@@@@DeluxePaintIII:DPaintFILETYPE=ILBMxxwx0`af[8wgf % %page47p]c^xQFORMTEXT0002 CMAP08880F0000000FFF GIRLS, GIRLS, GIRLS Hello, I`m Sandra. I will write something about girls and computers in this fantastic mag. Let us start with all the meanings from most of the boys: - Girls are loooosers on computers - Girls can not programm on their Amiga - Girls don`t know what an Assemb- ler is ... and much more. Well, thats not true! O.K., most of the girls have not the newest stuff for the Amiga,but I (we) don`t want to spend so much time ]dUon playing games, or to have over 300 Disks. I want to make good programms of my own, and not to work and play with prg`s, and to wonder, how it works. When I`m playing, I play adventures and not war-games! But, I see, that it is not too easy to get many contacts as a girl. I have tested it:I wrote to 10 dif- ferent people and asked that I want to be a contact. Then I wrote to 10 other people and I noticed, that I am a girl. Not knowing, I`m a girl, I got 7 answers. Knowing,I`m ]a girl I got only 3 answers! So, I want to know, why is it so? In future, I hope, we will be res - pected by all boys, but we`ll have to do something for it: We`ll have to write good programms! Bye, Sandra! e loooosers on computers - Girls can not programm on their Amiga - Girls don`t know what an Assemb- ler is ... and much more. Well, thats not true! O.K., most of the girls have not the newest stuff for the Amiga,but I (we) don`t want to spend so much time ehZF'h 9page51pagKngFORMTEXT0003 CMAP08880F0000000FFF Cracker-Test Yeeeeah! We have done a great test! We wanted to know the user-friendly of three groups: - Vision Factory & Beyonders - Quartex - World of Wonders Therefore, I, (FRANKIE) asked many little crackers, swappers, muzak - graphix-asters for their experience with these thre groups. As a result, I write down the most used words about everyone: Vision Factory and the Beyonders: - user friendly - fast - respects everyone Quartex: - ap.only want money - slow - very expensive World of Wonders - they only want money - fast - they don`t want so much money as Quartex. So, as a result, Vision Factory & B is the group, which is mostly belo- ved !!! Bye, Frankie! &VUTSRQPONLh<  page29pe{?FORMTEXT0003 CMAP08880F0000000FFF BAD GAMES The programming-team from Gueters- loh, called Golden Goblins (Grand - Monster - Slam) has finnished the work for a new game, called CIRCUS- ATTRACTIONS. This is a 3D-Graphix-game with six different Circus-parts. The concept of the game is not the best, but the graphix are the same as in Comic-features. The two-player-mode is great! But I think after you`ve played it one time, you will throw it away. After all, it`s better than CircuimZ4gonm( h page53pjkZ>k_ Mpage52pjpgFORMTEXT0003 CMAP08880F0000000FFF POPULOUS The story: There is a land in the North and a land in the South. Bit- ween them, there is a river. In each land, there lives a fulk and these two fulks are steered by two gods. These two gods are in war and the war is over, when one fulk is death. You are one god and the computer or player two (only modem) is the other. You, as a god, can make hills or watercatastrophes. But you can use these funktiones not too often, be- causelqZ>rq q4page54pinwFORMTEXT0003 CMAP08880F0000000FFF Leisure Suit Larry II TIP -Eves garage:There, Larry will find something interesting for Quikie Mart -To the TV-Studio. Look through the Fence -In the TV-Studio:Show Losticket, Read for her the numbers, sit down and wait up to an happening. -Buy the most important things for a sea-tour:Sun-Protection,swimming clothes and something to drink. -You will find the oil at the left side of the shop. -Look more times in the trashcans -Go to the muioaԝsic shop -Go to the ship -In ship-cabin, get greetingsurpri- se, go into neighbours room and leave it. -go to nightclub -drink nothing! -don`t eat dip -change clothes -look into ~mamas-cabin~ -use sun-protection -go sunning -go swimming -dive -use sun-protection after swimming -change clothes -go to captain -press sos-boat-switch -run to the boat and jump in it -use sun-protection -throw dip over board -take flower -go to restaurant -take cheeze-knife -go through jungle -go to HiXotel-room -get soap and matches This is part one, and part two follows in next issue! ll find something interesting for Quikie Mart -To the TV-Studio. Look through the Fence -In the TV-Studio:Show Losticket, Read for her the numbers, sit down and wait up to an happening. -Buy the most important things for a sea-tour:Sun-Protection,swimming clothes and something to drink. -You will find the oil at the left side of the shop. -Look more times in the trashcans -Go to the muptZBt[ #page55plr8%1FORMTEXT0004 CMAP08880F0000000FFF HI SCORE On this page, you can offer your private High-Scores. The best High- Score of all the different sendings and games will win a prize:50 empty 2DD Disks!!! If there are comeing more sendings for one game, we will write a Hall of Fame for each game, with places from 1 to 5. Send your Hi Score to: HI SCORE PLK 052706 D 5430 Montabaur W-Germany Note: This Hi Score must be without TRAINER or CHEAT-MODUS ! ! ! ---------------------------l$P-------- Now, here I have some space to tell you something about . . . Hmmm, what could I tell you? Hmmmmmmmm Hmmmmmm Oh, what on earth could I tell you? Hmmmmmmmm Hmmmmmmm Well, I don`t know! But now, the space is no longer there! -------------------------------------- iCpsuY/Uu page60pp.FORMTEXT0004 CMAP08880F0000000FFF INFOS about Game-part Sorry, this Game-part in this first issue is very short but in the next issue on July, we get game-testers and game-news writers from England, USA and Germany to give us news and reports from really hot stuff. We know some guys, working in soft- ware-companies! Now to Game-tips: In next issue the Game-tips will get to over 5 pages to many different games. If you want to send us some tips, try and do so! Oh, games! If yous$FORMTEXT0002 CMAP08880F0000000FFF AMIGA ON RADIO WAVES. A couple of weeks ago some of the members of our group were show a setup of a Commodore 128D, connected with a modem via a VHF transmitter.The equipment used was the C128D+DIGICOM software, a homemade modem, a transiever, booster + other equipment to ensure that all is working perfectly. The latter is not really necessary,and the booster is only needed if you are not situated in a good area. There still remains the computer (wv}Y=~}  page62pwxY8{zyx 0page61pwyFORMTEXT0002 CMAP08880F0000000FFF AMIGA ON RADIO WAVES. included being connected to a BBS too ! Although it was a very small BBS and it was dedicated to C64/128, there were also programs for IBM (shit), Atari (shit), and of course Amiga. The programs included Virus and Dos2Dos! (Note: As I already said, this happened a while ago, so do not expect Afterburner to be there, coz it was not yet released !) Since we were more interested on the Amiga side of this thing, we told our friendwzW to leave a message in a BBS to ask if there is an Amiga program similar to DIGICOM. A few days later we got a favourable reply ! Unfortunately, VHF limits you to direct sight connection, ie. one can only communicate to limited distances. From Malta we can connect quite easily to Scicily. But there are the so-called Digipeaters which can be used, thus enabling us to connect to more distant places, and it is even possible to connect to UK or Germany !! Moreover, recently the 50M bandw{Z has been given to use of Radio Amateurs and although it is not too much used till now, one can connect even directly to UK or Germany from Malta so make sure that your transmitter can use this range too! There are more nice features such as the Oscar 13, a satellite which can be used by Radio Amateurs, and which will enable more distant connections. But to explain everything would take lots of space and time !! I suggest that those who are interested should immediately contact a locwal Radio Amateur Club for more details. I hope that I did not take too much mistakes, but I am still studying to sit for the RAexam.In the meanwhile we would be very grateful if there`re groups who are using/will be using VHF transmitting will contact us. Most important for us is to get the soft for the Amiga to use packet radio, called ONLINE, so any news of this program (or other equivalent program) will be a great help. PHAZE 101 - PO BOX 529 - Valletta - Malta M band|Z<d page56pv~#[FORMTEXT0002 CMAP08880F0000000FFF AMIGA ON RADIO WAVES. I hope that I did not take too much mistakes, but I am still studying to sit for the RAexam.In the meanwhile we would be very grateful if there`re groups who are using/will be using VHF transmitting will contact us. Most important for us is to get the soft for the Amiga to use packet radio, called ONLINE, so any news of this program (or other equivalent program) will be a great help. PHAZE 101 - PO BOX 529 - vOƃ~Valletta - Malta yMJFqt_ YX]a2ejilprwz~u<> | Lazarus Z<< 9page57p|0QFORMTEXT0005 CMAP08880F0000000FFF BYE O.K. guys, this was the first issue of ~THE NEW PHAZE~. I (we) hope, that you like it. The next issue comes in the first week of July and it has 100 pages. (I`ll try to do a program with more than 100 pages). The next issue is much more inter - esting as the first issue, coz on #02, there are many more different writers from USA, GB, BRD, AUT, MAL and Holland, Denmark and Sweden. After this Bye-letter, you`ll find 2 pages to buy Hardware a`zFORMTEXT0005 CMAP08880F0000000FFF INTERVIEW-NOTE 1st. An interview for Music-part: - make an interview with a music - band, which is a little bit pop- ular. - Ask them interesting Questions - When possible, send a complete Discography. - Send the interview on a paper or TextEd-file to: MUSIC-PART PLK 052706 D 5430 MONTABAUR, W-GERMANY 2nd. An Cracker-interview - If ya want to make an Interview of yourself, write us your Name/ Group-nZ7m 5page59pZ613. ipage58p3tFORMTEXT0005 CMAP08880F0000000FFF THE PHAZE 101 - QUESTIONNAIRE Please answer the following questi- ons and send them as soon as possi- ble to us. If there are any quests, which you don`t want to judge, just leave them empty!For each Item wri- te your opinion about which is the worst. Note, that this question - naire is highly confidential and that under NO circumstanses we will publish this sheet as an individual result. I.E. we will not tell, who has given us the answers, soY9  page63pAFORMTEXT0005 CMAP08880F0000000FFF THE PHAZE 101 - QUESTIONNAIRE WHICH TYPE OF STUFF WOUL YA PREFER TO RECEIVE (GIVE RATING 0-10) -ORIGINAL-DEMOS -MUSIC DISKS -GAMES -SLIDESHOWS -UTILITIES -PORNO SHOWS -DISK-MAGS -INSTRUMENT-DISKS -MISCELL. COMP. D -SOURCE DISKS -DIGISOUND REMIX -OTHERS (SPECIFY) WHICH GROUP SENDS YA THE BEST STUFF WHICH GROUP PRODUCES THE BEST STUFF HOW MANY DAYS AFTER RELEASE DATE DO YOU STILL SEND THE FOLLOWING S uTUFF? -ORIGINAL-DEMOS -MUSIC DISKS -GAMES -SLIDESHOWS -UTILITIES -PORNO SHOWS -DISK-MAGS -INSTRUMENT-DISKS -MISCELL. COMP. D -SOURCE DISKS -DIGISOUND REMIX -OTHERS (SPECIFY) WHICH GROUP PRODUCES THE STUFF WITH THE LONGEST LIFETIME? ----------------------------------- THAT`s ALL FULKS !!!!! ----------------------------------- Lazarus YBf page64pu+FORMTEXT0001 CMAP08880F0000000FFF PHAZE-SHOP Here, in the Phaze-Shop, you can by cheap disks, drives, modems, ... Please send your order list with a) number of your order b)complete a- dress c)The money! Don`t be afraid to send money! We are not stealing it! Ya will get 101% error-free things with an gua- rantee of 1/2 year. 01 - No-Name-Disks, 101% error free 2DD 3.5" for only 16.00 DM for 10 Disks. 02 - AMIGA 3.5" Disk-Drive, a very low noise, on/off, bus, Y> Wpage67pR#FORMTEXT0001 CMAP08880F0000000FFF PHAZE-SHOP 11 - Modem 1200 Baud: 280.00 DM 12 - MultiTerm DeLuxe : 135.00 DM 13 - Eprommer for A500/1000 for the 2764-27011 Eproms, many func - tiones, 4 programming types, software, ... prize: 230.00 DM 14 - Trackdisplay for 3.5+5.25" for df1, df2, df0, df3. prize: 70.00 DM 15 - Sampler, 8 Bit, printer-port, Cinch with booster, software prize: 80.00 DM 16 - Sampler like 15 without soft - ware:Y2s page68pyFORMTEXT0001 CMAP08880F0000000FFF ASSEMBLER 1 Try to learn,how to change from one system to another!! Now, the structure of the Amiga. It is a very clever machiene. That is caused by the Custom-Chips, that`re working `together` with the proces- sor. They are called Agnus, Denise, Paula. Agnus, also called Blitter, is used most time to move memory, which is useful for fast Animatio - nes. Denise is used for Screen out- put and Paula for out/input, e.g. : Sound or Disk. These ChipY:G  page69p蜌FORMTEXT0001 CMAP08880F0000000FFF FLOPPY-PROGRAMMING 1 Today, Disk-Drives are used by every Computer-user, but they don`t think about, how it works. In this course you learn all about Formats, Hardware-programming and Copy-pro - tectiones. In this first part, you will learn the Structure of a Disk. Let`s start: An Amiga-Disk contains of a Magnetic-Disc, which is divi - ded into two parts: Tracks and Sec- tors. Track: Circles with different ra - dius around the center of the Dsyisc. Sector: Parts, one after annother on each track. An Amiga-Floppy writes on top and buttom of the Disk. So, there are 2 Tracks with the same radius. These 2 Tracks are called one Cy - linder. In the Disk-Drive, there are two R/ W-heads. One is called 0 (Top) and the other 1 (Buttom). With the standard AmigaDos-format, there are 80 Zylinders (0-79), so, there are 120 Tracks (0-119). Each track has 11 Sectors, each Sector stores 512 Byte. So, we follow: 80 * 2 * 11 * 512 5y * 512 = 901120. 901120 Bytes (880 KB) can be stored on each Disk. A sector is also cal- led a Block. AmigaDos knows 7 different Blocks : The first is the Boot-Block (0-1) . These blocks contains a 4 Byte long ASCII-mark. It shows the type of a disk. It`s either KICK for a Kick - start-disk (A1000), or DOS\0 for an AmigaDos disk.If it has a different mark, you can`t boot with it. read next page to go on .... Track: Circles with different ra - dius around the center of the D\8UG _page39pi'FORMTEXT0001 CMAP08880F0000000FFF FLOPPY-PROGRAMMING 1 The secont Longword is the Checksum and the next 4 Bytes contains the number of the Root-Block. After the 4th longword, an Assemb - ler Prg is stored in the Bootblock. If there is no Assembler-programm , you cant boot from the Disk. The command Install writes a short Prg in the BB, which allows to boot from the installed disk. The most important Block on a Disk is the Root-Block. Here, the com - plete Disk-structure is base]8uFa ppage28pG5NҸFORMTEXT0002 CMAP08880F0000000FFF In the Gullet of the Threekiller Here is a short info about the fol- lowing 4 sides, named IN THE GULLET OF THE THREEKILLER: This is a Horror/Sience-Fiction - Story about a Ghostbuster called : John Sinclair, written by a person with a pseudo-name, called Jason Dark. This story is only in German, so I decided to translate it into Engl., because it is a really fantastic story from Jason Dark. When this story is finnished, I`ll start to\85  page34pFiFORMTEXT0002 CMAP08880F0000000FFF MUZAK Hi, muzak freaks! We start a great thing! We want you, to send us your best sounds/songs. We`ll check them out and the best 10 will be listed in a Top 10. The No. 1 reaching us, will become the sound of the mag (of co- urse with your name!). So, you become popular . . . ----------------------------------- Here three little news ... ----------------------------------- Marillions first Album without FISH as a Solo-Singer is_2 !page02p,RFORMTEXT0004 CMAP08880F0000000FFF BORING !!! THIS PAGE IS VERY BORING !!!!!!!!!! THIS PAGE IS VERY BORING !!!!!!!!!! THIS PAGE IS VERY BORING !!!!!!!!!! THIS PAGE IS VERY BORING !!!!!!!!!! THIS PAGE IS VERY BORING !!!!!!!!!! THIS PAGE IS VERY BORING !!!!!!!!!! THIS PAGE IS VERY BORING !!!!!!!!!! THIS PAGE IS VERY BORING !!!!!!!!!! THIS PAGE IS VERY BORING !!!!!!!!!! THIS PAGE IS VERY BORING !!!!!!!!!! THIS PAGE IS VERY BORING !!!!!!!!!! THIS PAGE IS VERY BORING !!!!!!!!!! Mkym THIS PAGE IS VERY BORING !!!!!!!!!! THIS PAGE IS VERY BORING !!!!!!!!!! THIS PAGE IS VERY BORING !!!!!!!!!! THIS PAGE IS VERY BORING !!!!!!!!!! THIS PAGE IS VERY BORING !!!!!!!!!! THIS PAGE IS VERY BORING !!!!!!!!!! THIS PAGE IS VERY BORING !!!!!!!!!! THIS PAGE IS VERY BORING !!!!!!!!!! THIS PAGE IS VERY BORING !!!!!!!!!! ppage28p%V  page19.infopܸFORMTEXT0000 CMAP08880F0000000FFF CONTENTS Yet annother Diskmag.............03 Help!............................04 Hello guys!......................05 Austria..........................06 Interview with Sargon............09 VIDEO-PART (beginning)...........12 MUSIC-PART (beginning)...........20 with Interview! HARDWARE-PART (beginning)........30 The Story about a lamer..........35 Torch-Info.......................36 Venlo............................38 In the Gullet of the Threekiller.Ef39 Message System...................44 Girls & Computer.................46 Cracker-Test.....................47 Reader-letters...................48 Adverts..........................49 Game-part (beginning)............50 Bye..............................56 Note for Interviews..............57 Questionnaire....................58 VHF..............................60 SHOP.............................63 Assembler course.................65 Floppy course....................68 Jokes...........g ...........08/34/37 In this first issue, there are 71 pages. Next issue: 1st week of July # of pafges: 100 or more Our adress: THE NEW PHAZE PLK 052706 D 5430 Montabaur W-Germany IDEO-PART (beginning)...........12 MUSIC-PART (beginning)...........20 with Interview! HARDWARE-PART (beginning)........30 The Story about a lamer..........35 Torch-Info.......................36 Venlo............................38 In the Gullet of the Threekiller.;^|?}? -SOFTWARE-HOUSE -GAME TYPE -COMMERCIAL GAME -ARCADE GAME -COMMERCIAL UTILITY -HACKERS GAME -HACKERS UTILITY -GROUP -INTRO/DEMO -CRACKER -CODER -MUZAK WIZARD -GFX ARTIST -LAMER/LOOSER -DISKSTEALER -MUSIC-TYPEﴍ:ףׄ:Ϯ```@```` ^``` `!/W`%$`n`;[`UU``@@@@@@ @ `@?@@@@@@@@@@DeluxePaintIII:DPaintFILETYPE=ILBMpg|? }?`n`;[`UU``@@@@@@ @ `@?@@@@@@@@@@DeluxePaintIII:DPaintFILETYPE=ILBMprm6REEN * D0 = LONGWORD = NUMBER * D1 = X * D2 = Y * PRINTNUM: MOVE.L #NUMMES2,A0 ;END OF STORE MOVEQ #3,D4 ;4 TIMES ALL4: MOVE.L D0,D3 ;STORE FOR MESSING AROUND AND.L #$F,D3 ;MASK ADD.L #48,D3 ;0=FIRST CHAR BSR HEXCONV ;CONVERT TO HEX MOVE.B D3,-(A0) ;STORE IN NUMMES ASR.L #4,D0 ;GET NEXT NIPPLE DBF D4,ALL4 ;DO IT 4 TIMES BABY MOVE.L #NUMMES,A0 ;START OF MESS MOVE.L #4,D0 ;LEN BSR PRINTMESS RTS NUMMES: DC.L 0 NUMMES2: DC.L 0 * * * * * * *rn * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * CONVERT TO HEX A NUMBER IN D3 HEXCONV: CMP.B #'9',D3 BLE.S NCOK ADD.B #7,D3 NCOK: RTS ****************************************************************************** * * PRINTS A MESSAGE ON SCREEN * * D0 = LENGTH * A0 = START OF MESSAGE * D1 = X * D2 = Y * PRINTMESS: MOVEM.L D0-D2/A0,-(SP) SUB.L #1,D0 MOVE.L #TEMPMESS,A1 COPYMESS: MOVE.B (A0)+,(A1) CMP.B #'a',(A1) BLT.S CONTMESS CMP.B #'z',(A1) {rN")pINJfrNNqaddlockrp(jtN#AJf GP" p(j$Nr (jPN`")!t")!%itN Out of Workspace freeloc$<tԊ#B#jt`N")$f,"p(jN")$)!(")p(jxNN#i")#pJfNgetlockp(jN#AJf"$GD" pINr (jPN`")pI N")N%Could not get information for "%S" - examinepILNJfG," pI|Nr (jPNNNqCould not examine disc exobjec"#Q(#i,() v$0 rp(jN#A{+rJf$&0( $rp(jNJg")N`Nqsaveinfr#At8nґ&*h֩!8rҩ`"*hpIpN%Apr#At8nґ&*l֩!8rҩ`NNqexnext r#At8n*ґ&*l֩(08gr` rҩ`rJg2r#At8nҪh&֩!8rҩ`"*pNrp(jN#A$#p( #A,#Q0()$v$)r (jN#A Jf&)$)rp(jNJg") N`ispat JfrN"t0JfrN"t0#Br#Ao `LrN"ҩt0"t#gv%gx'gz(g|)g{~?gp|g`rҩ`rNmyfaultrp(j(N#A$)"p(j(N")p(jNNNqdelete.p(jhNJf@rp(j(N#AGh" p(j$N")p(jN$)rp(j(N"*`NJgG|" p(j$NrN Not Deleted - Deleted itemdel&*X`(*dFƄ#Cx؁#D JgV*|0Xچ|0XG* #E#B ~:fG" ` G" () &$) ")p(j(N"pIdN$)") pIpNNNq%S%S%S/handle.(#pH z#E,) ~0h#Grp$(jN#A$rp((jN") ҩt0r:gG{)$ ") p(INrҩ$") p(IN`$)")p(IN#AJg")p(I(NJf") $)rp((jN")N/processv#Cx؉#Dr <(jNJgG" <(j$NrNrҩ <IN#A$) <I@NJXg,")txf&$)") <I,N#A") <IXNJg"$0 ") <IN#A")NNq *** BREAK nextfiltԉ#Bv0։#C,xX؉#DTBA-! "ҩ&)!8")!")v!"ҩ"0 <IXNJg""ҩ$0") <IpN`"ҩ#p"<҉#A") <IN#At$) <IpN")t <INJXg*")txf$)") <IpN`t") <I N")Jg4r <(jN <IN")$0r <(jNRr fl"*\ <(jPNN,,,,,,,,,ALL/S,Q=QUIET/SBad arguments :No file to delete tidyup `,"*t#p"0p(jN"*tp(jxN%itJtf$*x{ -Yrp(jN"p(jNNNqstart.nv ։#CB0(#pH 4x&t:")pD(jN#A0JgG,$ ")pHIN")t0&)x08f$)G0" pH(j(Nr%A\N$)")4pHIN")pHIN#A8$!0(rpH(jN$!($)8rpH(jN")4t0JfB$*")4pDIN")4t0҂t0r:gGX$ ")4pDIN"pDINNNq:%%S is a device and cannot be deleted /<TT <(jN"ҩJf(JfG" <(j$Nr%A\`b")t")ra=f ;NEXT ADDRESS ADD.L #34,A1 ;NEXT ADDRESS DBF D0,DTRLOOP2 RAWERR: BSR SHOWDIR MOVE.L #20,D1 ANOTHERAW: BSR DELAY DBF D1,ANOTHERAW ;ANOTHER WAIT !! MOVE.L ACTUALREAD,D0 MOVE.L D0,D1 MOVE.L D1,D2 DIVU #10,D2 AND.L #$FFFF,D2 ;THERE WOZ A BUG MULU #10,D2 SUB.L D2,D1 ;D1 = 0-9 ADD.B #48,D1 ;START FROM CHAR '0' MOVE.B D1,ACMESS3B MOVE.L D0,D1 DIVU #10,D1 ;MIDDLE DIGIT AND.L #$FFFF,D1 ;THERE WOZ A BUG MOVE.L D1,D2 DIVU #10,D2 AND.L #$rbkTFFFF,D2 ;THERE WOZ A BUG MULU #10,D2 SUB.L D2,D1 ;D1 = 0-9 ADD.B #48,D1 ;START FROM CHAR '0' MOVE.B D1,ACMESS2B MOVE.L D0,D1 DIVU #10,D1 ;MIDDLE DIGIT AND.L #$FFFF,D1 ;THERE WOZ A BUG DIVU #10,D1 ;MIDDLE DIGIT AND.L #$FFFF,D1 ;THERE WOZ A BUG MOVE.L D1,D2 DIVU #10,D2 AND.L #$FFFF,D2 ;THERE WOZ A BUG MULU #10,D2 SUB.L D2,D1 ;D1 = 0-9 ADD.B #48,D1 ;START FROM CHAR '0' MOVE.B D1,ACMESS1B MOVE.L #ACMESSB,A0 ;START OF STRING MOVEQ #22rcMj=,D0 ;LENGTH MOVEQ #2,D1 ;X POS MOVEQ #25,D2 ;Y POSITION BSR PRINTMESS ;HIT IT MOVE.L #20,D1 ANOTHERW2: BSR DELAY DBF D1,ANOTHERW2 ;ANOTHER WAIT !! BSR PRINTPLST DTRXIT2: RTS ACMESSB: DC.B ' ' ACMESS1B: DC.B 0 ACMESS2B: DC.B 0 ACMESS3B: DC.B 0,' FILES CONVERTED. ' RDISKMESS: DC.B ' PLEASE INSERT' RDISKN: DC.W 0,0,0 DC.B ' ' DC.W 0 INSTPOS: DC.L 0 RDISKOK: DC.B 'SUCCESSFUL CONVERSION.' RDISKOUCH: DC.B 'WRITE ERROR. FILE LOST' RDISKR: DC.B ' STARTING CONVERSI$x<??O 1  p 1  p x<??!x<?? 0#p0p @x<??!@x<?? @0#p@0p @x<==!@x<==%a.1@p@p      x  x    x  x  0 0 @x @x @0@0 @x @x @͌0@͌0 x x y0y0 xx xx 11& @x{x @x{x @010@010 @ x{x @ x{x @ 000@ 000 @>A |c~>>A w 2?9 w 2?9 `c` 3ƙ) `c` 3ƙ)   ~~3~c~<?9 ~~3~c~<?9 ̀< W၀̀< c?kcc$9 c?kcc$9 < < c $) c $) < <~ c~>~<~ c~>~<<<  @  9999 ???? ????1%1%== <9))? <9))?<<$99$99<< s$)) $)) < < < < < <    ncx@@@@@@@@!?!?!`~cc?!`~cc???`cw`cw`c``c`@$@$@$3`~c>@$3`~c>@B@B@B?`cck@B?`cck   cc  cc!!!c?~>c~!c?~>c~@@@@@@@@$ $ $ $ D0D0D0D0     P P P P P PPP  M ```@```@    B B B`a`B`a` $ $ $`a`$`a` (x (x (`a`(`a` x x 00 (x (x (0(0 Hx  HxHHss = =qqB  B BqBq$  $  $} q$}q8 8! 81 m 1 p81 m 1 p0{{0{{0x0́1퍍pp0x0́1퍍ppPx PxP0 18p8P0 18p8Hx HxH0p8H0p8x",cFx0p0pxxpppp y? y?pp{ {M0p0p@# { @{@$1}p@1}p {  {O   0   1l p   0   1l p  {<?{?!  {<?{?O  1p  1px<?? ƪda@@@>>828200p3p32P302P30>r3Ǽ>r30088808880 << <<|c~>|c~> dd dd8w8 8w8 DDDDc@c@Q@ dd dd ~3~c ~3~c $̀$ $̀$ c?kcc c?kcc  ~ c~~ c~~ c~>~~ c~>~ x x |Ǐx x 2s ) 2s )     ~|c~>~@ A ) ~|c~>~@ A )   w  9) w  9)   c H% /) ccI H% /) x= x= ~3~c <>#?99 ~3~c <>#?99 ̀< ̀< xc?kccx$ 39 xc?kccx$ 39 < < c $ 3) c $ 3) <- < c~> < c~> < < <  @ 2s!)@ 2s!)   ~|c~>~ &A!) ~䓠|c~>~ &A!)   w< ə!??9 w< ə!??9 c !%1  c !%1  = = >~3~c><'g??99 >~3~c><'g??99 ÀA%< ÀA< c?kcc$39%) c?kcc$39%) <= <= c $9)%) c $9)%)<=<=~ c~>~ <<~ c~>~ <<<<<<  q@@ss2ss2   `|c~>` AA `|c~>` AA   `w`9 `w`9O)| fcf/% fcf/% = = f~3~cf<99f9" f~3~cf<99f9" ̀<~ ̀<~ c?kcc$)9$)92 c?kcc$)9$)92<<<< c`S$))$))2 c`$))$))2<<<< c~><< c~><<<<<<00      s  s  73|uxs4M4KH xA4A MH x x7Ҡߥ1   ?'AA0A00A0@ ']}w}wt_}eu 'AS4C A4 7Ӿ-"'K@igi  y IpA4@i   y y  7dɱ   !w!w!w!UAAATUAA@!]}A_w]]t|wpw}@y!M@LI4AT5 @7@a!M@LO7O\4<5 <@!!ALAHS4A5 @!!@8dw=7h?p ?0p 0 8p0U((xFORMTEXT0007 CMAP06660F0000000FFC How to use this program. Since this is the first issue , we should give some details about this program, with which you are enjoying this new disk-mag. I must admit that I DID keep in mind the functions of other disk-mags available, but I did not lift the code. Come on, there is no harm in taking a couple of ideas from some of our best friends ?? This program was written with Txed and assembled with Devpak !! (I hate Seka coz the editor is SLOU\W.) To get the source of this program write to our headquarters at Malta. But write only if you want to start using it, coz there are enough lamers who play with my sources. Anyway let's start with the action of all the buttons. First of all the numeric keypad works just like the Cracker Journal style , and this can take you to any page you want. Left mouse = Page down Right mouse = Page up Left Commodore = Page down Right Amiga = Page up Left Alt = 5 UUpages down Right Alt = 5 pages up Left Shift = Go to start Right Shift = Go to end F1 through F5 = Specific pages F6 through F9 = Audio (Channels) F10 = Audio (Master) Caps Lock = LED (A500/2000) Del = Page num On/Off Help = For NTSC users ! Escape = Exit More key functions could be added in the future, hopefully to make the program more user friendly !! I hope that there are not too much bugs and if thULR}ere are, they will be destroyed soon ! ut write only if you want to start using it, coz there are enough lamers who play with my sources. Anyway let's start with the action of all the buttons. First of all the numeric keypad works just like the Cracker Journal style , and this can take you to any page you want. Left mouse = Page down Right mouse = Page up Left Commodore = Page down Right Amiga = Page up Left Alt = 5 rVy1989 ... IT WAS CODED BY CRAIN OF PHAZE 101 (PREVIOUSLY' DC.B ' CALLED 101 - THE MALTESE HACKERS) SPECIAL MENTION MUST GO TO' DC.B ' MEGAMAN/ELECTRONIC ARTISTS FOR POINTING OUT A BUG AND ALSO TO' DC.B ' JPN/LEVEL 4-AFL FOR HINTS ON ADAPTING TO X-PANDED AMIGAS ...' DC.B ' BUT NOW LET US START WITH THE INFOS ... CLICK WITH LEFT OR' DC.B ' RIGHT MOUSEBUTTON, THE RIGHT MOUSEBUTTON PRODUCES LESS DELAY' DC.B ' AFTER MESSAGES ... ON THE TOP-RIGHT CORNER OF THE SCREEN THE' DC.B ' CURrW]RENT ST- DISKNAME IS SHOWN ... READ DIR = READ DIRECTORY OF' DC.B ' AND ST- DISK. ST NAME CAN BE MADE UP OF NUMBERS AND/OR LETTERS' DC.B ' ... DIR UP/DIR DOWN = SCROLLS DIRECTORY ... CLICK ON DIRECTORY' DC.B ' ITEM TO SELECT IT ... SELECT ALL/CLEAR ALL = AFFECTS SELECTION' DC.B ' OF DIRECTORY ITEMS ... DISK TO RAM = TRANSFERS THE CURRENTLY' DC.B ' SELECTED ITEMS FROM DIRECTORY TO PLST (NOTE: THE IMAGE OF THE' DC.B ' DISK IN THIS GADGET ALSO SHOWS IF THE DISK BEING USED IS WRITrXl e?E' DC.B ' PROTECTED OR NOT) ... READ PLST = READS A PREVIOUSLY SAVED PLST' DC.B ' FROM ST-00: ... SAVE PLST = SAVES CURRENT PLST TO ST-00: (NOTE:' DC.B ' THE PROGRAM DOES NOT AUTOMATICALLY LOAD THE OLD PLST EVEN IF IT' DC.B ' IS PRESENT ON THE SAME DISK OF DPRESED, SO YOU MUST FIRST LOAD' DC.B ' THE OLD PLST IF YOU NEED IT !) ... CLEAR PLST = CLEARS CURRENT' DC.B ' PLST IN MEMORY ... MERGE PLST = MERGE THE CURRENT PLST IN MEMORY' DC.B ' TO THAT PRESENT ON ST-00: ... CUT (SCISSrYۻ}LCORS) = DELETES CURRENT' DC.B ' SHOW PLST ITEM ... REP UP/DOWN = MODIFIES REPEAT VALUE IN WORDS' DC.B ' ... LEN UP/DOWN = MODIFIES LENGTH VALUE IN WORDS ... HELP = DIS' DC.B ' TEXT ... IFF2RAW = CONVERTS THE CURRENTLY SELECTED DIRECTORY' DC.B ' ITEMS FROM IFF FORMAT TO RAW FORMAT ... PLAY = PLAYS THE CURRENTLY' DC.B ' SELECTED PLST ITEM ... QUIT = EXIT TO CLI ..... ONE LAST THING:' DC.B ' YOU CAN COPY AND SPREAD THIS PROGRAM AS MUCH AS YOU LIKE PROVIDED' DC.B ' THAT YOU DO IT rINAIMILAR) ENTRY IS PRESENT IN PLST * A0=START OF CURRENT FILENAME FROM DIRINFO * MERGELOOP: MOVEM.L D0-D7/A0-A6,-(SP) ;PUSH ON STACK/XMEN MOVE.L A3,A4 ;JUST FOR CLARITY MOVE.L PLSTINFO,A6 ;JUST FOR CLARITY MOVE.L PLSTITEMS,D5 SUB.L #1,D5 ;COZ WE USE DBF CHECKIFEXIST2: MOVE.L A4,A0 MOVE.L A6,A5 ;STORE FOR FUTURE USE MOVE.L #22-1,D4 ;USE DBF CHECKFN2: MOVE.B (A0)+,D0 CMP.B (A5)+,D0 ;EQUAL ? BNE.S NOEXIST2 ;IF NO EXIT DBF D4,CHECKFN2 ;DO ALL FILENAME BRrJh'A.S EXISTED2 ;HEY MAN ... IT EXITST NOEXIST2: ADD.L #30,A6 ;NEXT PLST POS DBF D5,CHECKIFEXIST2 ;REPEAT FOR ALL FILENAMES MOVEM.L (SP)+,D0-D7/A0-A6 ;POP FROM STACK/XMEN BRA.S MARKED2 ;WE FOUND ONE WHICH IS SIMILAR ;SO DONT PUT IT AGAIN IN PLST EXISTED2: MOVEM.L (SP)+,D0-D7/A0-A6 ;POP FROM STACK/XMEN BRA.S NOTMARKED2 MARKED2: MOVE.L A3,A0 MOVEQ #30-1,D5 M2LOOP: MOVE.B (A0)+,(A1)+ DBF D5,M2LOOP ADD.L #1,PLSTITEMS NOTMARKED2: ADD.L #30,A3 DBF D0,MERGELOOPrKQ+ SUB.L #1,PLSTITEMS ;THERE WOZ A BUG !! MOVE.L #MPMESS,A0 ;START OF STRING MOVEQ #22,D0 ;LENGTH MOVEQ #2,D1 ;X POS MOVEQ #25,D2 ;Y POSITION BSR PRINTMESS ;HIT IT MOVE.L #20,D1 MANYWAIT: BSR DELAY DBF D1,MANYWAIT ;WAIT !! BSR SORTPLST BSR PRINTPLST RTS MPERROR: MOVE.L #MEMESS,A0 ;START OF STRING MOVEQ #22,D0 ;LENGTH MOVEQ #2,D1 ;X POS MOVEQ #25,D2 ;Y POSITION BSR PRINTMESS ;HIT IT MOVE.L #20,D1 SKOSSW: BSR DELAY DBF D1,SKOSSW rL: ;WAIT !! MOVE.L INTBASE,A6 MOVE.L #0,A0 JSR DISPLAYBEEP(A6) BSR PRINTPLST RTS MPMESS: DC.B ' PLST MERGED TO ST-00 ' MEMESS: DC.B 'ERROR WHILE MERGING !!' ****************************************************************************** * PLST UP * PLSTUP: CMP.L #0,PLSTPOS BEQ.S PUXIT SUB.L #1,PLSTPOS BSR PRINTPLST PUXIT: BSR DELAY RTS ****************************************************************************** * PLST DOWN * PLSTDOWN: CMP.L #0,PLSTITrMeEMS BEQ.S PDXIT MOVE.L PLSTITEMS,D0 MOVE.L PLSTPOS,D1 ADD.L #1,D1 CMP.L D0,D1 BGE.S PDXIT ADD.L #1,PLSTPOS BSR PRINTPLST PDXIT: BSR DELAY ;PUBLIC DOMAIN IS REALLY SHIT !! RTS ****************************************************************************** * KILL * KILL: CMP.L #0,PLSTITEMS ;LETS KILL YURGEN & OLIVER BEQ KIXIT CMP.L #0,PLSTPOS BEQ KIXIT MOVE.L PLSTPOS,D0 ;ITEM # TO KILL MOVE.L PLSTITEMS,D1 ;NO OF ITEMS IN PLST SUB.L D0,D1 ;DrNE1=ITEMS TO SCROLL MOVE.L PLSTINFO,A0 ;START OF INFO MULU #30,D0 ;EACH ITEM=30 BYTES ADD.L D0,A0 ;START POS TO SCROLL MOVE.L A0,A1 ;ALMOST SOURCE ADD.L #30,A1 ;REAL SOURCE ALLDIS: MOVEQ #29,D0 ;LCV COPYDIS: MOVE.B (A1)+,(A0)+ ;COPY BYTE DBF D0,COPYDIS ;1 LINE DBF D1,ALLDIS ;ALL LINES SUB.L #1,PLSTITEMS CMP.L #0,PLSTITEMS BEQ.S DONTBOTHER MOVE.L PLSTITEMS,D0 MOVE.L PLSTPOS,D1 CMP.L D0,D1 BLT.S DONTBOTHER SUB.L #1,PLSTPOS DONTBOTHER: rOJMOVE.L #KMESS,A0 ;START OF STRING MOVEQ #22,D0 ;LENGTH MOVEQ #2,D1 ;X POS MOVEQ #25,D2 ;Y POSITION BSR PRINTMESS ;HIT IT MOVE.L #20,D1 MOREW: BSR DELAY DBF D1,MOREW ;WAIT !! BSR PRINTPLST KIXIT: RTS KMESS: DC.B 'ITEM DELETED FROM PLST' ****************************************************************************** * RLEN DOWN * RLENUP: MOVE.L PLSTINFO,A0 ;START OF INFO MOVE.L PLSTPOS,D0 ;CURRENT POS MULU #30,D0 ;EACH IS 30 BYTES ADD.L D0,A0rP_ ;A0=FINAL ADDRESS ADD.L #26,A0 ;A0=ADDRESS OF REP SUB.W #1,(A0) AND.W #$7FFF,(A0) MOVE.W (A0),INSTREP BSR REDOINSTR BSR PRINTPLST BSR DELAY RTS ****************************************************************************** * RLEN UP * REPUP: MOVE.L PLSTINFO,A0 ;START OF INFO MOVE.L PLSTPOS,D0 ;CURRENT POS MULU #30,D0 ;EACH IS 30 BYTES ADD.L D0,A0 ;A0=FINAL ADDRESS ADD.L #26,A0 ;A0=ADDRESS OF REP ADD.W #1,(A0) AND.W #$7FFF,(A0) MOVE.WrQ  (A0),INSTREP BSR REDOINSTR BSR PRINTPLST BSR DELAY RTS ****************************************************************************** * REP DOWN * RLENDOWN: MOVE.L PLSTINFO,A0 ;START OF INFO MOVE.L PLSTPOS,D0 ;CURRENT POS MULU #30,D0 ;EACH IS 30 BYTES ADD.L D0,A0 ;A0=FINAL ADDRESS ADD.L #28,A0 ;A0=ADDRESS OF REP RWOZ0: SUB.W #1,(A0) AND.W #$7FFF,(A0) CMP.W #0,(A0) BEQ.S RWOZ0 MOVE.W (A0),INSTRLEN BSR REDOINSTR BSR PRINTPLST BSR DELAY rRr RTS ****************************************************************************** * REP UP * REPDOWN: MOVE.L PLSTINFO,A0 ;START OF INFO MOVE.L PLSTPOS,D0 ;CURRENT POS MULU #30,D0 ;EACH IS 30 BYTES ADD.L D0,A0 ;A0=FINAL ADDRESS ADD.L #28,A0 ;A0=ADDRESS OF REP RRWOZ0: ADD.W #1,(A0) AND.W #$7FFF,(A0) CMP.W #0,(A0) BEQ.S RRWOZ0 MOVE.W (A0),INSTRLEN BSR REDOINSTR BSR PRINTPLST BSR DELAY RTS ********************************************************rSm********************** HELP: MOVE.L #HELPMESS,A0 ;START OF STRING MOVEQ #22,D0 ;LENGTH MOVEQ #2,D1 ;X POS MOVEQ #25,D2 ;Y POSITION BSR PRINTMESS ;HIT IT BSR DELAY MOVE.L SCREEN,A0 ;START OF SCREEN ADD.L #2,A0 ;X POS ADD.L #25*40*8,A0 ;Y POS ADD.L #22,A0 ;END OF TEXT MOVE.L A0,SCROLLSCREEN HELPME: MOVEQ #7,D2 HELPMORE: MOVE.L SCROLLSCREEN,A0 MOVE.L A0,A1 MOVEQ #7,D1 SCRVLOOP: MOVEQ #0,D7 ;DUMMY ROTATE TO CLEAR ROXL.W #1,D7 ;THE X BIT .r>ՕBLOCK,A0 ADD.L #11,A0 ;OFFSET TO WRITE PROT/ENA MOVE.B (A0),D0 ;MAKE THAT DISK AND.B #$02,D0 ;IN THE DISK TO RAM GADGET LSL.B #5,D0 ;LOOK WRITE PROTECT OR.B #$A2,D0 ;OR WRITE ENABLE MOVE.B D0,(A1) ;ACCORDING TO ACTUAL DISK MOVE.L PLSTINFO,A0 MOVE.L #PLSTNAME,A1 MOVE.L #PLSTLEN,D0 BSR LOAD CMP.L #0,D0 BNE.S RPOK MOVE.L #0,PLSTITEMS RPOK: DIVU #30,D0 MOVE.L D0,PLSTITEMS MOVE.L #RPMESS,A0 ;START OF STRING MOVEQ #22,D0 ;LENGTH MOVEQ #r?2,D1 ;X POS MOVEQ #25,D2 ;Y POSITION BSR PRINTMESS ;HIT IT MOVE.L #20,D1 STILLW: BSR DELAY DBF D1,STILLW ;WAIT !! BSR SORTPLST BSR PRINTPLST RTS ;NO ERROR MAN !! RPERROR: MOVE.L #REMESS,A0 ;START OF STRING MOVEQ #22,D0 ;LENGTH MOVEQ #2,D1 ;X POS MOVEQ #25,D2 ;Y POSITION BSR PRINTMESS ;HIT IT MOVE.L #20,D1 LOTSW: BSR DELAY DBF D1,LOTSW ;WAIT !! BSR PRINTPLST RTS RPMESS: DC.B 'PLST LOADED FROM ST-00' REMESS: DC.B 'ERROR WHILE r@!ELOADING !!' IMESS: DC.B ' PLEASE INSERT ST-00: ' DC.W 0 WPMESS: DC.B ' REMOVE WRITE PROTECT ' DC.W 0 ***************************************************************************** * SAVE PLST * SAVEPLST: MOVE.L #IMESS,A0 ;START OF STRING MOVEQ #22,D0 ;LENGTH MOVEQ #2,D1 ;X POS MOVEQ #25,D2 ;Y POSITION BSR PRINTMESS ;HIT IT MOVE.L DOSBASE,A6 MOVE.L #ST00NAME,D1 MOVE.L #ACCESS_WRITE,D2 JSR LOCK(A6) ;GET LOCK MOVE.L D0,LOCKED CMP.L #0,D0 BEQ SPERRrAkB OR MOVE.L LOCKED,D1 MOVE.L INFOBLOCK,D2 JSR INFO(A6) ;GET INFO MOVE.L SCREEN,A1 ADD.L #(16*40)+31,A1 ;SCREEN DEST MOVE.L INFOBLOCK,A0 ADD.L #11,A0 ;OFFSET TO WRITE PROT/ENA MOVE.B (A0),D0 ;MAKE THAT DISK AND.B #$02,D0 ;IN THE DISK TO RAM GADGET LSL.B #5,D0 ;LOOK WRITE PROTECT OR.B #$A2,D0 ;OR WRITE ENABLE MOVE.B D0,(A1) ;ACCORDING TO ACTUAL DISK MOVE.L INFOBLOCK,A0 ADD.L #11,A0 ;OFFSET TO WRITE PROT/ENA MOVE.B (A0),D0 ;GET WP BYTE rB.AND.B #$02,D0 CMP.B #$00,D0 ;WAS IT WP? BNE.S NOTWP MOVE.L #WPMESS,A0 ;START OF STRING MOVEQ #22,D0 ;LENGTH MOVEQ #2,D1 ;X POS MOVEQ #25,D2 ;Y POSITION BSR PRINTMESS ;HIT IT NOTWP: MOVE.L DOSBASE,A6 MOVE.L #PLSTTEMPNAME,D1 MOVE.L #MODE_NEWFILE,D2 JSR OPEN(A6) ;OPEN FILE FOR PLST.TEMP MOVE.L D0,BUFFER BEQ.S SPERROR MOVE.L D0,D1 MOVE.L PLSTINFO,D2 MOVE.L PLSTITEMS,D3 MULU #30,D3 ;EACH ITEM=30 BYTES JSR WRITE(A6) ;WRITE PLST FROM RAM TrC?ƣO ST-00 BEQ.S SPERROR MOVE.L BUFFER,D1 JSR CLOSE(A6) ;CLOZE THE FILE BEQ.S SPERROR MOVE.L #PLSTNAME,D1 JSR DELETEFILE(A6) ;DELETE THE OLD PLST BEQ.S SPERROR MOVE.L #PLSTTEMPNAME,D1 ;AND RENAME THE NEW PLST MOVE.L #PLSTNAME,D2 ;WHICH WAS PLST.TEMP AS JSR RENAME(A6) ;PLST BEQ.S SPERROR MOVE.L #SPMESS,A0 ;START OF STRING MOVEQ #22,D0 ;LENGTH MOVEQ #2,D1 ;X POS MOVEQ #25,D2 ;Y POSITION BSR PRINTMESS ;HIT IT MOVE.L #20,D1 HAFNAW: BSR DErD̈́LAY DBF D1,HAFNAW ;WAIT !! BSR SORTPLST BSR PRINTPLST RTS ;NO ERROR FOUND !! SPERROR: MOVE.L #SEMESS,A0 ;START OF STRING MOVEQ #22,D0 ;LENGTH MOVEQ #2,D1 ;X POS MOVEQ #25,D2 ;Y POSITION BSR PRINTMESS ;HIT IT MOVE.L #20,D1 KOCCW: BSR DELAY DBF D1,KOCCW ;WAIT !! MOVE.L INTBASE,A6 MOVE.L #0,A0 JSR DISPLAYBEEP(A6) BSR PRINTPLST RTS SPMESS: DC.B ' PLST SAVED TO ST-00: ' SEMESS: DC.B ' ERROR WHILE SAVING ! ' ****************************rE1************************************************* * CLEAR PLST * CLEARPLST: MOVE.L PLSTINFO,A0 MOVE.L PLSTITEMS,D0 CPALL: MOVEQ #29,D1 CPC464: CLR.B (A0)+ DBF D1,CPC464 ;ONE OF THE BEST 8 BITTERS DBF D0,CPALL MOVE.L PLSTINFO,A0 MOVE.W #'st',(A0)+ MOVE.W #'-0',(A0)+ MOVE.W #'1:',(A0) MOVE.L PLSTINFO,A0 ADD.L #22,A0 MOVE.W #0,(A0)+ ;LEN MOVE.W #0,(A0)+ ;VOL MOVE.W #0,(A0)+ ;REP MOVE.W #1,(A0)+ ;RLEN/2 MOVE.L #0,PLSTPOS MOVE.L #1,PLSTITEMS MOrF㌷VE.L #CPMESS,A0 ;START OF STRING MOVEQ #22,D0 ;LENGTH MOVEQ #2,D1 ;X POS MOVEQ #25,D2 ;Y POSITION BSR PRINTMESS ;HIT IT MOVE.L #20,D1 MOREWAIT: BSR DELAY DBF D1,MOREWAIT ;WAIT !! BSR PRINTPLST RTS CPMESS: DC.B 'PLST CLEARED FROM RAM.' ***************************************************************************** * MERGE PLST * MERGEPLST: MOVE.L #0,PLSTPOS ;RESET DIS MOVE.L #IMESS,A0 ;START OF STRING MOVEQ #22,D0 ;LENGTH MOVEQ #2,D1 ;X POS rG= MOVEQ #25,D2 ;Y POSITION BSR PRINTMESS ;HIT IT MOVE.L DOSBASE,A6 MOVE.L #ST00NAME,D1 MOVE.L #ACCESS_READ,D2 JSR LOCK(A6) ;GET LOCK MOVE.L D0,LOCKED CMP.L #0,D0 BEQ MPERROR MOVE.L LOCKED,D1 MOVE.L INFOBLOCK,D2 JSR INFO(A6) ;GET INFO MOVE.L SCREEN,A1 ADD.L #(16*40)+31,A1 ;SCREEN DEST MOVE.L INFOBLOCK,A0 ADD.L #11,A0 ;OFFSET TO WRITE PROT/ENA MOVE.B (A0),D0 ;MAKE THAT DISK AND.B #$02,D0 ;IN THE DISK TO RAM GADGET LSL.B #5,D0 ;LOOK rHAmWRITE PROTECT OR.B #$A2,D0 ;OR WRITE ENABLE MOVE.B D0,(A1) ;ACCORDING TO ACTUAL DISK MOVE.L MERGEINFO,A0 MOVE.L #PLSTNAME,A1 MOVE.L #PLSTLEN,D0 BSR LOAD CMP.L #0,D0 BEQ MPERROR MPOK: DIVU #30,D0 ;THE NO OF ITEMS MOVE.L MERGEINFO,A3 ;START OF NEW ITEMS MOVE.L PLSTINFO,A1 ;START OF OLD PLST MOVE.L PLSTITEMS,D1 ;NO OF ITEMS IN OLD PLST MULU #30,D1 ;EACH ITEM=30 BYTES ADD.L D1,A1 ;WHERE TO PUT NEW ITEMS * * THIS PART CHECKS IF A SIMILAR (VERY SS YE5???~p??~~??S  db???8?~?S 4#????~~??_ u/?Spp9?9?w}}~~||??|?|??_  {? ???? ??? ??~ ~  _  g      ~~ ?? ??_ ?߀  ?  ? ? ~pp_ N????~~?????_  SV8???~~~_@???????????????_ >~~~W]??  ? ? ? |8???pW3p||||~~>p>>p???p 9?wWRO}?~?|??|?????~ W? ? ~> ?> ?>߀~~?||?|?|~ p~WpJd~? S|?|~~~~|~~?>??>?? ?< ? ??  SՐo? ? ?  ?? ??|?|8?8S!>p>>>>????p9?w}~S4|??|????????~~Sr~???߀2|?  ?  ׏x>2+zy`30 `01`80& `00b0`& `p00~0`C!`0`b0?`000` s0@@``00`0`@0`00`<|7!jǟ9?9{ Ϝ0p%  `"@#G?@ϟ~?=yx!    B0@>??x|% & `A %|>??xσ|% 0 >G %|?>??x|%  ` @ %|#>>>x%   @ %<>w;7"0~ ~~>>p% 0 @@0 @ `?>~?~~??ϟ `3`` @`8>>?ϟ%?10 00Lǀ%x "w"w'AAEAUUAAUAAAAw'w_7#dd}]|w]|]}W| ' 0AHM&AAMM0AHMPA$xx'?2HM>3<<M3MH<MSx x'$AHApAMAA3MHMMSMx x x x x x%A7$`FAAAAAAUAAP@%w_]}]~=_uA}_}wuu%0AA$MdLAA$AxpAL@%x%3O4LO4A?>? ?<??2 )xȐڿy x{ x`z x@:>    8   8  8?    ;?7ﯽ  =~ 2 *0q~?`@ `@ s /n?`n?`?2 +ꕲ??}  ?}? ? ? ?  ?  ?^?@_>@2 ,܉|?߀m k?| |2 -zΪ ?_   u  ?  ?<82.RR???   2/r         //20FA?? ? ?       21YJ7   7      = ={ {22?XBp p  3 ? ? ?       ;    0 ?   2c    7 ?   ? 600@@``c?~4?N)]BA@? t PHAZEFONTp/q:.key myfile/a P .S -oRAM: -l enscreentMONSTERdocscreened.sffL}SCREENEDocL screened.sp & ӎ?>?c?~?>?c?c?c `c`c `c`c cc>c cc>w c`cw c`c󜟜󜟜>?>??~?>~ ??~?>~ ?c@c28=* > 8 ~? ? <|? ??xǀ8?8~x8p8pppπ>Aw0tA "-"w]w=u_wu0!2 Ƀ>̀>p?7M6|3 |{2 '0̀287M7434~>>">π2740 }_s qE}||}}_`2:w  . T@EDD@D.ta}d|```o `H9tcidXd`Fofi}e|d`}F`& f ~<??p82;柉? ??pp8 8| 8`?  ?~@?  px? ?2<(W}? x?~~    2=)?_              ?2(1       0| ? y ?  a`  ` ;^ @>F }|{F phaze.fontp4@+lFORMILBMBMHD@- @CMAPGRABCRNGCRNGBvCRNGJCRNGBODY>    "  4AMe''???????????'4Bw????????4xw''???????????'r=************ * READ PLST * READPLST: MOVE.L #0,PLSTPOS ;RESET DIS MOVE.L #IMESS,A0 ;START OF STRING MOVEQ #22,D0 ;LENGTH MOVEQ #2,D1 ;X POS MOVEQ #25,D2 ;Y POSITION BSR PRINTMESS ;HIT IT MOVE.L DOSBASE,A6 MOVE.L #ST00NAME,D1 MOVE.L #ACCESS_READ,D2 JSR LOCK(A6) ;GET LOCK MOVE.L D0,LOCKED CMP.L #0,D0 BEQ RPERROR MOVE.L LOCKED,D1 MOVE.L INFOBLOCK,D2 JSR INFO(A6) ;GET INFO MOVE.L SCREEN,A1 ADD.L #(16*40)+31,A1 ;SCREEN DEST MOVE.L INFOE42q ?????? | |~~  ~~ ? ? G8? ?? ????   ? ???  >{{ Hg??  >> ?? ??<><> ? ?@@ ?  ?   3Cs? ? x x@@>x >x????nC8HO<? x(@< (@> (@ (@? (@ (@ (@ (@? ?'>y<r3K 0 BEQ ERROR MOVE.L LOCKED,D1 MOVE.L INFOBLOCK,D2 JSR INFO(A6) MOVE.L SCREEN,A1 ADD.L #(16*40)+31,A1 MOVE.L INFOBLOCK,A0 ADD.L #11,A0 MOVE.B (A0),D0 AND.B #$02,D0 LSL.B #5,D0 OR.B #$A2,D0 MOVE.B D0,(A1) MOVE.L LOCKED,D1 MOVE.L INFOBLOCK,D2 JSR EXAMINE(A6) MOVE.L INFOBLOCK,A0 ;CHECK IF DIS IS AN ADD.L #8,A0 ADD.L #3,A0 ;FIRST DIGIT CMP.B #'0',(A0) ;ALLOW ONLY BLT NOTST ;ALPHANUMERIC CHARS CMP.B #'z',(A0) ;AS AN ST NAME BGT NOTSTr4LpI ;I.E. ONLY CMP.B #'a',(A0) ;0-9 AND A-Z BGE.S PERHAPS CMP.B #'Z',(A0) BGT NOTST CMP.B #'A',(A0) BGE.S PERHAPS CMP.B #'9',(A0) BGT NOTST PERHAPS: ADD.L #1,A0 ;SECOND DIGIT CMP.B #'0',(A0) ;ALLOW AS ABOVE BLT NOTST ;I.E. ALPHANUMERIC ONLY CMP.B #'z',(A0) BGT NOTST CMP.B #'a',(A0) BGE.S PERHAPS2 CMP.B #'Z',(A0) BGT NOTST CMP.B #'A',(A0) BGE.S PERHAPS2 CMP.B #'9',(A0) BGT NOTST PERHAPS2: MOVE.L INFOBLOCK,A0 ;CHECK IF DIS IS AN ADD.L #r5M8,A0 AND.W #$DFDF,(A0) ;ST DISK AT ALL CMP.W #'ST',(A0)+ BNE NOTST ;NAAAH DIS IS NOT AN ST DISK CMP.B #'-',(A0)+ ;WHY ? COZ ST DISKS ARE BNE NOTST ;SINGLE SIDED & I HATE THEM ! CMP.B #'0',(A0)+ ;CHECK FOR ST-00: BNE.S WASST ;IF IT IS AN ST-00: CMP.B #'0',(A0) ;DISK, THEN TREAT IT BEQ NOTST ;AS NOT ST !!! WASST: MOVE.L INFOBLOCK,A0 ADD.L #8,A0 MOVE.L #DISKNAME,A1 MOVE.B (A0)+,D0 ;GET BYTE FROM DISKNAME BSR CONVLOW ;CONVERT TO MOVE.B D0,(A1r6N䆰)+ ;STORE IN "DISKNAME" MOVE.B (A0)+,D0 ;ETC ETC BSR CONVLOW ;REPEAT FOR 5 CHARACTERS MOVE.B D0,(A1)+ MOVE.B (A0)+,D0 BSR CONVLOW MOVE.B D0,(A1)+ MOVE.B (A0)+,D0 BSR CONVLOW MOVE.B D0,(A1)+ MOVE.B (A0)+,D0 BSR CONVLOW MOVE.B D0,(A1)+ MOVE.B #':',(A1) MOVE.L DIRINFO,A5 ;A5=START OF DIRECTORY DIRLOOP: MOVE.L LOCKED,D1 MOVE.L INFOBLOCK,D2 JSR EXNEXT(A6) ;GET NEXT DIR BEQ.S ERROR ;MORE ENTRIES MOVE.L INFOBLOCK,A0 ADD.L #4,A0 ;OFFSET TO r7O|TYPE CMP.L #$02,(A0) ;IS IT A DIRECTORY ? BEQ.S DIRLOOP ;IF YES THEN DONT BOTHER MOVE.L A5,A1 MOVE.L INFOBLOCK,A0 ADD.L #8,A0 ;OFFSET TO NAME COPYNAME: MOVE.B (A0)+,D7 CMP.B #'A',D7 ;CHECK IF ANY BLT.S CNOK ;CHARS IN DIS CMP.B #'Z',D7 ;FILENAME ARE BGT.S CNOK ;LOWER CASE ... ADD.B #32,D7 ;IF YES PUT THEM U-CASE CNOK: MOVE.B D7,(A1)+ CMP.B #0,(A0) BNE.S COPYNAME ADD.L #30,A5 ;30 BYTES FOR FNAME ADD.L #1,DIRITEMS MOVE.L INFOBLOCK,A0 ;r8P&START OF INFO ADD.L #124,A0 ;START OF LENGTH MOVE.L (A0),D0 ;GET FILELEN ASR.L #1,D0 ;CONVERT TO WORDS MOVE.W D0,(A5)+ ;2BYTES FOR LENGTH MOVE.W #0,(A5)+ ;2BYTES FOR INVERSE BRA DIRLOOP NOTST: MOVE.L #DISKNAME,A1 MOVE.W #'NO',(A1)+ MOVE.W #'T ',(A1)+ MOVE.W #'ST',(A1) ERROR: MOVE.L #6,D0 ;LEN OF MESS MOVE.L #DISKNAME,A0 ;START OF MESS MOVE.L #33,D1 ;X MOVE.L #4,D2 ;Y BSR PRINTMESS MOVE.L #0,DIRPOS ;START FROM DIR ITEM 1 BSR SORTDIR r9Q6. BSR SHOWDIR BSR DELAY RTS * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * PRINT ALL THE DIRECTORY SHOWDIR: MOVEQ #13,D5 ;14 ITEMS MOVE.L DIRINFO,A0 MOVE.L DIRPOS,D0 ;GET THE CURRENT MULU #34,D0 ;POS IN THE DIR AND ADD.L D0,A0 ;ADD TO START OF DIRINFO MOVE.L A0,A5 MOVE.L #1,YCOUNTER PRINTDIR: MOVE.L A5,A0 ;POP DOWN THE VAAAL-UE MOVEQ #22,D0 ;LENGTH MOVEQ #2,D1 ;X POS ADD.L #1,YCOUNTER ;ADD IT MOVE.L YCOUNTER,r:RfeD2 ;Y POSITION BSR PRINTMESS ;HIT IT ADD.L #34,A5 ;NEXT DIR ITEM DBF D5,PRINTDIR ;LOOP IT RTS * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * LOCKNAME: DC.B ':' DC.W 0 INSERTNAME: DC.B 'INSERT' DC.W 0 DIRITEMS: DC.L 0 DIRPOS: DC.L 0 PLSTITEMS: DC.L 0 PLSTPOS: DC.L 0 LOCKED: DC.L 0 DISKNAME: DC.L 0,0 DELCOUNTER: DC.L 0 YCOUNTER: DC.L 0 WRITEPROTECT: DC.L 0 INVERT: DC.L 0 PLSTNAME: DC.B 'st-00:PLST' DC.W 0 PLSTTEMPNAME: DC.B 'st-0r;S0:PLST.TEMP' DC.W 0 ST00NAME: DC.B 'st-00:' DC.W 0 ****************************************************************************** * CLEAR ALL * CLEARALL: CMP.L #0,DIRITEMS BEQ.S CAXIT MOVE.L DIRINFO,A0 ADD.L #32,A0 ;FIRST CLEAR POS MOVE.L DIRITEMS,D0 SUB.L #1,D0 ;TO USE WITH DBF CALOOP: CLR.B (A0) ADD.L #34,A0 ;NEXT POS DBF D0,CALOOP BSR SHOWDIR BSR DELAY CAXIT: RTS ***************************************************************************** * MAr<Cޢ[RK ALL * MARKALL: CMP.L #0,DIRITEMS BEQ.S MAXIT MOVE.L DIRINFO,A0 ADD.L #32,A0 ;FIRST CLEAR POS MOVE.L DIRITEMS,D0 SUB.L #1,D0 ;TO USE WITH DBF MALOOP: MOVE.B #1,(A0) ADD.L #34,A0 ;NEXT POS DBF D0,MALOOP BSR SHOWDIR MOVE.L SCREEN,A0 ADD.L #(16*40)+2,A0 ;START OF SCREEN MOVE.W #11,D0 ;WIDTH MOVE.W #8*14,D1 ;HEIGHT MOVE.W #18,D2 MOVE.W #18,D3 BSR BLIT3 BSR DELAY MAXIT: RTS *****************************************************************MUjV,D4),8(A6) MOVE.W 6(A3,D4),14(A6) MOVE.W 18(A6),8(A5) BRA.S MT_NOSAMPLECHANGE MT_DISPLACE MOVE.L 4(A6),D2 ADD.L D3,D2 MOVE.L D2,10(A6) MOVE.W 6(A3,D4),14(A6) MOVE.W 18(A6),8(A5) MT_NOSAMPLECHANGE TST.W (A6) BEQ.S MT_RETROUT MOVE.W (A6),16(A6) MOVE.W 20(A6),$DFF096 MOVE.W AUDDMA,$DFF096 MOVE.L 4(A6),(A5) MOVE.W 8(A6),4(A5) MOVE.W (A6),6(A5) MOVE.W 20(A6),D0 OR.W D0,MT_DMACON MT_RETROUT TST.W (A6) BEQ.S MT_NONEWPER MOVE.W (A6),22(A6) MT_NONEWPER NV %MOVE.B 2(A6),D0 AND.B #$0F,D0 CMP.B #11,D0 BEQ.S MT_POSJMP CMP.B #12,D0 BEQ.S MT_SETVOL CMP.B #13,D0 BEQ.S MT_BREAK CMP.B #14,D0 BEQ.S MT_SETFIL CMP.B #15,D0 BEQ MT_SETSPEED RTS MT_POSJMP NOT.W MT_STATUS MOVEQ #$00,D0 MOVE.B 3(A6),D0 SUBQ.B #$01,D0 MOVE.L D0,MT_PARTNRPLAY RTS MT_SETVOL MOVE.B 3(A6),8(A5) RTS MT_BREAK NOT.W MT_STATUS RTS MT_SETFIL MOVEQ #$00,D0 MOVE.B 3(A6),D0 AND.B #$01,D0 ROL.B #$01,D0 AND.B #$FD,$BFE001 OR.B D0OWon,$BFE001 RTS MT_AUD1TEMP DS.W 10 DC.W $0001 DS.W 2 MT_AUD2TEMP DS.W 10 DC.W $0002 DS.W 2 MT_AUD3TEMP DS.W 10 DC.W $0004 DS.W 2 MT_AUD4TEMP DS.W 10 DC.W $0008 DS.W 2 MT_PARTNOTE DC.L 0 MT_PARTNRPLAY DC.L 0 MT_COUNTER DC.L 0 MT_PARTPOINT DC.L 0 MT_SAMPLES DC.L 0 MT_SAMPLE1 DS.L 15 MT_MAXPART DC.W $0000 MT_DMACON DC.W $0000 MT_STATUS DC.W $0000 MT_ARPEGGIO DC.W $0358,$0328,$02FA,$02D0,$02A6,$0280,$025C DC.W $023A,$021A,$01FC,$01E0,$01C5,$01AC,$0194,$017D DCP#s.W $0168,$0153,$0140,$012E,$011D,$010D,$00FE,$00F0 DC.W $00E2,$00D6,$00CA,$00BE,$00B4,$00AA,$00A0,$0097 DC.W $008F,$0087,$007F,$0078,$0071,$0000,$0000,$0000 MT_DATA DC.L 0 ************************************************************************** .L #2,D2 MULU #$1E,D4 MOVE.L 0(A1,D2),4(A6) MOVE.W 0(A3,D4),8(A6) MOVE.W 2(A3,D4),18(A6) MOVE.W 4(A3,D4),D3 TST.W D3 BEQ.S MT_DISPLACE MOVE.L 4(A6),D2 ADD.L D3,D2 MOVE.L D2,4(A6) MOVE.L D2,10(A6) MOVE.W 6(A3r2J藄************************************************************************* ************ * READ DIR * ************ READDIR: MOVE.L DIRINFO,A0 MOVE.L #DIRLEN-1,D0 CLEARDIR: CLR.B (A0)+ DBF D0,CLEARDIR MOVE.L #6,D0 ;LEN OF MESS MOVE.L #INSERTNAME,A0 ;START OF MESS MOVE.L #33,D1 ;X MOVE.L #4,D2 ;Y BSR PRINTMESS MOVE.L #0,DIRITEMS ;RESET DIS COUNTER MOVE.L DOSBASE,A6 MOVE.L #LOCKNAME,D1 MOVE.L #ACCESS_READ,D2 JSR LOCK(A6) MOVE.L D0,LOCKED CMP.L #0,DnZخ ?? ?O?? <  ? ?O?? <  ? ?@?? H8   ?? ?O?? ?  ?? ?O?? ?  <? >O?? ?  <? n[MہO? ? ?  <?     ?  8 $@ $@ $@p $@p  ?$@p  ?$An\8V  ?$A w $A w{ $@ w} $@p w~ $@w_ @$@w '_ ~ ' p  $@w @w @pw @pn]?  $@p  ?$A  ?$A  ?$A  $@  $@p $@  $@ ?0 (@ (@n^'[ (x@ (~@ (@ (@ (w@?' (?}@' (q@'C@g߿y' (@'g~yy<nI@O'_y?' <(s@?'yy<<߿y? x(@'g~y<<߿y? x(@'@y<`<)@B?`cck  cc!!c?~>c~@@@@$ $ D0D0   P P PP  ```@   B B`a` $ $`a` (x (`a` xaZ. 0 (x (0 HxHs =qB Bq$  $}q881 m 1 p0{{0x0́1퍍ppPxP0 18p8bYqƌHxH0p8x0pxpp y?p{%0p@{@1}p {'   0   1l p  {<cU ?{?'  1px<??' 1  p x<?? 0p @x<?? @0p @x<==@p    x   x  0 @x @0 @xd9b @͌0 x y0 xx 1 @x{x @010 @ x{x @ 000 @>??~8~8??????||  || Ki>_VOICE1 MOVE.L 10(A6),$DFF0B0 MOVE.W #1,$DFF0B4 MT_VOICE1 LEA MT_AUD1TEMP(PC),A6 CMP.W #1,14(A6) BNE.S MT_VOICE0 MOVE.L 10(A6),$DFF0A0 MOVE.W #1,$DFF0A4 MT_VOICE0 MOVE.L MT_PARTNOTE,D0 ADD.L #$10,D0 MOVE.L D0,MT_PARTNOTE CMP.L #$400,D0 BNE.S MT_STOP MT_HIGHER CLR.L MT_PARTNOTE ADDQ.L #1,MT_PARTNRPLAY MOVEQ #$00,D0 MOVE.W MT_MAXPART,D0 MOVE.L MT_PARTNRPLAY,D1 CMP.L D0,D1 BNE.S MT_STOP CLR.L MT_PARTNRPLAY MT_STOP TST.W MT_STATUS BEQ.S MT_STOP2 LT) CLR.W MT_STATUS BRA.S MT_HIGHER MT_STOP2 RTS MT_PLAYIT MOVE.L 0(A0,D1),(A6) ADDQ.L #4,D1 MOVEQ #$00,D2 MOVE.B 2(A6),D2 AND.B #$F0,D2 LSR.B #4,D2 TST.B D2 BEQ.S MT_NOSAMPLECHANGE MOVEQ #$00,D3 LEA MT_SAMPLES(PC),A1 MOVE.L D2,D4 ASL.L #2,D2 MULU #$1E,D4 MOVE.L 0(A1,D2),4(A6) MOVE.W 0(A3,D4),8(A6) MOVE.W 2(A3,D4),18(A6) MOVE.W 4(A3,D4),D3 TST.W D3 BEQ.S MT_DISPLACE MOVE.L 4(A6),D2 ADD.L D3,D2 MOVE.L D2,4(A6) MOVE.L D2,10(A6) MOVE.W 6(A3 k x= ~3~c <>#?99 ̀< xc?kccx$ 39 < c $ 3) < c~> < < @ 2s!)  ~|c~>~ &A l3!)  w< ə!??9 c !%1  = >~3~c><'g??99 ÀA< c?kcc$39%) <= c $9)%)<=~ c~>~ <<<<  rp@ss2  `|c~>` AA  `w`9 fcf/% = f~3~cf<99f9" ̀<~ c?kcc$)9$)92<<FnPCLR.L MT_COUNTER BRA MT_ROUT2 MT_NOTSIX LEA MT_AUD1TEMP(PC),A6 TST.B 3(A6) BEQ.S MT_ARP1 LEA $DFF0A0,A5 BSR.S MT_ARPROUT MT_ARP1 LEA MT_AUD2TEMP(PC),A6 TST.B 3(A6) BEQ.S MT_ARP2 LEA $DFF0B0,A5 BSR.S MT_ARPROUT MT_ARP2 LEA MT_AUD3TEMP(PC),A6 TST.B 3(A6) BEQ.S MT_ARP3 LEA $DFF0C0,A5 BSR.S MT_ARPROUT MT_ARP3 LEA MT_AUD4TEMP(PC),A6 TST.B 3(A6) BEQ.S MT_ARP4 LEA $DFF0D0,A5 BRA.S MT_ARPROUT MT_ARP4 RTS MT_ARPROUT MOVE.B 2(A6),D0 AND.B #$0F,D0 TGoHST.B D0 BEQ.S MT_ARPEGRT CMP.B #1,D0 BEQ.S MT_PORTUP CMP.B #2,D0 BEQ.S MT_PORTDWN RTS MT_PORTUP MOVEQ #$00,D0 MOVE.B 3(A6),D0 SUB.W D0,22(A6) CMP.W #$71,22(A6) BPL.S MT_OK1 MOVE.W #$71,22(A6) MT_OK1 MOVE.W 22(A6),6(A5) RTS MT_PORTDWN MOVEQ #$00,D0 MOVE.B 3(A6),D0 ADD.W D0,22(A6) CMP.W #$358,22(A6) BMI.S MT_OK2 MOVE.W #$358,22(A6) MT_OK2 MOVE.W 22(A6),6(A5) RTS MT_ARPEGRT CMP.L #1,MT_COUNTER BEQ.S MT_LOOP2 CMP.L #2,MT_COUNTER BEQ.S MT_LOOHpgP3 CMP.L #3,MT_COUNTER BEQ.S MT_LOOP4 CMP.L #4,MT_COUNTER BEQ.S MT_LOOP2 CMP.L #5,MT_COUNTER BEQ.S MT_LOOP3 RTS MT_LOOP2 MOVEQ #$00,D0 MOVE.B 3(A6),D0 LSR.B #4,D0 BRA.S MT_CONT MT_LOOP3 MOVEQ #$00,D0 MOVE.B 3(A6),D0 AND.B #$0F,D0 BRA.S MT_CONT MT_LOOP4 MOVE.W 16(A6),D2 BRA.S MT_ENDPART MT_CONT ASL.W #1,D0 MOVEQ #$00,D1 MOVE.W 16(A6),D1 LEA MT_ARPEGGIO(PC),A0 MT_LOOP5 MOVE.W 0(A0,D0),D2 CMP.W (A0),D1 BEQ.S MT_ENDPART ADDQ.L #2,A0 BRA.S MIq(T_LOOP5 MT_ENDPART MOVE.W D2,6(A5) RTS MT_ROUT2 * LEA MT_DATA(PC),A0 MOVE.L MT_DATA,A0 MOVE.L A0,A3 ADD.L #$0C,A3 MOVE.L A0,A2 ADD.L #$1D8,A2 ADD.L #$258,A0 MOVE.L MT_PARTNRPLAY,D0 MOVEQ #$00,D1 MOVE.B 0(A2,D0),D1 ASL.L #$08,D1 ASL.L #$02,D1 ADD.L MT_PARTNOTE,D1 MOVE.L D1,MT_PARTPOINT CLR.W MT_DMACON LEA $DFF0A0,A5 LEA MT_AUD1TEMP(PC),A6 BSR MT_PLAYIT LEA $DFF0B0,A5 LEA MT_AUD2TEMP(PC),A6 BSR MT_PLAYIT LEA $DFF0C0,A5 LEA MT_AUD3TEMP(JhLZPC),A6 BSR MT_PLAYIT LEA $DFF0D0,A5 LEA MT_AUD4TEMP(PC),A6 BSR MT_PLAYIT MOVE.W #$01F4,D0 MT_RLS DBF D0,MT_RLS MOVE.W #$8000,D0 OR.W MT_DMACON,D0 MOVE.W D0,$DFF096 MOVE.W AUDDMA,$DFF096 LEA MT_AUD4TEMP(PC),A6 CMP.W #1,14(A6) BNE.S MT_VOICE3 MOVE.L 10(A6),$DFF0D0 MOVE.W #1,$DFF0D4 MT_VOICE3 LEA MT_AUD3TEMP(PC),A6 CMP.W #1,14(A6) BNE.S MT_VOICE2 MOVE.L 10(A6),$DFF0C0 MOVE.W #1,$DFF0C4 MT_VOICE2 LEA MT_AUD2TEMP(PC),A6 CMP.W #1,14(A6) BNE.S MT sF c`$))$))2<< c~><<<<0    s  |c~>>A w 2?9 `c` 3ƙ)  ~~3~c~<?9t4 ̀< c?kcc$9 < c $) <~ c~>~<<  99 ????1%= <9))?<$9_jA/9< $)) < < <  @@@@!?!`~cc??`cw`c`@$@$3`~c>@BvfOA<~ ??< ?<? <?? |0 ~ |>   ?@  wmd  ?  ? ??>?~8???| | ???x  |~ ~ ? ???  ?? ? z0{> ??<> ?@ ?  ? x@>x??T~Zt0@`c?~?>?c?c `c`c cc>w c`c󜟜>??~?>~ ?c@@>>|貒???????????>}86?>P6 ???????'X820p32P30>r308880 <<|c~> dd8w8 DDc@ dd ja19 ~3~c $̀$ c?kcc ~ c~~ c~>~ x x 2s )   ~|c~>~@ A )  w  9)  c H% /)M`?NiOgPeQREO????Symn J ??       ? ?  ? ? @30  ? yOy = ?x x< yy < ? < yy y< ? < ` <> ? < n YfF    ??        8? <   > >O?? < u{+Q ? ???p?  ??@8? ?B<,n???????Cjk????DlEeFhGE???HC????I]J[KYL_h<Lf?n x= <!?!!6a!va!a!a!6a!6a!6a!6a!!!!!!!n e g ! |O'?!? 8O&! O$! D@c! lO$!? |O&!? |O'?!? |O'!?!    =ʐi?>.B????,} OO(jdp N$"<I(l/ / g ,倲l"4(T`,2(jtp NJg2**p$A. J (F yy<<߿y?g~y<<߿y?@y<O<?<?*{}y?C]+r ------- * ----------------------------------------------------- * ---- IMPROVED AND OMPTIMIZED BY UNKNOWN OF D.O.C ---- * ------ AND SLIGHTLY MODIFIED BY CRAIN OF 101 -------- * --------- BASED ON THE PLAYROUTINE FROM TJC --------- * ----------------------------------------------------- MT_INIT * LEA MT_DATA(PC),A0 MOVE.L MT_DATA,A0 ADD.L #$01D8,A0 MOVE.L #$0080,D0 MOVEQ #$00,D1 MT_INIT1 MOVE.L D1,D2 SUBQ.W #1,D0 MT_INIT2 MOVE.B (A0)+,D1 CMP.B D2,D1 BGT.S MT_INIT1Dn{ DBF D0,MT_INIT2 ADDQ.B #1,D2 MT_INIT3 * LEA MT_DATA(PC),A0 MOVE.L MT_DATA,A0 LEA MT_SAMPLE1(PC),A1 ASL.L #$08,D2 ASL.L #$02,D2 ADD.L #$0258,D2 ADD.L A0,D2 MOVEQ #$0E,D0 MT_INIT4 MOVE.L D2,(A1)+ MOVEQ #$00,D1 MOVE.W 42(A0),D1 ASL.L #1,D1 ADD.L D1,D2 ADD.L #$1E,A0 DBF D0,MT_INIT4 LEA MT_SAMPLE1(PC),A0 MOVEQ #$00,D0 MT_CLEAR MOVE.L 0(A0,D0),A1 CLR.L (A1) ADDQ.L #4,D0 CMP.L #$3C,D0 BNE.S MT_CLEAR CLR.W $DFF0A8 CLR.W $DFF0B8 CLR.W $DFF0n9fNuu,RCp_Cpp@088 ?Ѕ? u,RCpJS@ LEA MT_AUD1TEMP(PC),A6 BSR MT_PLAYIT LEA $DFF0B0,A5 LEA MT_AUD2TEMP(PC),A6 BSR MT_PLAYIT LEA $DFF0C0,A5 LEA MT_AUD3TEMP(PC),A6 BSR MT_PLAYIT LEA $DFF0D0,A5 LEA MT_AUD4TEMP(PC),A6 BSR MT_PLAYIT MOVE.W #$01F4,D0 MT_RLS DBF D0,MT_RLS MOVE.W #$8000,D0 OR.W MT_DMACON,D0 MOVE.W D0,$DFF096 MOVE.W AUDDMA,$DFF096 LEA MT_AUD4TEMP(PC),A6 CMP.W #1,14(A6) BNE.S MT_VOICE3 MOVE.L 10(A6),$DFF0D0 MOVE.W #1,$DFF0D4 MT_VOICE3 LEA MT_AUD3TEMP(PC),A6 CMP.W KxY#1,14(A6) BNE.S MT_VOICE2 MOVE.L 10(A6),$DFF0C0 MOVE.W #1,$DFF0C4 MT_VOICE2 LEA MT_AUD2TEMP(PC),A6 CMP.W #1,14(A6) BNE.S MT_VOICE1 MOVE.L 10(A6),$DFF0B0 MOVE.W #1,$DFF0B4 MT_VOICE1 LEA MT_AUD1TEMP(PC),A6 CMP.W #1,14(A6) BNE.S MT_VOICE0 MOVE.L 10(A6),$DFF0A0 MOVE.W #1,$DFF0A4 MT_VOICE0 MOVE.L MT_PARTNOTE,D0 ADD.L #$10,D0 MOVE.L D0,MT_PARTNOTE CMP.L #$400,D0 BNE.S MT_STOP MT_HIGHER CLR.L MT_PARTNOTE ADDQ.L #1,MT_PARTNRPLAY MOVEQ #$00,D0 MOVE.W MTL >_MAXPART,D0 MOVE.L MT_PARTNRPLAY,D1 CMP.L D0,D1 BNE.S MT_STOP CLR.L MT_PARTNRPLAY MT_STOP TST.W MT_STATUS BEQ.S MT_STOP2 CLR.W MT_STATUS BRA.S MT_HIGHER MT_STOP2 RTS MT_PLAYIT MOVE.L 0(A0,D1),(A6) ADDQ.L #4,D1 MOVEQ #$00,D2 MOVE.B 2(A6),D2 AND.B #$F0,D2 LSR.B #4,D2 TST.B D2 BEQ.S MT_NOSAMPLECHANGE MOVEQ #$00,D3 LEA MT_SAMPLES(PC),A1 MOVE.L D2,D4 ASL.L #2,D2 MULU #$1E,D4 MOVE.L 0(A1,D2),4(A6) MOVE.W 0(A3,D4),8(A6) MOVE.W 2(A3,D4),18(A6) M] MOVE.W 4(A3,D4),D3 TST.W D3 BEQ.S MT_DISPLACE MOVE.L 4(A6),D2 ADD.L D3,D2 MOVE.L D2,4(A6) MOVE.L D2,10(A6) MOVE.W 6(A3,D4),8(A6) MOVE.W 6(A3,D4),14(A6) MOVE.W 18(A6),8(A5) BRA.S MT_NOSAMPLECHANGE MT_DISPLACE MOVE.L 4(A6),D2 ADD.L D3,D2 MOVE.L D2,10(A6) MOVE.W 6(A3,D4),14(A6) MOVE.W 18(A6),8(A5) MT_NOSAMPLECHANGE TST.W (A6) BEQ.S MT_RETROUT MOVE.W (A6),16(A6) MOVE.W 20(A6),$DFF096 MOVE.W AUDDMA,$DFF096 MOVE.L 4(A6),(A5) MOVE.W 8(A6),4(A5) NMOVE.W (A6),6(A5) MOVE.W 20(A6),D0 OR.W D0,MT_DMACON MT_RETROUT TST.W (A6) BEQ.S MT_NONEWPER MOVE.W (A6),22(A6) MT_NONEWPER MOVE.B 2(A6),D0 AND.B #$0F,D0 CMP.B #11,D0 BEQ.S MT_POSJMP CMP.B #12,D0 BEQ.S MT_SETVOL CMP.B #13,D0 BEQ.S MT_BREAK CMP.B #14,D0 BEQ.S MT_SETFIL CMP.B #15,D0 BEQ MT_SETSPEED RTS MT_POSJMP NOT.W MT_STATUS MOVEQ #$00,D0 MOVE.B 3(A6),D0 SUBQ.B #$01,D0 MOVE.L D0,MT_PARTNRPLAY RTS MT_SETVOL MOVE.B 3(A6),8(A5) RTS MT_BO|jISREAK NOT.W MT_STATUS RTS MT_SETFIL MOVEQ #$00,D0 MOVE.B 3(A6),D0 AND.B #$01,D0 ROL.B #$01,D0 AND.B #$FD,$BFE001 OR.B D0,$BFE001 RTS MT_AUD1TEMP DS.W 10 DC.W $0001 DS.W 2 MT_AUD2TEMP DS.W 10 DC.W $0002 DS.W 2 MT_AUD3TEMP DS.W 10 DC.W $0004 DS.W 2 MT_AUD4TEMP DS.W 10 DC.W $0008 DS.W 2 MT_PARTNOTE DC.L 0 MT_PARTNRPLAY DC.L 0 MT_COUNTER DC.L 0 MT_PARTPOINT DC.L 0 MT_SAMPLES DC.L 0 MT_SAMPLE1 DS.L 15 MT_MAXPART DC.W $0000 MT_DMACON DC.W $0000 MT_STATUP1S DC.W $0000 MT_ARPEGGIO DC.W $0358,$0328,$02FA,$02D0,$02A6,$0280,$025C DC.W $023A,$021A,$01FC,$01E0,$01C5,$01AC,$0194,$017D DC.W $0168,$0153,$0140,$012E,$011D,$010D,$00FE,$00F0 DC.W $00E2,$00D6,$00CA,$00BE,$00B4,$00AA,$00A0,$0097 DC.W $008F,$0087,$007F,$0078,$0071,$0000,$0000,$0000 MT_DATA DC.L 0 ************************************************************************** .L #2,D2 MULU #$1E,D4 MOVE.L 0(A1,D2),4(A6) MOVE.W 0(A3,D4),8(A6) MOVE.W 2(A3,D4),18(A6) ?åhT PLANE IN DEST MOVE.L A2,A4 ADD.L #2,A4 ;2ND PLANE IN DEST MOVEQ #0,D0 MOVE.B (A0),D0 SUB.B #48,D0 ADD.L D0,A1 ;A1 = ACTUAL SOURCE MOVE.L A1,A3 ;A3 WILL BE THE 2ND SOURCE ADD.L #(10*8),A3 ;A3 = ACTUAL SOURCE #2 BSR SCORE_IT MOVE.L INTBASE,A6 MOVE.L WINDOWPTR,A0 MOVE.L #NEWPOINTER,A1 MOVE.L #16,D0 MOVE.L #16,D1 MOVEQ #0,D2 MOVEQ #0,D3 JSR SETPOINTER(A6) RTS SCORE_IT: MOVEQ #8-1,D0 ;LOOP 8 TIMES SCORE_LOOP1: MOVE.B (A1),D1 ;GET BYTE OF SOURC@ė3E MOVE.B (A3),D2 ;SOURCE2 MOVE.B D1,(A2) ;STORE IN DEST MOVE.B D2,(A4) ;DEST 2 ADD.L #10,A1 ;NEW SOURCE ADD.L #10,A3 ;NEW SOURCE2 ADD.L #4,A2 ;NEW DEST ADD.L #4,A4 ;NEW DEST2 DBF D0,SCORE_LOOP1 RTS NUMBERS: DC.B $3C,$1C,$7C,$7C,$0E,$7E,$3C,$7E,$3C,$3C DC.B $7E,$3C,$7E,$7E,$1E,$7E,$7C,$7E,$7E,$7E DC.B $7E,$3C,$7E,$7E,$3E,$7E,$7C,$7E,$7E,$7E DC.B $7E,$3C,$7E,$3E,$7F,$7E,$7E,$1E,$7E,$7E DC.B $7E,$1C,$7E,$7E,$7F,$7E,$7E,$1C,$7E,$3E DC.B $7E,$1C,$7E,$7EA,$7F,$7E,$7E,$1C,$7E,$3E DC.B $3C,$1C,$7E,$7C,$0E,$7C,$3C,$1C,$3C,$3C DC.B $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 DC.B $3C,$1C,$7C,$7C,$0E,$7E,$3C,$7E,$3C,$3C DC.B $66,$34,$46,$46,$1A,$42,$64,$42,$66,$66 DC.B $5A,$24,$7A,$7A,$32,$5E,$5C,$7A,$5A,$5A DC.B $5A,$34,$66,$26,$6B,$46,$46,$16,$66,$62 DC.B $5A,$14,$5E,$7A,$41,$7A,$5A,$14,$5A,$3A DC.B $66,$14,$42,$46,$7B,$46,$66,$14,$66,$26 DC.B $3C,$1C,$7E,$7C,$0E,$7C,$3C,$1C,$3C,$3C DC.B $00,$00,$00,$00,$00,$00,$00,$00, :l modem which can be made for about STG 50, and a VHF transmitter/receiver which one can purchase for about STG 200. It is perhaps a bit too much for some users, but when keeping in mind that you dont have to pay the huge phone bills which sometimes arrive (often at least desired times) it is really worthwhile to go through the trouble to become a RADIO AMATEUR. To become a Radio Amateur one must sit for an exam, which is a bit different from country to country. But basically one ne שDeds to know some electronics and study the regulations, and that's it. Some exams are multiple choice, so it makes it easier. Once you have passed this exam, you are issued with a licence and thus you can buy the transmitter. (NOTE: You can buy the transmitter only after passing the exam, thus having a CALL SIGN. This helps them to eliminate lamers !!) Once you have got the transmitter you can either use it as a sort of telephone, just to transmit speech, or you can connect it to the ȅ # apparatus mentioned above, and begin transmitting in packet radio. This is more fun, as there are lots of users already, as well as BBS. The demonstration we had included being connected to a BBS too ! Although it was a very small BBS and it was dedicated to C64/128, there were also programs for IBM (shit), Atari (shit), and of course Amiga. The programs included Virus and Dos2Dos !! (Note: As I already said, this happened a while ago, so do not expect Afterburner to be there, coz i `ob\t was not yet released !!) Since we were more interested on the Amiga side of this thing, we told our friend to leave a message in a BBS to ask if there is an Amiga program similar to DIGICOM. A few days later we got a favourable reply ! Unfortunately, VHF limits you to direct sight connection, ie. one can only communicate to limited distances. From Malta we can connect quite easily to Scicily. But there are the so-called Digipeaters which can be used, thus enabling us to connect to ʙ= more distant places, and it is even possible to connect to UK or Germany !! Moreover, recently the 50M band has been given to use of Radio Amateurs, and although it is not too much used till now, one can connect even directly to UK or Germany from Malta, so make sure that your transmitter can use this range too ! There are more nice features, such as the Oscar 13, a satellite which can be used by Radio Amateurs, and which will enable more distant connections. But to explain everythi ˿ng would take lots of space and time !! I suggest that those who are interested should immediately contact a local Radio Amateur Club for more details. I hope that I did not take too much mistakes, but I am still studying to sit for the RA exam. In the meanwhile we would be very grateful if there are groups who are using/will be using VHF transmitting will contact us. Most important for us is to get the software for the Amiga to use packet radio, called ONLINE, so any news of this p j!rogram (or other equivalent program) will be a great help. TMH - PO BOX 529 - Valletta - Malta nd has been given to use of Radio Amateurs, and although it is not too much used till now, one can connect even directly to UK or Germany from Malta, so make sure that your transmitter can use this range too ! There are more nice features, such as the Oscar 13, a satellite which can be used by Radio Amateurs, and which will enable more distant connections. But to explain everythiB$00,$00 DC.W 0 ;PAD ************************************************************************** ********************* * SET THE COLORS * * A1=START OF TABLE * * D0=NO OF COLORS * ********************* LOADRGB4: SUBQ #1,D0 LEA COLTAB,A0 LRGBL: MOVE.W (A1)+,(A0) ADD.L #4,A0 DBF D0,LRGBL RTS ************************************************************************** * ----------------------------------------------------- * ------- D.O.C SOUNDTRACKER V2.0 - PLAYROUTINE@I0,D2 MOVEQ #0,D3 JSR SETPOINTER(A6) RTS SCORE_IT: MOVEQ #8-1,D0 ;LOOP 8 TIMES SCORE_LOOP1: MOVE.B (A1),D1 ;GET BYTE OF SOURCE MOVE.B (A3),D2 ;SOURCE2 MOVE.B D1,(A2) ;STORE IN DEST MOVE.B D2,(A4) ;DEST 2 ADD.L #10,A1 ;NEW SOURCE ADD.L #10,A3 ;NEW SOURCE2 ADD.L #4,A2 ;NEW DEST ADD.L #4,A4 ;NEW DEST2 DBF D0,SCORE_LOOP1 RTS NUMBERS: DC.B $3C,$1C,$7C,$7C,$0E,$7E,$3C,$7E,$3C,$3C DC.B $7E,$3C,$7E,$7E,$1E,$7E,$7C,$7E,$7E,$7E DC.B $7E,$3C,$7E,$7E,$3E,$7AϿj+E,$7C,$7E,$7E,$7E DC.B $7E,$3C,$7E,$3E,$7F,$7E,$7E,$1E,$7E,$7E DC.B $7E,$1C,$7E,$7E,$7F,$7E,$7E,$1C,$7E,$3E DC.B $7E,$1C,$7E,$7E,$7F,$7E,$7E,$1C,$7E,$3E DC.B $3C,$1C,$7E,$7C,$0E,$7C,$3C,$1C,$3C,$3C DC.B $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 DC.B $3C,$1C,$7C,$7C,$0E,$7E,$3C,$7E,$3C,$3C DC.B $66,$34,$46,$46,$1A,$42,$64,$42,$66,$66 DC.B $5A,$24,$7A,$7A,$32,$5E,$5C,$7A,$5A,$5A DC.B $5A,$34,$66,$26,$6B,$46,$46,$16,$66,$62 DC.B $5A,$14,$5E,$7A,$41,$7A,$5A,$14,$5A,$3ABI9: DC.B $66,$14,$42,$46,$7B,$46,$66,$14,$66,$26 DC.B $3C,$1C,$7E,$7C,$0E,$7C,$3C,$1C,$3C,$3C DC.B $00,$00,$00,$00,$00,$00,$00,$00,$00,$00 DC.W 0 ;PAD ************************************************************************** ********************* * SET THE COLORS * * A1=START OF TABLE * * D0=NO OF COLORS * ********************* LOADRGB4: SUBQ #1,D0 LEA COLTAB,A0 LRGBL: MOVE.W (A1)+,(A0) ADD.L #4,A0 DBF D0,LRGBL RTS *********************************************C>vM***************************** * ----------------------------------------------------- * ------- D.O.C SOUNDTRACKER V2.0 - PLAYROUTINE ------- * ----------------------------------------------------- * ---- IMPROVED AND OMPTIMIZED BY UNKNOWN OF D.O.C ---- * ------ AND SLIGHTLY MODIFIED BY CRAIN OF 101 -------- * --------- BASED ON THE PLAYROUTINE FROM TJC --------- * ----------------------------------------------------- MT_INIT * LEA MT_DATA(PC),A0 MOVE.L MT_DATA,A0 ADD.L #$01DDvj8,A0 MOVE.L #$0080,D0 MOVEQ #$00,D1 MT_INIT1 MOVE.L D1,D2 SUBQ.W #1,D0 MT_INIT2 MOVE.B (A0)+,D1 CMP.B D2,D1 BGT.S MT_INIT1 DBF D0,MT_INIT2 ADDQ.B #1,D2 MT_INIT3 * LEA MT_DATA(PC),A0 MOVE.L MT_DATA,A0 LEA MT_SAMPLE1(PC),A1 ASL.L #$08,D2 ASL.L #$02,D2 ADD.L #$0258,D2 ADD.L A0,D2 MOVEQ #$0E,D0 MT_INIT4 MOVE.L D2,(A1)+ MOVEQ #$00,D1 MOVE.W 42(A0),D1 ASL.L #1,D1 ADD.L D1,D2 ADD.L #$1E,A0 DBF D0,MT_INIT4 LEA MT_SAMPLE1(PC),A0 MOVEQ #$00,D0 Eט! MT_CLEAR MOVE.L 0(A0,D0),A1 CLR.L (A1) ADDQ.L #4,D0 CMP.L #$3C,D0 BNE.S MT_CLEAR CLR.W $DFF0A8 CLR.W $DFF0B8 CLR.W $DFF0C8 CLR.W $DFF0D8 CLR.L MT_PARTNRPLAY CLR.L MT_PARTNOTE CLR.L MT_PARTPOINT * MOVE.B MT_DATA+$1D6,MT_MAXPART+1 MOVE.L MT_DATA,A4 ADD.L #$1D6,A4 MOVE.B (A4),MT_MAXPART+1 RTS MT_END CLR.W $DFF0A8 CLR.W $DFF0B8 CLR.W $DFF0C8 CLR.W $DFF0D8 MOVE.W #$000F,$DFF096 RTS MT_SETSPEED MOVE.B 3(A6),D0 AND.B #$0F,D0 BEQ.S MT_BACK F CLR.L MT_COUNTER MOVE.B D0,MT_COOL+5 MT_BACK RTS MT_MUSIC ADDQ.L #1,MT_COUNTER MT_COOL CMP.L #6,MT_COUNTER BNE.S MT_NOTSIX CLR.L MT_COUNTER BRA MT_ROUT2 MT_NOTSIX LEA MT_AUD1TEMP(PC),A6 TST.B 3(A6) BEQ.S MT_ARP1 LEA $DFF0A0,A5 BSR.S MT_ARPROUT MT_ARP1 LEA MT_AUD2TEMP(PC),A6 TST.B 3(A6) BEQ.S MT_ARP2 LEA $DFF0B0,A5 BSR.S MT_ARPROUT MT_ARP2 LEA MT_AUD3TEMP(PC),A6 TST.B 3(A6) BEQ.S MT_ARP3 LEA $DFF0C0,A5 BSR.S MT_ARPROUT MT_ARP3 LEA MT_AUD4TEMPGl(PC),A6 TST.B 3(A6) BEQ.S MT_ARP4 LEA $DFF0D0,A5 BRA.S MT_ARPROUT MT_ARP4 RTS MT_ARPROUT MOVE.B 2(A6),D0 AND.B #$0F,D0 TST.B D0 BEQ.S MT_ARPEGRT CMP.B #1,D0 BEQ.S MT_PORTUP CMP.B #2,D0 BEQ.S MT_PORTDWN RTS MT_PORTUP MOVEQ #$00,D0 MOVE.B 3(A6),D0 SUB.W D0,22(A6) CMP.W #$71,22(A6) BPL.S MT_OK1 MOVE.W #$71,22(A6) MT_OK1 MOVE.W 22(A6),6(A5) RTS MT_PORTDWN MOVEQ #$00,D0 MOVE.B 3(A6),D0 ADD.W D0,22(A6) CMP.W #$358,22(A6) BMI.S MT_OK2 MOVE.<֩LTAPTH MOVE.L A1,$04C(A5) ;BLTBPTH MOVE.L A1,$054(A5) ;BLTDPTH CLR.W $064(A5) ;BLTAMOD CLR.W $062(A5) ;BLTBMOD CLR.W $066(A5) ;BLTDMOD CLR.W $042(A5) ;BLTCON1 LSL.W #8,D2 LSL.W #4,D2 AND.W #$F000,D2 MOVE.W #$0DFC,D3 OR.W D2,D3 MOVE.W D3,$040(A5) ;BLTCON0 MOVE.W #$7F94,$058(A5) ;BLTSIZE SCR_WAITBLIT: BTST #$E,$002(A5) ;BLITTER ACTIVE? BNE.S SCR_WAITBLIT ;IF YES WAIT RTS ************************************************************************=**** **************************************************************************** MUZAKOK: BSR MT_INIT LEA OLDIRQ,A0 ADD.L #2,A0 ;SKIP THE JMP OP CODE MOVE.L $6C,(A0) ;STORE OLD IRQ ! MOVE.L #NEWIRQ,$6C RTS MUZAKOFF: LEA OLDIRQ,A0 ADD.L #2,A0 MOVE.L (A0),$6C BSR MT_END MOVE.W #$000F,$DFF096 RTS NEWIRQ: MOVEM.L D0-D7/A0-A6,-(SP) MOVE.L $DFF004,D0 LSR.L #8,D0 ANDI.W #$1FF,D0 CMP.W #$04,D0 BGT.S NOIRQ BSR MT_MUSIC NOIRQ: MOVEM.L (SP)+,D0-D7/A0-A6 OL>_0DIRQ: JMP $00000 RTS ************************************************************************** PAGE_PRINT: LEA PAGENUM1,A0 LEA NUMBERS,A1 ;1ST PLANE IN SOURCE MOVE.L A1,A5 LEA PAGEPTR1,A2 ;1ST PLANE IN DEST MOVE.L A2,A4 ADD.L #2,A4 ;2ND PLANE IN DEST MOVEQ #0,D0 MOVE.B (A0)+,D0 SUB.B #48,D0 ADD.L D0,A1 ;A1 = ACTUAL SOURCE MOVE.L A1,A3 ;A3 WILL BE THE 2ND SOURCE ADD.L #(10*8),A3 ;A3 = ACTUAL SOURCE #2 BSR SCORE_IT MOVE.L A5,A1 LEA PAGEPTR2,A2 ;1S5Wj.L #1,A1 ;NEXT HOR POSITION BRA.S LEFTLOOP2 LEFTEND: MOVE.L A0,PAGETEXT ;STORE CURRENT TEXT POINTER ADD.L #80*10,A4 ;1 CHAR DOWN DBF D0,LEFTLOOP * NOW ... WAIT IM NOT FINSHED YET ... THERE'S STILL THE RIGHT PART !!! CMP.L #38,TEXTLEN ;WAS THE TEXT BIGGER THAT 38 ? BGE NORIGHT ;IF YES THERES NO RIGHT PART ! MOVE.L TEXTLEN,D0 MOVE.L #39,D1 ;COZ ITS ALIGNED TO RIGHT SUB.L D0,D1 ;D0=38-D0 LSR.L #1,D1 ;D0=D0/2 MOVE.L #79,D0 SUB.L D1,D0 MOVE.L TEXTL6ڗGEN,D1 SUB.L D1,D0 MOVE.L D0,D1 MOVE.L TEMPAGE,A0 ADD.L #(10*80),A0 ;OFFSET TO TITLE ?? NONSENSE ADD.L #(20*80),A0 ;OFFSET TO FIRST CHAR ADD.L D1,A0 ;ADD OFFSET MOVE.L A0,PAGEADDR MOVE.L PAGETEXT,A0 MOVE.L PAGEADDR,A1 MOVE.L PAGECHAR,A2 MOVE.L A1,A4 ;STORE SCREEN ADDRESS MOVEQ #22-1,D0 ;22 LINES RIGHTLOOP: MOVE.L A4,A1 ;RESTORE SCREEN ADDRESS RIGHTLOOP2: MOVEQ #0,D1 MOVE.B (A0)+,D1 ;GET NEXT CHAR CMP.B #$0A,D1 ;IS IT END OF LINE ? BEQ.S RIG7۱!OHTEND ;IF YES THINK TO END LOOP SUB.B #32,D1 ;CHARSET STARTS FROM 32 ! MULU #(8*2),D1 ;TRANSLATE IT TO OFFSET MOVE.L A2,A3 ;GET START OF CHOSEN CHARSET ADD.L D1,A3 ;ACTUAL CHAR ADDRESS BSR PRINTCHAR ;A1=SCREEN ADDRESS ADD.L #1,A1 ;NEXT HOR POSITION BRA.S RIGHTLOOP2 RIGHTEND: ADD.L #80*10,A4 ;1 CHAR DOWN DBF D0,RIGHTLOOP NORIGHT: ;THERE WAS NO RIGHT PART ! * NOW COPY FROM TEMPAGE TO SCREENBASE AND SCREENBASE2 MOVE.L GRABASE,A6 JSR OWNBLITTER(A68, B) MOVE.L TEMPAGE,A0 ADD.L #80,A0 MOVE.L SCREENBASE2,A1 MOVEQ #0,D2 ;SHIFT = 2 BSR SCR_BLIT MOVE.L TEMPAGE,A0 ADD.L #80,A0 MOVE.L SCREENBASE2,A1 MOVEQ #1,D2 ;SHIFT = 2 BSR SCR_BLIT MOVE.L TEMPAGE,A0 ADD.L #80,A0 MOVE.L SCREENBASE2,A1 MOVEQ #2,D2 ;SHIFT = 2 BSR SCR_BLIT MOVE.L TEMPAGE,A0 MOVE.L SCREENBASE2,A1 MOVEQ #0,D2 ;SHIFT = 2 BSR SCR_BLIT MOVE.L TEMPAGE,A0 MOVE.L SCREENBASE2,A1 MOVEQ #1,D2 ;SHIFT = 2 BSR SCR_BLIT MOVE.L 9PTEMPAGE,A0 MOVE.L SCREENBASE2,A1 MOVEQ #2,D2 ;SHIFT = 2 BSR SCR_BLIT MOVE.L TEMPAGE,A0 MOVE.L SCREENBASE2,A1 ADD.L #80,A1 MOVEQ #0,D2 ;SHIFT = 2 BSR SCR_BLIT MOVE.L TEMPAGE,A0 MOVE.L SCREENBASE2,A1 ADD.L #80,A1 MOVEQ #1,D2 ;SHIFT = 2 BSR SCR_BLIT MOVE.L TEMPAGE,A0 MOVE.L SCREENBASE2,A1 ADD.L #80,A1 MOVEQ #2,D2 ;SHIFT = 2 BSR SCR_BLIT MOVE.L TEMPAGE,A0 MOVE.L SCREENBASE,A1 MOVEQ #1,D2 BSR SCR_BLIT MOVE.L GRABASE,A6 JSR DISOWNB:%:cLITTER(A6) * SET THE COLORS MOVE.L #TEXTRGB,A1 MOVEQ #32,D0 ;2 PLANES BSR LOADRGB4 RTS * SUBRUTINE TO PRINT A CHARACTER !! PRINTCHAR: MOVEM.L A1,-(SP) ;STORE ON STACK MOVEQ #8-1,D2 ;HEIGHT OF CHAR CLLOOP: MOVE.B (A3)+,(A1) ;COPY NEXT BYTE TO SCREEN ADD.L #1,A3 ADD.L #80,A1 ;1 PIX DOWN DBF D2,CLLOOP ;8 PIXLES MOVEM.L (SP)+,A1 RTS PAGECHAR: DC.L 0 PAGETEXT: DC.L 0 TEXTLEN: DC.L 0 TITLELEN: DC.L 0 PAGEADDR: DC.L 0 TEXTRGB: DC.W $0000,$0000,$0000,$0000,;ߡ<$0000,$0000,$0000,$0000 DC.W $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000 DC.W $0000,$0FF0,$0000,$0000,$0000,$0000,$0000,$0000 DC.W $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000 **************************************************************************** ****************************************** * BLITTER DATA COPYING ROUTINE * * ON ENTRY A0 = SOURCE ADDRESS * * A1 = DESTINATION ADDRESS * * D2 = SHIFT VALUE * *****<8************************************* SCR_BLIT: LEA $DFF000,A5 MOVE.W #$8040,$096(A5) ;ENABLE BLITTER DMA MOVE.L A0,$050(A5) ;BLTAPTH MOVE.L A1,$04C(A5) ;BLTBPTH MOVE.L A1,$054(A5) ;BLTDPTH CLR.W $064(A5) ;BLTAMOD CLR.W $062(A5) ;BLTBMOD CLR.W $066(A5) ;BLTDMOD CLR.W $042(A5) ;BLTCON1 LSL.W #8,D2 LSL.W #4,D2 AND.W #$F000,D2 MOVE.W #$0DFC,D3 OR.W D2,D3 MOVE.W D3,$040(A5) ;BLTCON0 MOVE.W #$7F94,$058(A5) ;BLTSIZE SCR_WAITBLIT: BTST #$E,$002(A5=U/) ;BLITTER ACTIVE? BNE.S SCR_WAITBLIT ;IF YES WAIT RTS **************************************************************************** **************************************************************************** MUZAKOK: BSR MT_INIT LEA OLDIRQ,A0 ADD.L #2,A0 ;SKIP THE JMP OP CODE MOVE.L $6C,(A0) ;STORE OLD IRQ ! MOVE.L #NEWIRQ,$6C RTS MUZAKOFF: LEA OLDIRQ,A0 ADD.L #2,A0 MOVE.L (A0),$6C BSR MT_END MOVE.W #$000F,$DFF096 RTS NEWIRQ: MOVEM.L D0-D7/A0-A6,-(SP)>Q MOVE.L $DFF004,D0 LSR.L #8,D0 ANDI.W #$1FF,D0 CMP.W #$04,D0 BGT.S NOIRQ BSR MT_MUSIC NOIRQ: MOVEM.L (SP)+,D0-D7/A0-A6 OLDIRQ: JMP $00000 RTS ************************************************************************** PAGE_PRINT: LEA PAGENUM1,A0 LEA NUMBERS,A1 ;1ST PLANE IN SOURCE MOVE.L A1,A5 LEA PAGEPTR1,A2 ;1ST PLANE IN DEST MOVE.L A2,A4 ADD.L #2,A4 ;2ND PLANE IN DEST MOVEQ #0,D0 MOVE.B (A0)+,D0 SUB.B #48,D0 ADD.L D0,A1 ;A1 = ACTUAL SOURCE M?͐NOVE.L A1,A3 ;A3 WILL BE THE 2ND SOURCE ADD.L #(10*8),A3 ;A3 = ACTUAL SOURCE #2 BSR SCORE_IT MOVE.L A5,A1 LEA PAGEPTR2,A2 ;1ST PLANE IN DEST MOVE.L A2,A4 ADD.L #2,A4 ;2ND PLANE IN DEST MOVEQ #0,D0 MOVE.B (A0),D0 SUB.B #48,D0 ADD.L D0,A1 ;A1 = ACTUAL SOURCE MOVE.L A1,A3 ;A3 WILL BE THE 2ND SOURCE ADD.L #(10*8),A3 ;A3 = ACTUAL SOURCE #2 BSR SCORE_IT MOVE.L INTBASE,A6 MOVE.L WINDOWPTR,A0 MOVE.L #NEWPOINTER,A1 MOVE.L #16,D0 MOVE.L #16,D1 MOVEQ #8 qR????????9_g?????????:&?;l.0TEXT,A0 LEA TEXTRGB,A1 MOVEQ #4-1,D2 ;4 COLORS CCTLOOP2: MOVEQ #4-1,D1 ;4 DIGITS EACH COLOR CCTLOOP: MOVE.B (A0)+,D7 LSL.W #4,D0 AND.B #$F,D7 OR.B D7,D0 DBF D1,CCTLOOP MOVE.W D0,(A1)+ DBF D2,CCTLOOP2 MOVE.B (A0)+,D0 ;DUMMY !! IT IS $0A MOVE.L A0,PAGETEXT BRA.S YESCMAP * OOOOOH SHIT !! THERE WAZ NO CMAP SO LETS PUT THE DEFAULT VALS !! NOCMAP: LEA TEXTRGB,A0 MOVE.W #$0666,(A0)+ MOVE.W #$0F00,(A0)+ MOVE.W #$0000,(A0)+ MOVE.W #$0FFF,(A0) YESCMAP: */)X=\ NOW MAN ... HOW ABOUT PRINTING THE TITLE ?? MOVE.L PAGETEXT,A0 MOVEQ #0,D0 CRTNOTFOUND: CMP.B #$0A,(A0)+ BEQ.S CRTFOUND ADDQ #1,D0 BRA.S CRTNOTFOUND CRTFOUND: * MOVE.L D0,TITLELEN MOVE.L #76,D1 ASL.L #1,D0 ;COZ EACH CHAR = 2 BYTES SUB.L D0,D1 ;OFFSET = 76-TITLELEN LSR.L #1,D1 ;COZ THERE ARE 2 SIDES MOVE.L TEMPAGE,A0 ADD.L #(9*80)+2,A0 ;OFFSET TO TITLE ADD.L D1,A0 ;START OF TITLE MOVE.L PAGETEXT,A1 ;START OF TEXT (TITLE) MOVE.L PAGECHAR,A2 07ty;START OF CHOSEN CHARSET PTLOOP: MOVEQ #0,D7 ;CLEAR IT MOVE.B (A1)+,D7 ;D7=NEXT CHAR TO PRINT SUB.B #32,D7 ;FIRST CHAR = 32 ! MULU #16,D7 ;EACH CHAR TAKES 16 BYTES MOVE.L A2,A3 ;GET START OF CHARSET ADD.L D7,A3 ;FIND START OF CHAR MOVEM.L A0,-(SP) MOVEQ #8-1,D6 ;DO IT 8 TIMES PT2LOOP: MOVE.B (A3),D0 ADD.L #2,A3 ;EACH CHAR HOR = 2 BYTES ! LSL.W #8,D0 MOVE.W D0,D1 AND.W #$8000,D0 AND.W #$7FFF,D1 LSR.W #1,D1 OR.W D1,D0 MOVE.W D0,D1 AND17k.W #$E000,D0 AND.W #$1FFF,D1 LSR.W #1,D1 OR.W D1,D0 MOVE.W D0,D1 AND.W #$F800,D0 AND.W #$07FF,D1 LSR.W #1,D1 OR.W D1,D0 MOVE.W D0,D1 AND.W #$FE00,D0 AND.W #$01FF,D1 LSR.W #1,D1 OR.W D1,D0 MOVE.W D0,D1 AND.W #$FF80,D0 AND.W #$007F,D1 LSR.W #1,D1 OR.W D1,D0 MOVE.W D0,D1 AND.W #$FFE0,D0 AND.W #$001F,D1 LSR.W #1,D1 OR.W D1,D0 MOVE.W D0,D1 AND.W #$FFF8,D0 AND.W #$0007,D1 LSR.W #1,D1 OR.W D1,D0 MOVE.W D0,D1 AND.W #$FFFE,D0 2& AND.W #$0001,D1 LSR.W #1,D1 OR.W D1,D0 MOVE.W D0,D1 ;D0 = BYTE TO PRINT BUT LSR.W #1,D1 ; ONE PIX = YES ONE PIX = NO OR.W D1,D0 ;D0 = ACTUAL VALUE TO PRINT MOVE.W D0,D1 ;D1.B = 2ND BYTE TO PRINT LSR.W #8,D0 ;D0.B = 1ST BYTE TO PRINT MOVE.B D0,(A0)+ MOVE.B D1,(A0) ADD.L #80-1,A0 MOVE.B D0,(A0)+ MOVE.B D1,(A0) ADD.L #80-1,A0 DBF D6,PT2LOOP MOVEM.L (SP)+,A0 ADD.L #2,A0 CMP.B #$0A,(A1) BNE PTLOOP ADD.L #1,A1 MOVE.L A1,PAGETEXT * LET3o ZS GET BACK TO BUSINESS !! MOVE.L PAGETEXT,A0 MOVEQ #0,D0 CRNOTFOUND: CMP.B #$0A,(A0)+ BEQ.S CRFOUND ADDQ #1,D0 BRA.S CRNOTFOUND CRFOUND: MOVE.L D0,TEXTLEN MOVE.L #39,D1 CMP.L #38,TEXTLEN BLT.S LWOK MOVE.L #79,D1 LWOK: SUB.L D0,D1 ;D0=38-D0 LSR.L #1,D1 ;D0=D0/2 MOVE.L TEMPAGE,A0 ADD.L #(10*80)+1,A0 ;OFFSET TO TITLE ADD.L #(20*80),A0 ;OFFSET TO FIRST CHAR ADD.L D1,A0 ;ADD OFFSET MOVE.L A0,PAGEADDR MOVE.L PAGETEXT,A0 MOVE.L PAGEADDR,A1 MO4׿VE.L PAGECHAR,A2 MOVE.L A1,A4 ;STORE SCREEN ADDRESS MOVEQ #22-1,D0 ;22 LINES LEFTLOOP: MOVE.L A4,A1 ;RESTORE SCREEN ADDRESS LEFTLOOP2: MOVEQ #0,D1 MOVE.B (A0)+,D1 ;GET NEXT CHAR CMP.B #$0A,D1 ;IS IT END OF LINE ? BEQ.S LEFTEND ;IF YES THINK TO END LOOP SUB.B #32,D1 ;CHARSET STARTS FROM 32 ! MULU #(8*2),D1 ;TRANSLATE IT TO OFFSET MOVE.L A2,A3 ;GET START OF CHOSEN CHARSET ADD.L D1,A3 ;ACTUAL CHAR ADDRESS BSR PRINTCHAR ;A1 = SCREEN ADDRESS ADD.(HAT IT WAS COMPACTED IFF_REPS: NEG.B D0 ADD.W D0,DONE_WIDTH ADD.W #1,DONE_WIDTH ;COZ IT WAS LESS 1 FOR DBF MOVE.B (A0)+,D1 IFF_REPL: MOVE.B D1,(A1)+ DBF D0,IFF_REPL IFF_REPXIT: MOVE.W WIDTH_BYTES,D1 MOVE.W DONE_WIDTH,D0 CMP.W D1,D0 BLT.S IFF_DOLINE **************************************************************************** CLR.L D0 MOVE.W DONE_PLANES,D0 ASL.W #2,D0 LEA PLANETAB,A2 ADD.L D0,A2 MOVE.L A1,(A2) ADD.W #1,DONE_PLANES MOVE.W PLANES_NUM,D)*'1 ADD.W #1,D1 ;COZ IT'S STORED FOR DBF MOVE.W DONE_PLANES,D0 CMP.W D1,D0 BLT IFF_DOPLANES **************************************************************************** * IF IT WAS LO-RES THEN ADD 40BYTES WINCE WIDTH IS ALWAYS 640 IN MY CASE ! BTST #15,MODES BNE.S NOADD ;IT WAS HIRES ADD.L #40,SADD1 ADD.L #40,SADD2 ADD.L #40,SADD3 ADD.L #40,SADD4 ADD.L #40,SADD5 NOADD: ADD.W #1,DONE_HEIGHT MOVE.W HEIGHT,D1 MOVE.W DONE_HEIGHT,D0 CMP.W #256,D0 BLT I*0 FF_DOHEIGHT **************************************************************************** **************************************** * THIS PART LOADS IN THE PROPER COLORS * **************************************** MOVE.L #PALETTE_DUMMY,A2 MOVE.L CMAP_CHUNK,A1 ADD.L #8,A1 MOVEQ #32-1,D3 ;16 COLORS ALLCOLS: CLR.W D0 CLR.W D1 CLR.W D2 MOVE.B (A1)+,D0 LSL.W #4,D0 MOVE.B (A1)+,D1 MOVE.B (A1)+,D2 LSR.W #4,D2 OR.W D1,D0 OR.W D2,D0 MOVE.W D0,(A2)+ DBF D3,ALLC+OLS LEA COLPLA,A0 CLR.L D0 CLR.L D1 MOVE.W PLANES_NUM,D1 MOVE.B $0(A0,D1),D0 MOVE.L #PALETTE_DUMMY,A1 BSR LOADRGB4 RTS DC.L 0 ;PAD BMHD_CHUNK: DC.L 0 CMAP_CHUNK: DC.L 0 BODY_CHUNK: DC.L 0 PLANES_NUM: DC.L 0 COMP_FLAG: DC.L 0 WIDTH_BYTES: DC.L 0 WIDTH: DC.L 0 HEIGHT: DC.L 0 MASK_DUMMY: DS.B 128 PALETTE_DUMMY: DS.B 32*2 COLPLA: DC.B 2,4,8,16,32 DC.W 0 DONE_PLANES: DC.W 0 DONE_HEIGHT: DC.W 0 DONE_WIDTH: DC.W 0 PLANETAB: SADD1: DC.L 0 SADD2: DC.L 0 SADD3: DC,*~.L 0 SADD4: DC.L 0 SADD5: DC.L 0 **************************************************************************** * LOAD A PAGE WHICH WAS TEXT !! LOADTEXT: CLR.W MOD1 CLR.W MOD2 MOVE.W #$3C,DDFSTRT MOVE.W #$D4,DDFSTOP MOVE.W #$C200,MODES MOVE.L TEMPLOAD,A0 ADD.L #8,A0 MOVE.B (A0)+,D0 ;NOT USED MOVE.B (A0)+,D0 ;NOT USED MOVE.B (A0)+,D0 ;NOT USED MOVEQ #0,D0 MOVE.B (A0)+,D0 ;CHARSET NO. SUB.B #48,D0 MOVE.L CHARSETS,A1 MULU #(2*8*96),D0 ADD.L D0,A1 <gtypey- MOVE.L A1,PAGECHAR ;CURRENT CHARSET IN USE MOVE.B (A0)+,D7 ;DUMMY COZ ITS A $0A !! MOVE.L A0,PAGETEXT * IS THERE A CMAP ?? MOVE.L PAGETEXT,A0 CMP.B #'C',(A0)+ BNE NOCMAP CMP.B #'M',(A0)+ BNE NOCMAP CMP.B #'A',(A0)+ BNE NOCMAP CMP.B #'P',(A0)+ BNE NOCMAP MOVE.L A0,PAGETEXT MOVEQ #16-1,D0 ;16 CHARS OF CMAP !! CMALOP: SUB.B #48,(A0) CMP.B #9,(A0) BLE.S CMOK SUB.B #7,(A0) CMOK: ADD.L #1,A0 DBF D0,CMALOP * NOW COPY CMAP TO TEXTRBG MOVE.L PAGE4s\??????5z3???6??????7 S\??????????"l D3,D3 ;D3 was already loaded JSR -$2A(A6) ;xREAD MOVE.L BUFF,D1 JSR -$24(A6) ;xCLOSE LOADERROR: RTS BUFF: DC.L 0 ************************************************************* LOADIFF: MOVE.L SCREENBASE,A0 MOVE.L A0,SADD1 MOVE.L SCREENBASE2,A0 MOVE.L A0,SADD2 MOVE.L SCREENBASE3,A0 MOVE.L A0,SADD3 MOVE.L SCREENBASE4,A0 MOVE.L A0,SADD4 MOVE.L SCREENBASE5,A0 MOVE.L A0,SADD5 IFF_SEARCH: MOVE.L TEMPLOAD,A0 IFS1: CMP.W #'BM',(A0)+ BNE.S IFS1 CMP.W #'HD',`+lOO(jdp N$"<I(l/ / g ,倲l"4(T`,2(jtp NJg2**p$A. J (F r%Ad``r#A`V")ҩt0G" <(j(N`.")ҩt0" <(j,NtHgvNg`R")t0l~Jdg0Jg(G" <(j$Nr%Ax <(jPNJg <IN`r%Ah <(jN#Atgdq( <(jN <Ix#D t"N#A$) rNV#At") NJf ")`rҩҩ#A$)&)$GD" p$(j(N")S#Ar#AnDґtԁr0($GL" p,(j(NrҩtNJf r p,(jNrҩ`#ir#Anr #G (A0) BNE.S IFS1 SUB.L #2,A0 MOVE.L A0,BMHD_CHUNK IFS2: CMP.W #'CM',(A0)+ BNE.S IFS2 CMP.W #'AP',(A0) BNE.S IFS2 SUB.L #2,A0 MOVE.L A0,CMAP_CHUNK IFS3: CMP.W #'BO',(A0)+ BNE.S IFS3 CMP.W #'DY',(A0) BNE.S IFS3 SUB.L #2,A0 MOVE.L A0,BODY_CHUNK MOVE.L BMHD_CHUNK,A2 MOVE.L A2,A1 ADD.L #16,A1 CLR.W D0 MOVE.B (A1),D0 MOVE.W D0,PLANES_NUM SUB.W #1,PLANES_NUM ;COZ WE UZE DBF !! MOVE.W D0,D7 ;GET THE NO OF PLANES LSL.W #8,D7 ;AND THEN CONVERrp,(jNrҩ`")S#Ar#An8ґtԁr0(#A t nvl`r.p0(jNrҩ`p$(jNN%X4: %X2tidyup J\g"*\p (jNp (jNJ`g"*`p (jNp (jN"*xp (jNNNq$TJg#pt#B`r`>r%Ad``r#A`V")ҩt0G" <(j(N`.")ҩt0" <(j,NtHgvNg`R")t0l~Jdg0Jg(G" <(j$Nr%Ax <(jPNJg <IN`r%Ah <(jN#Atgd$wT IT TO LSL.W #4,D7 ;BITS 14-11 AS IN BPLCON0 OR.W #$200,D7 ;SET THE COLOR_ON FOR COMPAT MOVE.W D7,MODES ;AND STORE IT IN COPPERLIZT CMP.W #6,D0 BLT.S IFF_CONT MOVE.W #6,D0 IFF_CONT: MOVE.L A2,A1 ADD.L #18,A1 MOVE.B (A1),COMP_FLAG MOVE.L A2,A1 ADD.L #8,A1 CLR.L D0 MOVE.W (A1)+,D0 MOVE.W D0,WIDTH CMP.W #320,D0 BGT.S NOTLOR MOVE.W #40,MOD1 MOVE.W #40,MOD2 MOVE.W #$38,DDFSTRT MOVE.W #$D0,DDFSTOP AND.W #$7FFF,MODES BRA.S WASLO NOTLOR: MOV%E.W #$3C,DDFSTRT MOVE.W #$D4,DDFSTOP CLR.W MOD1 CLR.W MOD2 OR.W #$8000,MODES WASLO: CLR.L D3 CMP.W #640,D0 BLT.S IFF_CONT3 OR.W #$8000,D3 IFF_CONT3: MOVE.W D0,D1 AND.W #7,D1 BEQ.S IFF_CONT2 OR.W #8,D0 IFF_CONT2: DIVU #8,D0 MOVE.W D0,WIDTH_BYTES CLR.L D0 MOVE.W (A1),D0 MOVE.W D0,HEIGHT CMP.W #256,D0 BLT.S IFF_CONT4 OR.W #4,D3 IFF_CONT4: * MOVE.W D3,MODES ;NAAAH MODES IS NOW IN COPLIZT *********************************************** * THIS PART UNP&XDACKS FROM IFF TO BITMAP SCREEN * *********************************************** **************************************************************************** UNPACKER: MOVE.L BODY_CHUNK,A0 ADD.L #8,A0 ;A0 = CURRENT **************************************************************************** CLR.W DONE_HEIGHT IFF_DOHEIGHT: **************************************************************************** CLR.W DONE_PLANES IFF_DOPLANES: CLR.L D0 MOVE.W DONE_PLANES,D0 ASL.W '%)"#2,D0 ;EACH VECTOR IS 4 BYTES ! LEA PLANETAB,A2 ADD.L D0,A2 MOVE.L (A2),A1 **************************************************************************** CLR.W DONE_WIDTH IFF_DOLINE: CLR.L D0 MOVE.B (A0)+,D0 ;GET REPETITION BTST #7,D0 ;IS IT COMPACTED ? BNE.S IFF_REPS * THIS PART MEANS THAT IT WASNT COMPACTED ADD.W D0,DONE_WIDTH ADD.W #1,DONE_WIDTH ;COZ IT WAS LESS 1 FOR DBF IFF_NRL: MOVE.B (A0)+,(A1)+ DBF D0,IFF_NRL BRA.S IFF_REPXIT * THIS PART MEANS T2g釼 ACTUAL VALUE TO PRINT MOVE.W D0,D1 ;D1.B = 2ND BYTE TO PRINT LSR.W #8,D0 ;D0.B = 1ST BYTE TO PRINT MOVE.B D0,(A0)+ MOVE.B D1,(A0) ADD.L #80-1,A0 MOVE.B D0,(A0)+ MOVE.B D1,(A0) ADD.L #80-1,A0 DBF D6,PT2LOOP MOVEM.L (SP)+,A0 ADD.L #2,A0 CMP.B #$0A,(A1) BNE PTLOOP ADD.L #1,A1 MOVE.L A1,PAGETEXT * LETS GET BACK TO BUSINESS !! MOVE.L PAGETEXT,A0 MOVEQ #0,D0 CRNOTFOUND: CMP.B #$0A,(A0)+ BEQ.S CRFOUND ADDQ #1,D0 BRA.S CRNOTFOUND CRFOUND: MOV3IkE.L D0,TEXTLEN MOVE.L #39,D1 CMP.L #38,TEXTLEN BLT.S LWOK MOVE.L #79,D1 LWOK: SUB.L D0,D1 ;D0=38-D0 LSR.L #1,D1 ;D0=D0/2 MOVE.L TEMPAGE,A0 ADD.L #(10*80)+1,A0 ;OFFSET TO TITLE ADD.L #(20*80),A0 ;OFFSET TO FIRST CHAR ADD.L D1,A0 ;ADD OFFSET MOVE.L A0,PAGEADDR MOVE.L PAGETEXT,A0 MOVE.L PAGEADDR,A1 MOVE.L PAGECHAR,A2 MOVE.L A1,A4 ;STORE SCREEN ADDRESS MOVEQ #22-1,D0 ;22 LINES LEFTLOOP: MOVE.L A4,A1 ;RESTORE SCREEN ADDRESS LEFTLOOP2: MOVEQ 4_S,D0 ASL.W #2,D0 ;EACH VECTOR IS 4 BYTES ! LEA PLANETAB,A2 ADD.L D0,A2 MOVE.L (A2),A1 **************************************************************************** CLR.W DONE_WIDTH IFF_DOLINE: CLR.L D0 MOVE.B (A0)+,D0 ;GET REPETITION BTST #7,D0 ;IS IT COMPACTED ? BNE.S IFF_REPS * THIS PART MEANS THAT IT WASNT COMPACTED ADD.W D0,DONE_WIDTH ADD.W #1,DONE_WIDTH ;COZ IT WAS LESS 1 FOR DBF IFF_NRL: MOVE.B (A0)+,(A1)+ DBF D0,IFF_NRL BRA.S IFF_REPXIT * THIS(< PART MEANS THAT IT WAS COMPACTED IFF_REPS: NEG.B D0 ADD.W D0,DONE_WIDTH ADD.W #1,DONE_WIDTH ;COZ IT WAS LESS 1 FOR DBF MOVE.B (A0)+,D1 IFF_REPL: MOVE.B D1,(A1)+ DBF D0,IFF_REPL IFF_REPXIT: MOVE.W WIDTH_BYTES,D1 MOVE.W DONE_WIDTH,D0 CMP.W D1,D0 BLT.S IFF_DOLINE **************************************************************************** CLR.L D0 MOVE.W DONE_PLANES,D0 ASL.W #2,D0 LEA PLANETAB,A2 ADD.L D0,A2 MOVE.L A1,(A2) ADD.W #1,DONE_PLANES MOVE.W) PLANES_NUM,D1 ADD.W #1,D1 ;COZ IT'S STORED FOR DBF MOVE.W DONE_PLANES,D0 CMP.W D1,D0 BLT IFF_DOPLANES **************************************************************************** * IF IT WAS LO-RES THEN ADD 40BYTES WINCE WIDTH IS ALWAYS 640 IN MY CASE ! NOADD: ADD.W #1,DONE_HEIGHT MOVE.W HEIGHT,D1 MOVE.W DONE_HEIGHT,D0 CMP.W #256,D0 BLT IFF_DOHEIGHT **************************************************************************** ***********************************4****** * THIS PART LOADS IN THE PROPER COLORS * **************************************** MOVE.L #PALETTE_DUMMY,A2 MOVE.L CMAP_CHUNK,A1 ADD.L #8,A1 MOVEQ #32-1,D3 ;16 COLORS ALLCOLS: CLR.W D0 CLR.W D1 CLR.W D2 MOVE.B (A1)+,D0 LSL.W #4,D0 MOVE.B (A1)+,D1 MOVE.B (A1)+,D2 LSR.W #4,D2 OR.W D1,D0 OR.W D2,D0 MOVE.W D0,(A2)+ DBF D3,ALLCOLS LEA COLPLA,A0 CLR.L D0 CLR.L D1 MOVE.W PLANES_NUM,D1 MOVE.B $0(A0,D1),D0 MOVE.L #PALETTE_DUMMY,A1 BSR LOA+`u6DRGB4 RTS DC.L 0 ;PAD BMHD_CHUNK: DC.L 0 CMAP_CHUNK: DC.L 0 BODY_CHUNK: DC.L 0 PLANES_NUM: DC.L 0 COMP_FLAG: DC.L 0 WIDTH_BYTES: DC.L 0 WIDTH: DC.L 0 HEIGHT: DC.L 0 MASK_DUMMY: DS.B 128 PALETTE_DUMMY: DS.B 32*2 COLPLA: DC.B 2,4,8,16,32 DC.W 0 DONE_PLANES: DC.W 0 DONE_HEIGHT: DC.W 0 DONE_WIDTH: DC.W 0 PLANETAB: SADD1: DC.L 0 SADD2: DC.L 0 SADD3: DC.L 0 SADD4: DC.L 0 SADD5: DC.L 0 **************************************************************************** * LOAD A PA,DGE WHICH WAS TEXT !! LOADTEXT: MOVE.W #$3C,DDFSTRT MOVE.W #$D4,DDFSTOP MOVE.W #$C200,MODES MOVE.L TEMPLOAD,A0 ADD.L #8,A0 MOVE.B (A0)+,D0 ;NOT USED MOVE.B (A0)+,D0 ;NOT USED MOVE.B (A0)+,D0 ;NOT USED MOVEQ #0,D0 MOVE.B (A0)+,D0 ;CHARSET NO. SUB.B #48,D0 MOVE.L CHARSETS,A1 MULU #(2*8*96),D0 ADD.L D0,A1 MOVE.L A1,PAGECHAR ;CURRENT CHARSET IN USE MOVE.B (A0)+,D7 ;DUMMY COZ ITS A $0A !! MOVE.L A0,PAGETEXT * IS THERE A CMAP ?? MOVE.L PAGETEXT,-2A0 CMP.B #'C',(A0)+ BNE NOCMAP CMP.B #'M',(A0)+ BNE NOCMAP CMP.B #'A',(A0)+ BNE NOCMAP CMP.B #'P',(A0)+ BNE NOCMAP MOVE.L A0,PAGETEXT MOVEQ #16-1,D0 ;16 CHARS OF CMAP !! CMALOP: SUB.B #48,(A0) CMP.B #9,(A0) BLE.S CMOK SUB.B #7,(A0) CMOK: ADD.L #1,A0 DBF D0,CMALOP * NOW COPY CMAP TO TEXTRBG MOVE.L PAGETEXT,A0 LEA TEXTRGB,A1 MOVEQ #4-1,D2 ;4 COLORS CCTLOOP2: MOVEQ #4-1,D1 ;4 DIGITS EACH COLOR CCTLOOP: MOVE.B (A0)+,D7 LSL.W #4,D0 AND.B #$F.9ʧ,D7 OR.B D7,D0 DBF D1,CCTLOOP MOVE.W D0,(A1)+ DBF D2,CCTLOOP2 MOVE.B (A0)+,D0 ;DUMMY !! IT IS $0A MOVE.L A0,PAGETEXT BRA.S YESCMAP * OOOOOH SHIT !! THERE WAZ NO CMAP SO LETS PUT THE DEFAULT VALS !! NOCMAP: LEA TEXTRGB,A0 MOVE.W #$0666,(A0)+ MOVE.W #$0F00,(A0)+ MOVE.W #$0000,(A0)+ MOVE.W #$0FFF,(A0) YESCMAP: * NOW MAN ... HOW ABOUT PRINTING THE TITLE ?? MOVE.L PAGETEXT,A0 MOVEQ #0,D0 CRTNOTFOUND: CMP.B #$0A,(A0)+ BEQ.S CRTFOUND ADDQ #1,D0 BRA.S CR/ TNOTFOUND CRTFOUND: * MOVE.L D0,TITLELEN MOVE.L #76,D1 ASL.L #1,D0 ;COZ EACH CHAR = 2 BYTES SUB.L D0,D1 ;OFFSET = 76-TITLELEN LSR.L #1,D1 ;COZ THERE ARE 2 SIDES MOVE.L TEMPAGE,A0 ADD.L #(9*80)+2,A0 ;OFFSET TO TITLE ADD.L D1,A0 ;START OF TITLE MOVE.L PAGETEXT,A1 ;START OF TEXT (TITLE) MOVE.L PAGECHAR,A2 ;START OF CHOSEN CHARSET PTLOOP: MOVEQ #0,D7 ;CLEAR IT MOVE.B (A1)+,D7 ;D7=NEXT CHAR TO PRINT SUB.B #32,D7 ;FIRST CHAR = 32 ! MULU #16,D7 0 ;EACH CHAR TAKES 16 BYTES MOVE.L A2,A3 ;GET START OF CHARSET ADD.L D7,A3 ;FIND START OF CHAR MOVEM.L A0,-(SP) MOVEQ #8-1,D6 ;DO IT 8 TIMES PT2LOOP: MOVE.B (A3),D0 ADD.L #2,A3 ;EACH CHAR HOR = 2 BYTES ! LSL.W #8,D0 MOVE.W D0,D1 AND.W #$8000,D0 AND.W #$7FFF,D1 LSR.W #1,D1 OR.W D1,D0 MOVE.W D0,D1 AND.W #$E000,D0 AND.W #$1FFF,D1 LSR.W #1,D1 OR.W D1,D0 MOVE.W D0,D1 AND.W #$F800,D0 AND.W #$07FF,D1 LSR.W #1,D1 OR.W D1,D0 MOVE.W D0,D1KxP1 AND.W #$FE00,D0 AND.W #$01FF,D1 LSR.W #1,D1 OR.W D1,D0 MOVE.W D0,D1 AND.W #$FF80,D0 AND.W #$007F,D1 LSR.W #1,D1 OR.W D1,D0 MOVE.W D0,D1 AND.W #$FFE0,D0 AND.W #$001F,D1 LSR.W #1,D1 OR.W D1,D0 MOVE.W D0,D1 AND.W #$FFF8,D0 AND.W #$0007,D1 LSR.W #1,D1 OR.W D1,D0 MOVE.W D0,D1 AND.W #$FFFE,D0 AND.W #$0001,D1 LSR.W #1,D1 OR.W D1,D0 MOVE.W D0,D1 ;D0 = BYTE TO PRINT BUT LSR.W #1,D1 ; ONE PIX = YES ONE PIX = NO OR.W D1,D0 ;D0 =x]01B8,$0000,$01BA,$0000,$01BC,$0000,$01BE,$0000 DC.W $FFFF,$FFFE ***************************************************************************** ***************************************************************************** * LOAD A SET OF 10 CHARSETS IN THE POSITION CHARSETS LOADCHARS: MOVE.L CHARSETS,A0 MOVE.L #CHARSNAME,A1 MOVE.L #(2*8*96)*10,D0 BSR LOAD RTS CHARSNAME: DC.B 'DF0:CHARSET1' DC.W 0 **********************************************************************X%^l******* * LOADS A TRACKER MUZAK LOADMUZAK: MOVE.L MT_DATA,A0 MOVE.L #MUZAKNAME,A1 MOVE.L #100*1024,D0 BSR LOAD RTS MUZAKNAME: DC.B 'DF0:MUZAK' DC.W 0 ***************************************************************************** * HEEEEY YOU, PEOPLE IN THE HOUSE ... DIS IZ WHERE I LOAD THE PAGE LOADPAGE: * MOVE.W PAGENUM1,D0 * CMP.W OLDPAGE,D0 * BEQ LOADPAGEXIT * MOVE.W D0,OLDPAGE * BEFORE YOU SAY ANOTHER WORD ... LET ME CLEAR THE COLORS !! MOVE.L #CLEARRGB,A1 - MOVEQ #32,D0 ;4 PLANES BSR LOADRGB4 * THEN LEMME CLEAR THE SCREEN MOVE.L #(20*256)-1,D0 MOVE.L SCREENBASE,A0 CP1: CLR.L (A0)+ DBF D0,CP1 MOVE.L #(20*256)-1,D0 MOVE.L SCREENBASE2,A0 CP2: CLR.L (A0)+ DBF D0,CP2 MOVE.L #(20*256)-1,D0 MOVE.L SCREENBASE3,A0 CP3: CLR.L (A0)+ DBF D0,CP3 MOVE.L #(20*256)-1,D0 MOVE.L SCREENBASE4,A0 CP4: CLR.L (A0)+ DBF D0,CP4 MOVE.L #(20*256)-1,D0 MOVE.L SCREENBASE5,A0 CP5: CLR.L (A0)+ DBF D0,CP5 * THEN LEMME CLEAR THE TEMPAGE MOVE.L #(20*256)-1,D0 MOVE.L TEMPAGE,A0 CTP1: CLR.L (A0)+ DBF D0,CTP1 * THEN LEMME PUT LOTS OF $0A MOVE.L TEMPLOAD,A0 MOVE.L #2048,D0 PUTCR: MOVE.B #$0A,(A0)+ DBF D0,PUTCR * FIRST LOAD THE PAGE TO TEMPLOAD MOVE.L TEMPLOAD,A0 MOVE.L #PAGENAME,A1 MOVE.L #(80*256*5)+32,D0 ;REALLY MAXIMUM BSR LOAD * NOW CHECK IF IT IS VALID MOVE.L TEMPLOAD,A0 CMP.L #'FORM',(A0)+ BNE LOADPAGEXIT * NOW CHECK IF IT IS IFF CMP.L #'TEXT',(A0)+ BEQ LOAD V#TEXT CMP.L #'ILBM',(A0) BEQ LOADIFF LOADPAGEXIT: RTS PAGENAME: DC.B 'PAGE' PAGENUM1: DC.B '0' PAGENUM2: DC.B '0' DC.W 0 OLDPAGE: DC.W 0 CLEARRGB: DC.W $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000 DC.W $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000 DC.W $0000,$0FF0,$0000,$0000,$0000,$0000,$0000,$0000 DC.W $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000 ***************************************************************************** *********************************! ********* * LOAD A FILE TO MEMORY * * * * A0 = START ADDRESS WHERE TO PUT DATA * * A1 = ADDRESS WHERE FILENAME IS LOCATED * * D0 = LENGTH OF DATA * ****************************************** LOAD: MOVE.L A0,A3 ;start address MOVE.L D0,D3 ;length MOVE.L A1,A4 ;filename address MOVE.L DOSBASE,A6 MOVE.L A4,D1 MOVE.L #$3ED,D2 ;Mode = FILE EXISTS JSR -$1E(A6) ;xOPEN TST.L D0 BEQ LOADERROR "!J MOVE.L D0,BUFF MOVE.L D0,D1 MOVE.L A3,D2 ;get start address MOVE.L D3,D3 ;D3 was already loaded JSR -$2A(A6) ;xREAD MOVE.L BUFF,D1 JSR -$24(A6) ;xCLOSE LOADERROR: RTS BUFF: DC.L 0 ************************************************************* LOADIFF: MOVE.L SCREENBASE,A0 MOVE.L A0,SADD1 MOVE.L SCREENBASE2,A0 MOVE.L A0,SADD2 MOVE.L SCREENBASE3,A0 MOVE.L A0,SADD3 MOVE.L SCREENBASE4,A0 MOVE.L A0,SADD4 MOVE.L SCREENBASE5,A0 MOVE.L A0,SADD5 IFF_SEAR#"U3CH: MOVE.L TEMPLOAD,A0 IFS1: CMP.W #'BM',(A0)+ BNE.S IFS1 CMP.W #'HD',(A0) BNE.S IFS1 SUB.L #2,A0 MOVE.L A0,BMHD_CHUNK IFS2: CMP.W #'CM',(A0)+ BNE.S IFS2 CMP.W #'AP',(A0) BNE.S IFS2 SUB.L #2,A0 MOVE.L A0,CMAP_CHUNK IFS3: CMP.W #'BO',(A0)+ BNE.S IFS3 CMP.W #'DY',(A0) BNE.S IFS3 SUB.L #2,A0 MOVE.L A0,BODY_CHUNK MOVE.L BMHD_CHUNK,A2 MOVE.L A2,A1 ADD.L #16,A1 CLR.W D0 MOVE.B (A1),D0 MOVE.W D0,PLANES_NUM SUB.W #1,PLANES_NUM ;COZ WE UZE DBF $# !! MOVE.W D0,D7 ;GET THE NO OF PLANES LSL.W #8,D7 ;AND THEN CONVERT IT TO LSL.W #4,D7 ;BITS 14-11 AS IN BPLCON0 OR.W #$200,D7 ;SET THE COLOR_ON FOR COMPAT MOVE.W D7,MODES ;AND STORE IT IN COPPERLIZT CMP.W #6,D0 BLT.S IFF_CONT MOVE.W #6,D0 IFF_CONT: MOVE.L A2,A1 ADD.L #18,A1 MOVE.B (A1),COMP_FLAG MOVE.L A2,A1 ADD.L #8,A1 CLR.L D0 MOVE.W (A1)+,D0 MOVE.W D0,WIDTH CMP.W #320,D0 BGT.S NOTLOR MOVE.W #$38,DDFSTRT MOVE.W #$D0,DDFSTOP AND.W #%$ec8$7FFF,MODES BRA.S WASLO NOTLOR: MOVE.W #$3C,DDFSTRT MOVE.W #$D4,DDFSTOP OR.W #$8000,MODES WASLO: CLR.L D3 CMP.W #640,D0 BLT.S IFF_CONT3 OR.W #$8000,D3 IFF_CONT3: MOVE.W D0,D1 AND.W #7,D1 BEQ.S IFF_CONT2 OR.W #8,D0 IFF_CONT2: DIVU #8,D0 MOVE.W D0,WIDTH_BYTES CLR.L D0 MOVE.W (A1),D0 MOVE.W D0,HEIGHT CMP.W #256,D0 BLT.S IFF_CONT4 OR.W #4,D3 IFF_CONT4: * MOVE.W D3,MODES ;NAAAH MODES IS NOW IN COPLIZT *********************************************** * &!THIS PART UNPACKS FROM IFF TO BITMAP SCREEN * *********************************************** **************************************************************************** UNPACKER: MOVE.L BODY_CHUNK,A0 ADD.L #8,A0 ;A0 = CURRENT **************************************************************************** CLR.W DONE_HEIGHT IFF_DOHEIGHT: **************************************************************************** CLR.W DONE_PLANES IFF_DOPLANES: CLR.L D0 MOVE.W DONE_PLANE&ޢ PLANE HIRES PAL SCREEN MOVE.L #$10001,D1 ;CHIP + CLEAR JSR ALLOCMEM(A6) MOVE.L D0,TEMPLOAD MOVE.L #(2*8*96)*10,D0 ;10 SETS OF FONTS MOVE.L #$10001,D1 ;CHIP + CLEAR JSR ALLOCMEM(A6) MOVE.L D0,CHARSETS MOVE.L #(256*80),D0 ;1 PLANE HIRES PAL SCREEN MOVE.L #$10001,D1 ;CHIP + CLEAR JSR ALLOCMEM(A6) MOVE.L D0,TEMPAGE MOVE.L #(256*80*5)+32,D0 ;5 PLANE HIRES PAL SCREEN MAX MOVE.L #$10001,D1 ;CHIP + CLEAR JSR ALLOCMEM(A6) MOVE.L D0,SCREENSTART RTS T'EMPLOAD: DC.L 0 CHARSETS: DC.L 0 TEMPAGE: DC.L 0 SCREENSTART: DC.L 0 **************************************** **************************** * * * DEALLOCATE MEMORY BLOCKS * * * **************************** RESTOREMEM: MOVE.L EXECBASE,A6 MOVE.L #100*1024,D0 MOVE.L MT_DATA,A1 JSR FREEMEM(A6) MOVE.L #(256*80*4)+32,D0 MOVE.L TEMPLOAD,A1 JSR FREEMEM(A6) MOVE.L #(256*80*5)+32,D0 MOVE.L SCREENSTART,A1 JSR FREEMEM(A6) (< MOVE.L #(2*8*96)*10,D0 ;10 SETS OF FONTS MOVE.L CHARSETS,A1 JSR FREEMEM(A6) MOVE.L #(256*80),D0 ;1 PLANE HIRES PAL SCREEN MOVE.L TEMPAGE,A1 JSR FREEMEM(A6) RTS ******************************************* RESTORESCREEN: MOVE.L INTBASE,A6 MOVE.L WINDOWPTR,A0 JSR CLOSEWINDOW(A6) RTS ******************************************************* *************************************** * OPEN AN INTUTITION WINDOW SO THAT * * NO LAMER CAN EVER CORRUPT MY COPPER * *){ SCREEN !!! * *************************************** INITSCREEN: MOVE.L INTBASE,A0 ADD.L #$3C,A0 ;DONT ASK ME WHY $3C !!! MOVE.L (A0),D0 MOVE.L D0,SCREENPTR ;STORE IN NEWWINDOW STRUCT ADD.L #14,D0 ;OFFSET TO USHORT HEIGHT MOVE.L D0,A0 ;STORE IN ADDRESS REG. MOVE.W #256,(A0) ;MAKE SURE SCREEN HEIGHT = 256 AND.W #$FBFF,$DFF016 ;'PRESS' RIGHT MOUSEBUTTON MOVE.L INTBASE,A6 LEA NEWWINDOW,A0 JSR OPENWINDOW(A6) MOVE.L D0,WINDOWPTR MOVE*.L INTBASE,A6 MOVE.L WINDOWPTR,A0 ;WINDOW STRUCT LEA NEWPOINTER,A1 ;NEW POINTER MOVE.L #$10,D0 ;HEIGHT MOVE.L #$10,D1 ;WIDTH MOVE.L #-7,D2 ;XOFFSET MOVE.L #-7,D3 ;YOFFSET JSR SETPOINTER(A6) ;DIS IZ A NEW NEW POINTER * FIRST STORE THE BASE ADDRESSES OF EACH PLANE MOVE.L SCREENSTART,D0 MOVE.L D0,SCREENBASE ADD.L #80*256,D0 MOVE.L D0,SCREENBASE2 ADD.L #80*256,D0 MOVE.L D0,SCREENBASE3 ADD.L #80*256,D0 MOVE.L D0,SCREENBASE4 ADD.L #80*256,D0 MOVE.L D+yH0,SCREENBASE5 * THEN LINK TO COPPERLIST BSR LINK2COP * INIT COPPERLIST LEA CUSTOM,A5 MOVE.L GRABASE,A6 ADD.L #$32,A6 ;offset to copper pointer MOVE.W #$80,$96(A5) ;disable copper MOVE.L (A6),OLDCOPPER ;store old pointer MOVE.L #NEWCOPPER,(A6) MOVE.W #$8080,$096(A5) ;enable copper RTS * LINK PLANES TP COPPERLIST LINK2COP: MOVE.L SCREENBASE,D0 ADD.L PALVAL,D0 MOVE.W D0,PL0L SWAP D0 MOVE.W D0,PL0H MOVE.L SCREENBASE2,D0 ADD.L PALVAL,D0 MOVE.W D0,,>PL1L SWAP D0 MOVE.W D0,PL1H MOVE.L SCREENBASE3,D0 ADD.L PALVAL,D0 MOVE.W D0,PL2L SWAP D0 MOVE.W D0,PL2H MOVE.L SCREENBASE4,D0 ADD.L PALVAL,D0 MOVE.W D0,PL3L SWAP D0 MOVE.W D0,PL3H MOVE.L SCREENBASE5,D0 ADD.L PALVAL,D0 MOVE.W D0,PL4L SWAP D0 MOVE.W D0,PL4H RTS PALVAL: DC.L 0 OLDCOPPER: DC.L 0 SCREENBASE: DC.L 0 SCREENBASE2: DC.L 0 SCREENBASE3: DC.L 0 SCREENBASE4: DC.L 0 SCREENBASE5: DC.L 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * * *-g_8 * * * * * * * * * * NEWWINDOW: DC.W 0,0 ;LEFT/TOP EDGES DC.W 640,256 ;WIDTH/HEIGHT DC.B 0,1 ;DETAIL/BLOCK PENS DC.L NULL ;IDCMP FLAGS DC.L $1800 ;FLAGS WAZ $1000 DC.L NULL ;FIRST GADGET DC.L NULL ;CHECKMARK DC.L WINDOWTITLE ;WINDOW TITLE SCREENPTR: DC.L NULL ;POINTER TO SCREEN DC.L NULL ;BITMAP DC.W 640,256 ;MIN WIDTH/HEIGHT DC.W 640,256 ;MAX WIDTH/HEIGHT DC.W $F ;CUSTOMSCREEN WINDOWPTR: DC.L 0 WINDOWTITLE: DC.B 'CRAIN WOZ ERE' DC.W 0 NEWPOINTE.oR: DC.W 0,0 DC.W $FFFF,$FFFF DC.W $FFFF,$8888 DC.W $FFFF,$AABB DC.W $FFFF,$88A9 DC.W $FFFF,$BAAB DC.W $EFFF,$AA88 DC.W $EFFF,$EFFF DC.W $0000,$0000 PAGEPTR1: DC.B $00 PAGEPTR2: DC.B $00 DC.W $0000 DC.W $0000,$0000 DC.W $0000,$0000 DC.W $0000,$0000 DC.W $0000,$0000 DC.W $0000,$0000 DC.W $0000,$0000 DC.W $0000,$0000 DC.W $0000,$0000 ***************************************************************************** NEWCOPPER: DC.W $0100 MODES: DC.W $C20/oM0 ;BPLCON0 DC.W $0102,$0000 ;BPLCON1 DC.W $0104,$0024 ;BPLCON2 DC.W $0108 MOD1: DC.W $0000 ;BPL1MOD DC.W $010A MOD2: DC.W $0000 ;BPL2MOD DC.W $0092 DDFSTRT: DC.W $0038 ;DDFSTRT DC.W $0094 DDFSTOP: DC.W $00D0 ;DDFSTOP DC.W $008E,$2C81 ;DIWSTART DC.W $0090 COPPAL2: DC.B $2C,$C1 ;DIWSTOP DC.W $00E0 PL0H: DC.W $0000,$00E2 PL0L: DC.W $0000,$00E4 PL1H: DC.W $0000,$00E6 PL1L: DC.W $0000,$00E8 PL2H: DC.W $0000,$00EA PL2L: DC.W $0000,$00EC PL3H: DC.W $0000,$00EE PL3L: DC.W $0000,$00F0 PL4H: DC.W $0000,$00F2 PL4L: DC.W $0000 DC.W $0180 COLTAB: DC.W $0000,$0182,$0000,$0184,$0000,$0186,$0000 DC.W $0188,$0000,$018A,$0000,$018C,$0000,$018E,$0000 DC.W $0190,$0000,$0192,$0000,$0194,$0000,$0196,$0000 DC.W $0198,$0000,$019A,$0000,$019C,$0000,$019E,$0000 DC.W $01A0,$0000,$01A2,$0000,$01A4,$0888,$01A6,$0000 DC.W $01A8,$0000,$01AA,$0000,$01AC,$0000,$01AE,$0000 DC.W $01B0,$0000,$01B2,$0000,$01B4,$0888,$01B6,$0000 DC.W $1 )EY * SHAME ON YOU ... WHY DID YOU EXIT THIS PROGRAM ? EXIT: LEA CUSTOM,A5 MOVE.L GRABASE,A6 ADD.L #$32,A6 ;offset to copper pointer MOVE.W #$80,$96(A5) ;disable copper MOVE.L OLDCOPPER,(A6) ;restore old pointer MOVE.W #$8080,$096(A5) ;enable copper BSR MUZAKOFF BSR RESTORESCREEN BSR CLOSELIBS BSR RESTOREMEM CLR.L D0 ;XIT SAFELY TO SYSTEM (I HOPE) RTS KEYPAD: DC.B $E1,$C5,$C3,$C1,$A5,$A3,$A1,$85,$83,$81 ********************************************2********************************* CHAN0: EOR.W #$1,AUDDMA BRA CHANSET CHAN1: EOR.W #$2,AUDDMA BRA CHANSET CHAN2: EOR.W #$4,AUDDMA BRA CHANSET CHAN3: EOR.W #$8,AUDDMA BRA CHANSET CHANALL: EOR.W #1,AUDSTATE CMP.W #0,AUDSTATE BEQ.S CHANALLOFF MOVE.W #$0,AUDDMA BRA.S CHANALLON CHANALLOFF: MOVE.W #$F,AUDDMA CHANALLON: BRA CHANSET ***************************************************************************** NOP CHANSET: MOVE.W AUDDMA,$DFF096 BRA WAITKEY RT3S AUDDMA: DC.W 0 AUDSTATE: DC.W 1 ***************************************************************************** SPRITE: EOR.W #$8000,SPRITESTATE MOVE.L GRABASE,A6 JSR WAITTOF(A6) MOVE.W SPRITESTATE,$DFF096 BRA WAITKEY SPRITESTATE: DC.W $8020 ***************************************************************************** PADPRESS: MOVE.B #9,D2 SUB.B D1,D2 MOVE.B D2,DIGIT1 WAITKEY2: MOVE.B $BFEC01,D0 BTST #0,D0 BEQ.S WAITKEY2 LEA KEYPAD,A0 MOVEQ #10-1,D1 ;T 4RtHERE ARE 10 NUMBERS PADSEARCH2: MOVE.B (A0)+,D2 CMP.B D2,D0 BEQ PADPRESS2 DBF D1,PADSEARCH2 BRA GOTKEY PADPRESS2: MOVE.B #9,D2 SUB.B D1,D2 MOVE.B D2,DIGIT2 ;YEAH I KNOW IT IS USELESS MOVE.B DIGIT1,D0 ;BUT IT IS MORE CLEAR TO YOU ADD.B #48,D0 MOVE.B D0,PAGENUM1 MOVE.B DIGIT2,D0 ADD.B #48,D0 MOVE.B D0,PAGENUM2 BRA NEWPAGE DIGIT1: DC.B 0 DIGIT2: DC.B 0 ***************************************************************************** PAGEDOWN: BSR DECPAGE  5( BRA NEWPAGE ***************************************************************************** PAGEDOWNLOT: MOVEQ #5,D1 PDLOP: BSR DECPAGE DBF D1,PDLOP BRA NEWPAGE ***************************************************************************** DECPAGE: SUB.B #1,PAGENUM2 CMP.B #'0',PAGENUM2 BGE.S PDXIT SUB.B #1,PAGENUM1 CMP.B #'0',PAGENUM1 BGE.S PDOK MOVE.B #'0',PAGENUM1 MOVE.B #'0',PAGENUM2 BRA.S PDXIT PDOK: ADD.B #10,PAGENUM2 PDXIT: RTS ************************ 6X?***************************************************** PAGEUP: BSR INCPAGE BRA NEWPAGE ***************************************************************************** PAGEUPLOT: MOVEQ #5,D1 PULOP: BSR INCPAGE DBF D1,PULOP BRA NEWPAGE ***************************************************************************** INCPAGE: ADD.B #1,PAGENUM2 CMP.B #'9',PAGENUM2 BLE.S PUXIT ADD.B #1,PAGENUM1 CMP.B #'9',PAGENUM1 BLE.S PUOK MOVE.B #'9',PAGENUM1 MOVE.B #'9',PAGENUM2  7SEBRA.S PUXIT PUOK: SUB.B #10,PAGENUM2 PUXIT: RTS ***************************************************************************** LEDON: BCLR #1,$BFE001 BRA WAITKEY LEDOFF: BSET #1,$BFE001 BRA WAITKEY ***************************************************************************** SCREENSHIFT: EOR.B #1,PAL CMP.B #0,PAL BEQ.S SCSNOTPAL BRA.S SCSPAL SCSNOTPAL: MOVE.L #0,PALVAL MOVE.B #$2C,COPPAL2 BSR LINK2COP BRA WAITKEY SCSPAL: MOVE.L #56*80,PALVAL BTST #15,MODES  85 BNE.S PALH ;IT WAS HI RES MOVE.L #56*40,PALVAL PALH: MOVE.B #$F4,COPPAL2 BSR LINK2COP BRA WAITKEY PAL: DC.B 0 ***************************************************************************** PAGESET1: MOVE.W #'09',PAGENUM1 BRA NEWPAGE PAGESET2: MOVE.W #'29',PAGENUM1 BRA NEWPAGE PAGESET3: MOVE.W #'49',PAGENUM1 BRA NEWPAGE PAGESET4: MOVE.W #'69',PAGENUM1 BRA NEWPAGE PAGESET5: MOVE.W #'89',PAGENUM1 BRA NEWPAGE PAGEBEG: MOVE.W #'00',PAGENUM1 BRA NEWPAGE PAGE9fUEND: MOVE.W #'99',PAGENUM1 BRA NEWPAGE ***************************************************************************** ***************************************************************************** * OPEN SOME LIBS INITLIBS: MOVEA.L 4,A6 LEA DOSLIB,A1 CLR.L D0 JSR OPENLIBRARY(A6) MOVE.L D0,DOSBASE MOVEA.L 4,A6 LEA EXECLIB,A1 CLR.L D0 JSR OPENLIBRARY(A6) MOVE.L D0,EXECBASE MOVEA.L 4,A6 LEA INTLIB,A1 CLR.L D0 JSR OPENLIBRARY(A6) MOVE.L D0,INTBASE MOVEA:!,%':* 7!%)$#%76<01 (&2! %#2"!9( !) $ $#&)!,)9'B+2(4. $?"'    ' # +  ( 0 +)+  # %!)' &   '% %('  # %3  D 5 , 17 +("  # ,4-+/&3 #5 /-$00 0 6!*1'(3& !+%.# A/-!m=B  %- A(  @((1;"7!" /$!/(,3) %"! )" 4,' ' *#+ 56%%(.! % ! '" ' &#)$)  3,( 5 "". S ( )= ( + * 42>/!;6'/ : " & &!*  $3 #%'%$  '#" + &- %% +)/& -) / " +)81$   $ #+ ,) -   . # G  ++ "%n>t !" ("#.5 4  $-'##  ./%1 3 %%0";/ ?. !$  $" !  0 ' 3 $ .4 ()+( $ .71& -+5"1   >-+")& ,   )+3  * ?!"  % ! &-  '0$   "$' ' !!%*5% /'%)" o?47'%# .  %*& +7  ?   "$-"$"! '# " ) ( * 90 "  *2% %*%> # $ +&(*  $ )&' #.  #!) ()4# ! '.,  " ,'  :   #&31&  )$0 # 0)    "  *   )%# #$&# & (    p@ֱ#   % , + $ #% #% 3 !& ",/,#  & "!  +&& %  %&  '   #2+!1 +$   0* , "  +/!( !-+ #& 3,  & &      (  & '!' " "#   ! +)   "!   & *  $ #% ( .1 % "   qAԏ( # %-$)  )%)  ?$(& & -+-! " # <& /)  #   !! #  )%  "!$  "$) ! #'",   #-   "   #!    (+   #   "        & "        " rBR5         !# !  !$ "   # !      &  ) $  ' #   ( #              !         "      $  "    $ #    s=|  (!  "! %*%> # $ +&(*  $ )&' #.  #!) ()4# ! '.,  " ,'  :   #&31&  )$0 # 0)    "  *   )%# #$&# & (    D)>sEQU 44 CMDMOTOR EQU 9 CMDFORMAT EQU 11 CMDCHANGESTATE EQU 14 RP_BITMAP EQU $4 BM_PLANES EQU $8 KEYBOARD EQU $BFEC01 * THE SHOW STARTS HERE BSR INITLIBS BSR INITMEM BSR INITSCREEN MOVE.L GRABASE,A6 JSR WAITTOF(A6) MOVE.W #$0020,$DFF096 ;SPRITES OFF BSR LOADCHARS BSR LOADMUZAK BSR LOADPAGE BSR MUZAKOK MOVE.L GRABASE,A6 JSR WAITTOF(A6) MOVE.W #$8020,$DFF096 ;SPRITES ON NEWPAGE: BSR LOADPAGE BSR PAGE_PRINT WAITKEY: BTST #6,$BFE001 BEQ PAGEDOWN EBI\BTST #10,$DFF016 BEQ PAGEUP MOVE.B $BFEC01,D0 CMP.B #$3A,D0 BEQ LEDOFF CMP.B #$3B,D0 BEQ LEDON BTST #0,D0 BEQ.S WAITKEY WAITKEYY: BTST #0,$BFEC01 BNE.S WAITKEYY GOTKEY: CMP.B #$75,D0 BEQ EXIT CMP.B #$33,D0 BEQ PAGEDOWN CMP.B #$31,D0 BEQ PAGEUP CMP.B #$37,D0 BEQ PAGEDOWNLOT CMP.B #$35,D0 BEQ PAGEUPLOT CMP.B #$55,D0 BEQ CHAN0 CMP.B #$53,D0 BEQ CHAN1 CMP.B #$51,D0 BEQ CHAN2 CMP.B #$4F,D0 BEQ CHAN3 CMP.B #$4D,D0 BEQ C0ՇHANALL CMP.B #$41,D0 BEQ SCREENSHIFT CMP.B #$5F,D0 BEQ PAGESET1 CMP.B #$5D,D0 BEQ PAGESET2 CMP.B #$5B,D0 BEQ PAGESET3 CMP.B #$59,D0 BEQ PAGESET4 CMP.B #$57,D0 BEQ PAGESET5 CMP.B #$3F,D0 BEQ PAGEBEG CMP.B #$3D,D0 BEQ PAGEEND CMP.B #$73,D0 BEQ SPRITE * NOW CHECK IF USER PRESSED A NUMBER FROM KEYPAD LEA KEYPAD,A0 MOVEQ #10-1,D1 ;THERE ARE 10 NUMBERS PADSEARCH: MOVE.B (A0)+,D2 CMP.B D2,D0 BEQ PADPRESS DBF D1,PADSEARCH BRA WAITKaGAq8$' -"2!6'3/F78 >(1 2 !.#!%!#D/ !1 [ :@ABY# F-& )A';K 94%#1 $ .)/846' ( %!F  \ /*%7,(/(5%'3% .< 6>B)2- )) 2(5"#" C %'"1 *,&.8E2 % (-!/*.H/ #-/$/G!/+ "". 7%!=-6' 4K%!>$+!1  3!0-3*5 =?I0$ 4/!*K,? '#=?%)> )=bH,o$ 5"/?@9A/ 74&#".'7F8^$@7&'86<(= !98)%2)$/ '95)373B= P!&#"!:6J "/ $% A (4)%8# j (#6"3/;)M0-) 72,  A +: 4; 7 *+' "+G[# 3 /  =56"/3)7((#/V5"%I#/O%3%2<&22,B7'!! )B%',2-! F >N,.133M('*%*/+3;$) 5' &('H-8-=OW(,)5 BN"" 3 %,%@6! <5!),J2&' %2& I/  = 64:+"9+!#&cI=~6 %!=A+QC0!  ('(D4IA;.9 %90 25 "  #  E":"*1 . ,-  1 $''<,057# 8'E#2M?>%*7$8$! /T9" >" %!$##XE ) \%<5 $ 0 *!;0!% D$+%]/(**0#' <'/;+ :7 $;"% &3 =+>-##"3%% 7 ,223 :$T 7*1-&; 0 C R1$%<7 (/# ;C99 +%*0 $53+)%. 0%2A%#3% 7  .<>dJS:#H9!&,$ +,a1!52 :H*>52# (12/ !+3/(> (J+0!*'2*)/ ##* %"4.-)A&>* '>-,&/+S,==8 =6*5,-D@ 5483B.7&-4" 74)< 3-.$53 +/=,-6"=01H 3;%/; 0-'<'-) 1&(-*   B!'AD)%(B%#0  7 =-(H,I-. /)80 4%D1#!42 !5$;91 +,7$6"B"'08!   '4!!'..8&)/$, 4 :+%eKSnB  1P I5 .(" &*9K% ',2 , B49$'")(+OLES,_!&-C--(B @9+1' '&"+/ %.!=# "J !>!25A#W /+3"$(9/3 =AD% %@%AD4>BG&51 732!W("*. B4($ ($.'))J;EK? &+? *:,F0D" ?!<  ! =/!@3 $=';8 '' %)8+'' ! 0 $*5' "&*<"'V@% I 4* +PM0!(+ @,9-&1#52!=  8)<% # A?fL7&7 8 ,!),79/$&0% ! $)"# E0#+4&'*7)*(Q,' D 6*3%F;9+; 4' L 8T #I-%  12' &/@'$W&/ $ ':/-!!-+!! 1 3 %!(7*2 6*?(&%5!#.@?28' '%*%-# F(8,& -$ #" 2L '=<13)1#6*@*/H0 ':&0'.#+#  " #" 'CC< )($ D 9-- "):W$84#. #$-%?gM$$00 #!1 +1E) E%5 & #&1!6/%3 #*1,%G.!*J+; ()& *>P0*8/+!?!'0;;9+"!- :&3!<);: )/1 ?-W 5>-!8*(H%%%: !3 5)N$ -@7#.#)E""'=K$!$)=,7($>% 8+,,.= (E."''2T8$)+-, >- /6"..%643%)A* $ 7 % F&-"!3C1&/ "/'1& #@, (= 7 $=1*73 M  9*5G1(EI("6' .'8 * 9 .1&89)317"1hNvT @$#@;,"S$&-4994& +87"9+<09  #M +K9+#R  " *7<1%$7 = -/ ;, @) 3(# &14*)%0: %:8 ( F?12I,'H !.D%/$>(M,%)&%/4/Q!'5)3  /()"!$ & %$,5(, )  -= O2)7 %=$. %++ 3."1$3'-1'$%*(& :113)<'/ #0! 7 C(1 /L/A*)%0 +N($8*(" 4!<<7%- 004iOH'/ * 6 %/' ;-&?-$&B?% 4-3  'H*E9!.;")(8<!==*G1 & 2I$-9%*4)"2%+#  73 ( (,##&""(!$  9#=" 2 090@ $4928)) *+*4b2 & *<& C, :%'5*$C6 '$!>-'  =,1( ')!#&$  =%+)0 ; , #$'%E!, !K'K% '$#2&+^, C#6 2(4  1)'"9 (;+0&*-% %jP0 8 1#7*#*%)(/3 C: (. ( *+. -!(9--81]2 !+!(: 0#!7,&(" '@ A 1'"!10".,75;- , @)  #>? @+*!)0>'+&   ()  , :"'*  :G %!%3+,"!-%$-%2"'%-!."-("*. #3. 1 ,01  !', V&36 # 1+",!+"#&'70$)E $59 #3'%#8( )$ 0>C"19 /#079!""",k;S(50-'#$ )6 " 7= , $ ,#,7$)  $&#<? -0-E 7- & &'8"2#E&/D  0, &% "'8 *)%"* (%0+))- -3 .B5/ 1  #& $9-) % 3)!/&# * I #'F N-+(*#B.0 (5#% 7,- ,&$8 &0!+ &%+ ';-R / #09+() . +) ??'%$ 95)#"VRHR                                          WS                       +UOx(.]'..W3: 0@ > 7^M8< B/G]H )60I(#"),9+Ad,XTф# , D  %8@=R)/C #EB*A %# "014*/.%% %<.  5,< ,( 6  !)#,F5 *"  F F"*/'$;%(-D5*6+ 4*) 6KCZ #8@!! )%'   !  , ; "'>%'!+ - , ! !YULX% ')0+C  ' $ !  (%1+( !  $ "+7,0'"  "0"'"               ZV.                                       [W>      &*/% < -$$.(!*G L0 $!0.DW \;) DF '*#52//0 TS 2$1" ;$ 3%+%2.;'\XJ0  0'' :)D " % +!DI&)&"9:!,2E K53/ %;%;?S6WT! 1E(?4'735 %!-) "1.> '*A@$ ) 6'M%) -V )(+'F6 '(:! FG10"W!8&0%7+,%&(GFCD#" . 0 %## .,*"7 :-=QB/ +(%#+,!%00/> A,,%6:%& % U  2-&%.&5=#" ]YAN1524;= #."GX^Q  ?!!1FA %9#;%7 #* % (9,W F#  -?!L# !/!  &9%2 (N96"  ;( ) $,'# 93 + $>!012'%*5 A G<="= #,%$+,49?34  '$)%&1 + 9=  2':;; VM B).(+ .&4 2 .543&*362  $ +=#8 #   ^Z6O6%2'#+)#;!H#.@`,,.!'5 3!H "S*W 08 $A?1(+), , ?  +5):3?C;%)2%$.C0 #L1_[;8]v>*!/%$,,S:< '   (O<,* * '5"13533-5 *%$14?&=6   %9 <?(B3"  & ! W?20%60*3 C S%&(J 8- ' 3 =.7%)/<1 )+/? -6++8A!3:1 +&K3)3*('& *!# $%J")%/"    03=.#.'3$./ 55R7+4)* 7 $ R )8 "D@*'G!1).>0 . 4! `F`j2'4 0I2'(e6*8 !$'-A 7!:  7%#'/' 2 +!(0 7M "+-2%"/L=  ' 5+ 08&54#C+(3 #2"02)-**_*-!B* *5 -#+')>,N)+ $< / )(#; - * =7GK& 2!i:9O%5%=')/**1B-*D&" +5 #'):,,$**#)2D 9 ' , 2)H&',,'/$: ; !4()(;,'7 (!  '+?)"(   9+ 8 (K]O17821/2=;125:;755=;42=>855:A;,/A@/,1785/+.4/()/+"# ¿ý¿   #(%#)."",/)())/4/,.212541/422454.5=51551/22./1,,/.)(.)&&(&#&&       L^.                            M_h,                          N`]2   Oai @0WX3|A: xl~HbD,d:4g J,<ݽç뙥㹚%1! PZ(SQ!I'eU?c&8C?8,' "6G"# H% !( ߹ļų'11J--T8Jd;NcbQwIWy`[n^qvBh}b8S;LJc/ٽݵתøÿ¿͉٨߭PbS\)*&+B4DFVCkqUo_jn?^^YfndY8!9QcIVU==("1+" ȹ鿖ª̨ȸѥժ "=@2Y@8<1NAae_OEP_lmO@lWQbP=E2GL.>߸׳ËƘҗ叚篑ˠ·"C,4*7&M0.-=S0n,J[:tNEeE6)ͳ ҢȜ̥˽¾($, 22#%<)*GHFA2"; *PD`W*/8,#"D J *A. ܹҨ'89*. !@ *YG;F8_2<2.1H1D >= ȿ  ' 5 )#*4! ;MOI0/6/ 3 I,(  RdWlu , &<<  #&!    A $  $%'4 8"          .$ % + !"         3      % &  "Se2    #/  .&     -  !  "            3      /        #TfMd#        ,   1                  '!     " #    UQ'                                          ChL[#     !  # # !" #   %"&!#& "%$& $("%# '+%  %! *.(!!%DiO*. +0,!!#",2/!!! !##/51"! $'&/64# %,)/75& '/-/74)ɽ )12063,""*26132/& %+39500/)λ  (-4;8.-0, "+/4;;-+0,ϼ#,15;=.)/*&-36:<.(-) "'.58::/',&˹ %)/59:81()#ܹ"(,169950'&EmdDz %+.27:820("θ '-138:610'ռ!(/247:4.0%۾#+146892-.#ɴ %,257870,-ٶ  '-37885.+* ² #*/48883+*"ӷ "%+158970)'º"$'-26:96.'! ɽ%&).37994*#ο "''+/48:93'־%)),058:90" ļ (**-159:8,պ  #++,/369:5&!'-,-047::2ٺνkIn{t԰ #B,t"),N#A@$)#p(8#p(<` '@o.G" #AT$<")@N$")TpT(j(N`r @oRG" #AT$<")@N#AX$<")@N#B\td")\N&$)X")TpT(j(N`$)@G" pT(j(N")#p0#p4U,tQ0fG" pT(j$N`F")4$),#B\G& #CT#AX$rdN$),N(&)\$)X")TpT(j(N")$0G" pT(j(NG" #ATtR0fG" ` rP0fG" ` G(" #AXJ7 #2A^: 1)),..,,))((%#"" "%##"#"Ž  " #&()+./4:757>@78GLIJPMOSVPRPGGJGA>:522.+&# ¿º¿ ) #..2114;=;:;C@A@>8872=J\C.,=C87A45>A8:842=GJ=.5D>:7188,2;=(&4,"",(%(#"   """ ")((()&(141,),58==4/8F>.(5JA11=:54=715112582#)//%"#&"       """&%)&%(,..../,8sC"- $'&!&00% !&*'"'10"  #),)#)2.!%,.*$*3,   (.1,%+2*ʷ!+12,'-2) ɽ $-34-(.1%'/56-(./!Ƴ#)267-).+ ݷ "%+5990*.& ʦ!%'.6:9/*+ 㲤 $(*/8;;/*%ɤ"(+,29=;0(  ر%+./3;><0#ټ  )-015@9% Ѽ"+15778>?6! ĭ %-48989><2 ϴ ")16:;::=81 ߾%,38;<;:940 а!(/5:==<942/Ὥ$+17<>?=601+Ӱ'.49=@?;2.0(¯ *16;>@?8..-"Ը!-384--) ȸ "06:>@@:1-+%ø$2851-'"ĺ'49@>621(" *7?943/'$ο $.;?<532+&"ѿ  %1;>8330(&Ӿ"&2<;432+&"վ#'3;6330('  $(48332+'"%)2323/)' %)0021+)# &(,02-)) %%*0.**% #!*/**)  ++)+&!)(**!%)+' ;v^%*+! (+) )+%#** &*'  '*! ()  #)# $) %&   '   &  "           <wa;                         !! ""   #$  #$# $% $ !'%!!#$)'##" &+'%%!! )-((&##!=xNn (,)*'$%# (,*+(&&%  &++-('(' ο  %),-)()("'--)))) %--*++) $,,+++(  !"+++,+% $ !"")*,,+ '""#!!')--+Ӽ)%%%! %(,-*ĺ,)'' #(,-&غ  .+)("),,ɵ $/.*("),(߼&2/,(#(*#и>yGA& )4/-'$(& ¸ !+60-&$'!ϻ $/7/,%$# '190,$#ʺ !*5:/+"  Ӻ %-7:/* (/98.(ͱ "+2<6-&ܹ&.6=4-$̩ !*19<2,! ٱ %-4;:/*ǥ)17>7/' Ү #,4;>3/%  Ժ '/7=;1.! î ",3:?62, ̲ '07==32?zS!(  ݷ !+39>922$ ̯ %/7>45* ĸ #-6;@;34%  ɾ '09>A841 ٺ³!+4:@A74) ­ %/7=A@42" ֵļ'29?B>3. ij "*4<@B>0' Զ$.6=AB:,# Ĺ &09>BB6& ۽  ")2:?BA0#ϻ  #%,4<@B=+! ˸#&(-5=AA7( ű %'(.6=A=3( ս@{! "()*/7>?91& ϰ$*+,08><51$ Ŧ %,--17<830" Ӷ(./.17832/ɪ )/1015222+ҽ ##*03110.11'ʷ#(#$*132.*,0,#Ÿ %,(&+242*&+.) Ƿ (/-),251%$**% ʶ)22,,14-$#&%$̷)36/-11)$"!!"η)494//,'%!ι !#(4;91,''&Ϻ #')4;=2(#&#μ %++22$" ¿'002::0&! '122861&  (142322$(161-11$ (26-)0,# !)14*(,)$ "*11(&(*&#*/,'"&*&$**)&'*% %'&)"'*!  %#$&(*!"#" '! !  %!  !Bg$mx !                                        -~rq) !!!   !!!!  !!!!  !!!! "!"!!  !!!   !!!   !!!   "!!   !   !!  "!    !         .                             /G                   0Y1W2U3W4V5C                   6C$                                       7rk  !    #!!  "$#!   $%$!  %'%  ((%   ))& #+*%%,+$ '-+"(.+!*/+   !!,0)#$"-1)"%$%/1%"  !$%$ !'*+)'%$! ,4::621340'(6@FD;54:;6+ ư̶16>HD?3转֬ .8GQM;7AKKH@*ʥղ6?UTA:DTWSN? ݯ͞9GWF:FQ\\ZR=̳ͧ ?PP;CP_efaS0鳫ͣ "BR<;IXgllhU#߳ɢ#9&AE1@PbotsnJ˹Ծ(:.1DTku|}p=Ŀհ*-&8G\oz~^5̽Ө'!'?Kgv|O-!Ͼͦ -?RixjB2´ٺ 4BZnzZ96´ܭ $6F`q|kF;/ۿܣ )7Mbr}xZ9= ͤ+:Qdrz`D9:»渪+?VfsiW08' ļ马 1FWioTA/8%)Ǿ⧬&3IWiVP(,//0ì̾);J]`N8$.%76%ﴬϿ ,>L^GI% +-><,Ⳮ̲/APII3!2BC5Ԯľ5$UDJ@D # !8DI? ɭ$8C4D1&+>JWMⶭغ 54("u?RNPJ*۵&! #1@N@J<׶½½$  #1>D;;5ͲȽ   $/=882-ǰ  $0;/.0'ð   '16)*,!   '2-#))໽  )1#$(%ؾ   "*.$'"   ")%"$    "("!  ""   "        &[                               'J(d)D           *C         +C                           ,}p                     !!!    !    aM-@pP`P`p}P} ) #7:0 5501-&&"#      콯Ǿ %?>/8=94('1/,& +%!'(&& %&!#)$$,0* %!#! $++%"$$    Ͷ4 ̽  )3.")7:4)  */,",1*'())(").-/353,#    #&'$    ǻľ   $&!  (/,% #"  +31,*))'" $-37984/)# #$!c   !"   !'.441-*)&"  &/4652.+('%%%"      !#%(+0352.+(&" &,//.-++++*)&"   u     %(*,.1242/+($! "&()))*+++*(%"      #'+-.01331/+'$   #$%'()('%#!     $(+-/01110.*'#   "#$%%$#"!    !%(+,.////.,)&"   !!!! Z]W   "%'*+-...-,*($!     "%')*+,,,,*)'#! xj    "$&())***)(&$!     !#%&'(((''&$"  ^ZD   !#$%&&&&&%$"!    { "##$$$$$#"!     !""""""!     a\S       !C &H,ww{w}w~w_w_~pw'SwwM4x`Nq3`jNu y,yxN3`D < h9gAnr g Q`P< i9h0 9i0 `a`ra Q`9 90 l,9 90 l0 0 `9 Nua`zra Q`l9 99 o,9 99 o9 9 `9 Nu`(` 9v 9vg`#,a`#a`309 `329 `349 `369 `389 [X`300 `399 `v,yC.BNh#l,yC:BNh#p,yCHBNh#t,yCZBNh#xNudos.libraryexec.libraryintuition.librarygraphics.library,yp"ypNb"ylNb"ytNb"yxNbNu,yp <"<N:# <@ "<N:#" <<"<N:#& <P"<N:#* < "<N:#.Nu,yp <"yN. <@ "y"N. < "y.N. <<"y&N. <P"y*N.Nu,yt yDNiglNu yt< #2 @0y,ytAN4#D,yt yDCX <"<$<&OOG3|m0<"J "JB03 |@n*3(3(383y`$3<3ByByyB|mC2Ag@3 B03 |mC y By By B09 @E "RBy Bfy y Q`Dy y Q29 09 AmB09 @E $y 29 A09 Amn9f2( ( ( ( ( y 29 09 |m$| n"y vB@BABBHJAB4QA BB29 0"| naNu"# ByBy3<33 y"p0"y&## y Cfh Mf` AfX PfP#p0  oQ yC trHQ2Q#`A 0f000 yp  gR@`"<L〒 y*"y$y~ &JH|H2@AIA2@A cIA2@AIA2@AIA2@AIA2@AIA2@AIA2@AIA2IA2HOOQfL  f># yp  gR@`#"<' &m"<O y*!@# y"y$y(Ip"Lr< g &Ja`# Q &l 9"<' <O"9" y* @# y"y$y(Ip"Lr< g &Ja` Q,yxN8 y*P"ytaL y*CkLOSESCREEN EQU -$42 CLOSEWINDOW EQU -$48 OPENWINDOW EQU -$CC OPENSCREEN EQU -$C6 MOVESCREEN EQU -$A2 SETPOINTER EQU -$10E * PLEASE NOTE THAT CMOVE SHOULD ACTUALLY BE MOVE, BUT SINCE MOVE HAPPENS * TO BE ALSO A 68000 INSTRUCTION, I CALLED IT CMOVE (CURSOR MOVE). IT HAS * NOTHING TO DO WITH CMOVE, ANOTHER GFX ROUTINE OK ???? CMOVE EQU -$F0 TEXT EQU -$3C WAITTOF EQU -$10E SCROLLRASTER EQU -$18C TASKPORT EQU 16 IOCMD EQU 28 IOFLAGS EQU 30 IOLENGTH EQU 36 IODATA EQU 40 IOOFFSET M9y?<癞y?<癞y?<癞癀yLy?<癞y?<癞y?<癞y<9, <<<82 <<< <]Mg |O'?8O&O$  D@clO$|O&|O'?|O'! V ?@30yOy"bփ=yy<yyy<`<>#t3$ե>O??<?O??<?O?? <?@??H8 ?O????O???>O???O? ? ?%#8  ?$@$@$@p$@pr?$@p?$A?$A$A$@$@p$@@$@' ' $@ (@ (@ (@+kn (@ (@ (@??????HdD??C?C?C? 9~~?~??~??~?~|C~?~~~/qq???????0|B??1 X2W???????3t????T$UA0)+ DBF D0,CTP1 * THEN LEMME PUT LOTS OF $0A MOVE.L TEMPLOAD,A0 MOVE.L #2048,D0 PUTCR: MOVE.B #$0A,(A0)+ DBF D0,PUTCR * FIRST LOAD THE PAGE TO TEMPLOAD MOVE.L TEMPLOAD,A0 MOVE.L #PAGENAME,A1 MOVE.L #(80*256*5)+32,D0 ;REALLY MAXIMUM BSR LOAD * NOW CHECK IF IT IS VALID MOVE.L TEMPLOAD,A0 CMP.L #'FORM',(A0)+ BNE LOADPAGEXIT * NOW CHECK IF IT IS IFF CMP.L #'TEXT',(A0)+ BEQ LOADTEXT CMP.L #'ILBM',(A0) BEQ LOADIFF LOADPAGEXIT: RTS PAGENAME: DC.B : 'PAGE' PAGENUM1: DC.B '0' PAGENUM2: DC.B '0' DC.W 0 OLDPAGE: DC.W 0 CLEARRGB: DC.W $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000 DC.W $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000 DC.W $0000,$0FF0,$0000,$0000,$0000,$0000,$0000,$0000 DC.W $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000 ***************************************************************************** ****************************************** * LOAD A FILE TO MEMORY * *  ǒ}h?       ?? ?   Qˆ? ?< ? ?? ? ?xx< ?< ?< ?<    0 i ??       8? <PQ > ?? ? ? ?? ?? <? <? <?   (PC*?| @p 8p`8<~`80@ )D*B+ o?????,Ϫ ??????-??????????w(.ound task cliinit$#p(#p( p(jN#A p(j8N#A$vJ((fF#CBBx#D *) !X ") !JfX"#p$J$g<$) !$(")$&0$)rp4(jN")$p4(jN#At "#pJfr GT" p0(jN#A")p0(jN©F$) !(,"$0$rp0(jN&)$)") p0I`Np4(jdNB $rp0(j(NJg "*`") NNq*init.clJfGP" ` ")"0#A JfGX" ` ")"0#AJf "<` ")"04#AJfr`")tu&"0p$IhN#A$!(8"!0"t !"&0$x8"!4"!") 0#Dr#A n($) ԁv0($(0(؁Hrҩ `")t0#Br#A n($)ԁv0($(0(؁Hrҩ `N%N> SYS:copylisBtԉ#B`Rrp(jtN#A JgB$B(""0p(jN$) !(")! #i ""Jf")N$B") pX(jxN") pX(jxNJfG" pX(j$NrpX(jNNNqBackground CLI [CLI %N] !Unable to create backgr.??????????????r#A0tԁvւt08#B4pD(jdN#A8$)0r pH(jN#A<$)$#p(@$)0rpP(jN#ADBHJf$)#p(&0( #C`"t0#B&R#Ct")NRt ҂pX(jtN#A Jf`r ҩ R#A$)S#BLr#APLn&ҩtԁr0($)ԩP(rҩP`")ҩt ") v!")8() !H")8() !H") B ") !@"<|pX(j`Nr#AH$)(#p(Lr#APLn"ҩ(Jf #iP,` rҩP`J,f`"<©4Jg 4r4m`b#i<hG( &)4$<IQ ") pX(jN#AJf`0")(ҩ,!&),$)r pX(jN"p ?0p 0 8p0#4˱ ?? | @p   8p`? 8<~`?80@ ?!>"&8#ܟ/ 080p 0>p 0p 0 8$ݏp0%6&4'm