Path: utzoo!utgpu!news-server.csri.toronto.edu!bonnie.concordia.ca!uunet!elroy.jpl.nasa.gov!swrinde!zaphod.mps.ohio-state.edu!mips!pacbell.com!tandem!zorch!amiga0!mykes From: mykes@amiga0.SF-Bay.ORG (Mike Schwartz) Newsgroups: alt.sources.amiga Subject: OS friendly assembly source examples Message-ID: Date: 30 Apr 91 12:52:58 GMT Organization: Amiga makes it possible Lines: 255 The following UUENCODED .lzh file contains source and object to a couple of assembly language programs I wrote in about a half an hour. The first program is a skeleton Intuition application, which opens a screen and a window (with a menustrip). The program prints a string in the window and prints information about the Intuition Events received. I must admit that I normally don't comment each line of code, as I do in the example here, but my style still shows how readable the code would be without so many comments. I typically comment each routine at the top of the routine and heavily comment only the routines which give me trouble... The second program is the ol' printf("Hello, world\n") program done in assembly. I didn't comment the program at all (who comments such a program :) and did not try to squeeze it down as small as possible. I've never seen a 'C' compiler even come close to 20 or 30 times this executable size :) I hope that people who want to explore the use of assembler language find my examples helpful. -- **************************************************** * I want games that look like Shadow of the Beast * * but play like Leisure Suit Larry. * **************************************************** #################### Cut Here ####################### begin 777 asm.lzh M&[0M;&@Q+8( "T -B2>%B !6AE;&QO+:O&8N/?\,> ,;( >-!>GC NX MZWH']F&S82(4ZGQ_%I^]QK .S_U3X9:LI__=5_K[JWVRP6>?GPT6^_RBR!(YX M#M'5=9.L&?/?:],NR%EH<(-PPG-*&N?<%B X M!VAE;&QO+G/R)=MEL76=3X_C _>&!W_^O?"Y]?U<]O_M,'\^Z]6NZ:+6V^8#X M/K[&)&B7N5)4RI6LX3=8(66DX M@W=\)!O39&\3>0HTAR,2")F7"3ZXG6;1I!PF#"BM!6F)*ED[5P0\9P]^>M,8X M\1CNSG1%OR,\$PQG5[7/Z"_WF$"HL(1) F-2&/17ZPX:MYWF37DSPRD$T12"X M8!7O=)$4PSD__^5$7H@O^T!IC$Q,-N@N%4#@FT3 I)#']_]*0(L%EZ^$I]Y_X M"=W)@,01Q".L8Z4*A8 %P\[PU+1)DIA\[@@\!8354J%>Q[ZYY>YS+$+!*>;@X M'/J_01?DF79+M_H :W\2F:>"/SUT:&#UO!\D.Z%Z#CM?G6\[4>WOPEGOO[.X M?J-#:]N4>73()W?BZ_!Q\<,SV+2!DGA>\XLOAX.H"_\&RT#JK@X/R>N#?OO=X M;_::N+V[P[CT)S(FS;MRB[SRQ7J"X!JDWD!E@?EZ;1^.!)3,3XY&W55*A73'X M=;MBC"W(PKMYO8IH+W6GMY2BH35*+))LOGML0.C%\T>5\7(DIBV.J6:90BJ!X MF:CV-V@J&N!6&A1D%"'A')2(J0'ZULS' 44OY?T3_56H@E!\,XTNP$ZIFI+"X M?\2!?HBNQYI ,;( >-!2+&!=UO0/VH;(.EH(XX,PJE=G7?V5X M=F;OA)L)$6\W_U'Q_/N_ +K.A3TW[CE26[#=9"@X?J&_EAT?':)?)Y:,;Y0Y 98O'33F.SX M^=$CY(Y0_$])VU-!#VK1]-E\28KP!<'4&9XTJ@! -TM(C2(/"6]-*' '@;)(X M$IW/\OD8'O6V@U0DA#O:4I2=H JCYR=\I2>0(>]M__&U I#S?:8]B0A['#*0<1=\,8 X MJ^K-S=2K\W<0O240B(2B$84"'MU"%P5B'*&A#*X M .#E=.I!X1_ EIS#5C;PY)5X7JS0%]R 7X MZHN%W>O30XX4B/1O*^S^]H2=*GU1NQZ "]641#%1708X5"0G-/.W8HE?8.BGX MD_X!OK6[J=UY)3AQIJHW6Q%QSKHD(7_=3!NUMJLEZA-,)WP5KO_/B<66_/M9X M1T[*Q4[=@I)Y>XKDV:X>,$XZC:'*D;F%!.[&!)-._^+WL8\![)%_"48Z1?2^"@'+#1GAX MTC.)2,YRPI/4'\83[S6!U!XYQ="ZUE!EBM9R!*X3_*>.U]J\YJXV;VSVHC7CX M/13!$ SY6":O2[(/NAS$_YQ$JWR2QMR SB#@S%#C"#URU.D:"JUT7;PG?H] \X^R>@6H/$5BU;"Q;R\?E(YJ+X/K*X M_)9WW#<*3YF(ARVO]VW2T,RFD)X MIFF\O38/9NE^LKEP'^^ NRO'0'\ROT8H]F3:YJLR85_H:7W!WFR)]/'>=A\3V3?JV#?;?ZPV<'!^?9QX<(^76G1X M%6JGVK%%YK9QJJ.-0*\M*V(:\ WN@*2GG:\1 HD5G$^>MT.*<4 WO_[U>U"X M'@>[ O02;7*U88!P/O==?49"+%\H[ (N#"A;X(/6@@]^B#S 8E\@@];"!^,(X MG23>H@P7T;?YTQSF4R>:+8KGT0@KT+X=.S?TM]#X1=X1&J0C"WO7Y^&V]J\AX M14?B!Z <'UI8\9I\#,Y9Q=^<"S0?I#<+\U$3W7"G:Z^>@>YQ!H ;& '5QX MA1(,8.2&,#I*@![?9P0ZH$^W1Q>2V-_^&9R#]YI0#/=9+=H!UE3_(34SM7[6IN@&=Z ;29Z^8:?O)0UQ#@#JF1'T9O=X M.693=S5IAKI=&;W1G+X= >C>=;]G"TQ\6SVYQG@'QA^Y7@&:O .D\ ^0/Z+GX M /LG:O&>Q-O ;7V^9[ODV[YCV_T/P?D6JC/P&4?G;5!M4N#@'Q$M;&@Q+>8$X M #:$ 2B">%B "71E6J_=WZ_.FO9TD?X]LR6!1TJ%/#XI\T:G"SA<"X M+8;Z1AQA+>LW?I#.OG,3C,]1MG9031^&$$-7\Q @VD9S^?W\6PSGMC5MHVIE#&RX M[ZUA 4WXG/7:O&-31T-#(>[9Y85:BB%2EX M,"NI>('G86.%7O]E!KMT'\>>*VL;B'9%]"7L]BY:_;Z,5SZ#>"R#67I?1C27X MTZ+/3[_ZYME>H'P8^Q%U]8585A8_U:QQ0!VWVD__&4Q\LTU*\D_U\Y/--Y=_X+,C)FOBHRB&<97*8RXIX MC71Z%U$=H:80+(:#C$:=\#,3%AT 4E@HQ4T%VR/>8&%C7AS51EB%36=AQ'H) DC>O!"=EV9+2X9#0'1^N2.FP_@1\\D.++ K%W1)=^*PYZX MT*)H*9P(43:5F YF$[!XL-S A,B&X''?<@)*[K(C%=."(;,FV D%3CB!L>#'50T.IQD,PQSY=0&Q)X M%!Y]6O\3*2F6U^.+"QN>SCN&M*OZJF$!^C/6I_U?RQU:&)Y@/Z,%9RO\]0J?X M4_3LZF1U )2J%WDN=A';R"HNOZL[_X=1T@U02^L( QBIVOV,E<[OZ;NPD4G$X M,?1N2W7(E*K+TZIOA-76R@6H*TCZUBEHH&-$"U4C&SFVIJ6UF^L_GZ#Z[=,)X MXD[=:2')W90J3BM+9;:FZFH[R0_2N?C^R:UD0$.UQYJ_G:=_07W]*!),+779X MN%CLG"@V-:X?:/>3]IN"WE,6!2>&W19^EZ=K.X=?-X_NAKX\:8QM?E:8\/'OX MS'*O[VK>5#/'A4]53.6 C'#VECU$G(_7WOJ1P-QXK:!B5G7?C%.2$XIKLIIZX M[91#\)SO41Z*^.:55*-R=$8S5NX+>C*=\1@9=<#EE(Z;]2=#J3-X M_+XAW3HL5+3PF?;,[=U#:*X*:++ZZ2/MP_Y*J+9-?YL+80;9M9_1&$_=SX MW <\8RM\DI?'Y(:]6_6#]2G$99ORN+R<=+-L/O#."38ATQ3?SS?R?[V%(J4_VZO15%E*8.E/-@FE/]D>8I3;X M%*>1:BW>?WZIV@?:V%*XZUC0A1#-+@\TN>D32Y>TN(92X#!=>EQ6Z7+15+CVX MES+4N=MBG4N6:7,-+E[%-U+GDGR-XAR=;U+>,=R*RP!$#K('[D#_R!MV0,)_X MG9 Q)(&IX) XI _#('VUV60.N0.R0.]BET@8A/IIB!J*P'V;VRX@VSW$\-L.X M4^W_*;<7;#/N^DC] 07'PH^0'=0M;&@Q+40! R @ 3"">%B !W1E)P]Q5C +95_<"T=7M=OQYDJ$L=+,5&0K)22*\VU$[XA&\BH!Y$ +E CFJ9D]>?FL_%6UT'CLN.",?BX M1S X>F3XVO"@ 3A3.+$/DY!>16:MB;4W>%U)JXN_6$FGI;]#UP^G7(H;\!O3]!L@E]'381".?]7ZX M"+TX57@!1#"H$I'T^0H#E.6?/X!TJA32.\!Y^#1N.LEY6P[/X M'9;-R$](*3)KF#B0(!SM+6QH,2TA& 5$4 ,TDGA8@ 9T97-T+G.B[MMEX ML76=_[_'\8 !^_UA\W^75_]??[;ZYC 7TKW_5NY2 Z=IXZEY\+%=_[.^W7!MX MA77T(_G1M_S05JB#W L/9JX+LV%FTO_VO>]T1ZH@\*(?[GL\5]/G_!:0,[-$X M\\D0[/$8[&>/CW@B^'9P$=O1 9?Q!T>\<=<0'HV3O:4[PXRM03+8=6P-/['2X M@"W-7^\ZQ9"\=W->J03HEN:79%_? >J9],#S]*OE <^E83*,Y:L9!Z3/^1\LX M:F8"F\6O^QE DN]=Q ;GO+Q@.2YIU_X7,2ZIZL1SQ^\^OC/9R[Y#XP$@HA$/C*IE>RP3#P0QWFM#X MZ)%4Z49AF?=]+9F[ W!S=-RRC3F8[6,5X/38TD%M6Q!"%WQV- [6J'^5Z["QX M(I:F5WVBS9E&K8D'6S5WJ E%F1KR(,VDJEM5"4]CS"B5ZAEQ&*G@7@,3?MRQX M4L(^ R6*/'6 ECS2J26$!714,\VZ'*]/X_XL>$M6*BR:$X5LOJJR;8G,G.VZX M S!VX#9_=;)'48)/ :87((9I!KI4B8S>Y;RT40JNTF!$E:H2]U\J/F@E4LO#Y(DOYZ*8A]X"\]XX8ASBL.5$#;:X M%/XM/!(4"R$D#+FHO1DV3=NU&3V/P#]DT E16Y6Q&DGW5_,2=UX?L*6/Q,[+N_E#%22M7]R&.1A "LJ(%R,>B#G88Z.:-X M?@>\)SVAYFZW)\)#3;L3D[A!CT4IL@A4FT"\ /=(]Y>1-MY^SH[9T#)=Y_N$X MCJ%8CM-%7"->F;YK*:!;_<"WX,"5<&XQ]HBPP5]QC;40"*%H1=53HB/CWWO4X M1PST'H;-_KH+9=1]MH(![%M0#D1\.S?IX M>=(B^6\B<,:46^D?^\%@G.-?M1;EX4VSAN%1CI48=-W8[YT*3"^YFF&1 IZ(X M%CR".[1_ PVXZR$,I_SR/K4O6NPH)UK&*J-\(;38*<<0U)/"(>'!>/$';<:[X MP-E0DE+F.XO*RYOHD/E%7"K'>#9X M!)RB_E7O.!<;_G7_*4D!(7Y= -&S?)5_/^:W<@KN#P\#$^>/Y091?XB#N4BVX MU\5GE7X#FMQJ6(E:S,3'^5\N\Q<:OV(6T=*=,(%L_G7?O+"/-FW*#<'>67H5X M_31/IWQXM<'$_X&6J++J,V<0R4V%#Z#M5^_3*(<<7G_D;T_Y^!(7[:[Z#TBLJ"CUJT[AW^$$?M@^=PX M7OF'M>L'0*;6Y/T=XU>/9/P)92O'EC'8'<=#U7'O*:-'J8G 4&YU(">;#!ZUX MS?#<]W:Q(+0.T=0DC]3TEDW? 4O_M3+E.>KT5 I4P^))\021Q^7D'PRYYN&)X M53&TA\G+(//S?-[_E2]7UPVGU\Z@V)EWU;@.5[]LDLZU+B4DPK[41860=4POX M!QI_&QL8>27YX*TZ:&"OXZMX\3=GWQX MR2H_/F_O?/+N_II5:2<4 ^<%T"=$8"\SZ27\GT4$G-4!!E&O-#XN4P]\QS;:X MCIJN(4"R$;!XOQMZ-V&6^0%R2UT/_+9Z_K94ZB<&[6[3)%[TE&4;G)\_V6C+X MMMK1=<]4"*?38&E6A^N1[TC;#.V&;#_Q^MT?G]OWB\A_T>EW(VH1K%^>OSU!X M.PZ-(!@T/O#[K+G^*#%R(?Y.YA#RYMO4O8Z% !L1?:#,R%TR6Q]W=^>7I;3JX M1HJBBC[F6D&Z L_?]2GTK)W#DH^J(.WRN_+]B?$O$"\O,Z,X M#B9#UY5N8M$%=2_$X,* ?;5BN>:@9\-ONS]Z.3:CYXPY^?RHAWVHD34I_ZYTX MV-M4-%J_<>Z2J;L+Z83Z-MLJ2/?V'FD@^#8H!"Q X-PTBX M)KA?RDB^Y[Y9VJL$O?(3\/K&G*'WTNEWT!7QQA?0JN5J^,E@Y"P..<,FG3FVX MGV_G@N+^6;XS-4>14:RR]M7B=>$R[SF[?]69X>ZOX;%@VINSU&5)9(HZ"] BX MC:L!+B5IT13F@ON8;@"_V3B5 O--5WAB?+!8S\\[]#K2VWG0WP07Q8;0:I]G[Y3X M<9T\:_3-KPVRGPEVV&?EP+_$. \Z6S1!P-]NP_#LONV)ED7\H[7_3*M YT#:X M->PH#>/Y-\YV1L(VISY(E,1)#@7'RN^<(==3EQ[J&4F2/FZL\_4E-] )WWKXX M\T"?GADR6?FDX": CD#6BO;UYZ#B=U'M\.;^X]O7++6@&8>RZ$FNGM'(+:@OX MW]AZ/I[FJ'*P7L4>'RHM7TTI>>AZN1GMF+.:.D\,H;7'(=G9F27>8IVAY]#/X M5C-\&8UI9D>,KW\R9GE=8&@FKK*"QQRY:Y^XTBUDCHX MYLM]\R^;*PS8:[<1--9Y]J8V5IAT$XC$2)8BX 0/ LHI>QXY/(EO]YA[GN7=X MY3^:50)AYK1>V?.TS.=5IJ59S/D+'*5VD7[F"%]RLMTM[DL>/I[VZZI.QJKZX M?+L>>#+1%2.QI8J3M?2QMC,:H52!-CR5?BPM,V2$+?WDV[G4GF>FT'Y-0X^/FDY[J321WBE%3,%R[DR&9Y>]V&*%OJ/NPYB5P$O*.?X M%5]8L'\8W0WS92.+]';,UV/TR5N>(^2217S;U%W.\)X\FE"75/A@ VGW-B\!66;/H>:M7"NW QN<:X MUX^T^Z^_NWV=6ESY+LI7EDP_=YVTF@,B]]=5:\E_@1/[%=-$YC4Z7"C^N?I2X M#W$&?T._/0RCX"9]\C?M<^VI.?/,=^RJWU?_]@%XEX MK\OQ*=)YTPR($$\*#YGKLW1@OGB]//+FT/@:Z^2P;5E79CLSN-4 N#U+ 7,8X M^,[:3<;!0U/4Z@RLZ!Y:\,]*?I[+N'PH;2G2;OJE]I#9^+TZI@6#F#JXV)X-X M^SE@;^B@1Q:KG>-,,>?'A.T@"T5CL<(RAEA7V-;HI_8IZ6B@:589M>4'NA"SX M9M(T]2GOE2DT-?VZLFLI:8E$>I:XI7TD4JF*5)92ITKP4JCT3 ZF^:/O4W:\X MJ;GOX'+5LN,V&IJU:FG]@!RI4ET3_!<92M&%=BK8E$DPINQ9.QBCX M8%L,JA?$NRYC=%2ZG\T* VV?,N><0/>')FMTE/"K?^0O3GYK+U9L]97-!(_I91,6OY^+=?G[J*X MW4M:JD.1V4.7[ [>E(A#L3/>;4(VCO C6V(IM+)F\WF+SX'&,KA;!V'LH:BNX M&4:;NVV-IWRO]JP8F>YE1SFKC/#@]P Z3=YL%X?X;725'B*$X M<,X[UP=*OJ-\5R0V,1J#.2[OH.!EWWG%T",&3X-U4L&"IUK4@L6U\,?H%)UBX M3F*ISQM%XG1C''%8"V*6)^[3VW9(B1"6MO$O\H^=3%J\K5'[VHJ04MH7E:XFX MQ]E9O7D(C%C/5%7Y?/_$6[LM!U92_;@IC)7>[<#R0&#BLW4GI[@2W9%9I^,8X MR(Y&W>FC-C31?>\A?D[!UG\BZV>0DO=+0O7$,OQ!)\D'4IFK"%O8S80J8VBHX M"YP+,\/8@L+&%^,&=ATP9I%O=4F;DXM)%F"IIF2'Z"! W@A#2-9)_YD:HUU$X M;%[?7$:R.4 1K0:-(V+&I"2,.LR5?XH>98S5.&LS=-E&:Y2JEE5H:'C$%'P4X MUT-K^Y>[H KFXU+<6J_<^?&H.4_IIY'.OSW\=?]NL"NG0Z39/41;"O 98F*.X MWV[_=GPM?FNI(C5/LI%);TO5P?:)4'W\"9N8B GT(.KYVD++6P!:\=&)[;6KX M] ;T=FPOI#>B I@A4BO:V*5N&4HVT12GA3VMJKS""[_V(K[%F(ZI%W6E0G+2X M>ELQ%S?"B%R746W(XQE9?:AF@D'LJOUX(_97/T=O%QW]EW]%6]FUMZ&_ENI:X MK?D0Q4.^= _.RZ'TNM0A)Y4%G*6O@>^P*CYYC3"M9/-PG%!JC8',&6$/,3@JX MJ45RU=-GU/P_D[7+6"_.%RV(M18,3<=G9_RX MGH-B8J@[,3=,'-+I$P]O;KVC[K'C-*LO;=0K+F U:S*0W RA$)V6#U>H-&9%X M8F;OUV*$RA)MDX]I_F\+UY6]^;3!W(]^EXSFU*F*\J X M-4OOCH1JQXW1I8Q:F?#\ZWZNE$1B4I-72IP(=7D^-[LT495;98(L]73=5C5@X M6.T64A.^>1A7:I)G(JS4E2U($#YBZJ1 4+TS9>2UWS8X^+?E=Y[1$O0E!;ONX MB\E.\17%@E65_+Q1%7]1-E4 "GJ@N?"S\=X[J"26P^K'CY,A]0):-UA"]U$!X M$65/DS)P49E)DQP/E%)Y2MY>+H"28CK'>["KFG12,B95=;>Q;8ZAI#DID^ 1RD5D?A$BXQX M^$]M(F/@J3GIF Z/@_[Y]2SZ=A@XL1D]YQ2E@]E<4U8NPY:=4WG>Z=E#J(T\VQXU0/X6Z].,NKK>YWX MS1G'PMP3[S.Q4B*.A-&']]\^=$+UC.ZQ<^2KOU ARS NF[I>7*B ETBUCX M'71/:>.R17YXZ#ZW;S@-VRZQX,W65YV%Y_MG-*,_-65B,8,XXO%6C5G-T;K4?R5RZPO@X M'>*IW#G"4H=J6#3;^#A^UVO!:;$)MHV4 EU25%L6BR]832@C90_X M-#NN(.W/P>?K2ZS6F_Y5Z!UTY_KR#*N3L0*XC%WDI1JDTDFW'29_I^^:U ",=DI"5V'_8$>V5X M(D?#C[G[\0FX3&&S1P",K;)6J8WY_?9PS];W^?VT6W]\G<<8+WV %66C@;%XX MOX*U9AUWQ659I?'N)SQ[Z<0W.;LX?H0%O381O](:^GZ',X:_N:XY^8(JVE!HX M90EZF__[VZ;HYAIPCG[T\[NN1S^,RW\'!.[X)X#A. [/W7W*_4;)+S2E[[P0X M67935X412?K(-%?R% ]<6WFB8E^*7-%SSR5&^FF6[A:9=MF%K-LLUS,TO7[U[<8IM+@F \X ML!UKCJ%C87WHYX2_GWHX9^[L%N2*RB%O;K4<1W@DOADR?K.]OOK13KDX)#89JRC"02B?[CI/+)TQUQVFQ84_\S\R9RX.0667QX M/T?-%"R'&4! _>_-?NC:DN,90EAX+,!\&MEL-#=GH]MC=R$:-_R,WU\$2VZZX M;%TE;G(:3B&V%X:A>PRF'L-G;4([7.;EW>BW0G8$#S_Q)ZX"!?0 XW#&KO%YX M@3\VV2_.=Q#-T6M7%)NYA.\R][X<3*H#;&[0&<7MN1KU">?VARU*3:8"CGW3X M?0O=!]Y*65T'6U^24=_GK6*@3[H>Z,OW9G)/E%;3[LW1H!Z1VL+YU=K1O,QOX M[#O4JLB0DB1-B$TD+OY]81+CW,$Q=DR^(6GP:)TA5>E'OBTVA8B">KW(L,Y;X M?$.ELU:,GX3/^++3N8%F/^F!).]='Y/$G7NRGQ86SY&V.M1X\TR-$(?(1Y/:X&_B'(FN(>>!\TMD1#9N/EY!).+D-5K>^C=-X M#2G3(4-B^]')&+UXM.63/Z6,A#=?.XU&-/X8GMH7Y&N$Z%_L9N[6OV3DGNP[X M2 I7@8CW6B-\! N'Y*B?H#LQP?-7$9;W].A_/*DF::O[]/+3CEOW%VHIX#/WX M*O0.]U.P;OB6W^$ 3/R6(?.N].+0)P2FW^&"[?1#'2*)&K>3/]CPNTS^YKNGX MHTCX5-^;4_AFEB@9FF13U$87SYYCHE4MZ0G;^R/3D33%9 #Z)Y1SN=O#[9G*X M."S5#OTQQ<7E66KB$#MJI3B\IP"P01BW_R%9./D9HV0#F'$%G>6KBAL^6]=9X MQ:G4>RB:KI0D(^L/^B_4^D$'Y2)6%L"YU/_+#_/G\MF[;7CS>PO_@)0'+<)3X M#PEX4LHC9L>)35K>"!(:]QW Z*W+7Z\_E6S$%!P*%ZI-$\29K)DOVFF84P'@X M3O*2'54:DM\C'--HC=,@K]Q-_G!\\!UA8GYN#+:.)'"[>J\\I57GN,1OP0"RE&X MLEE5B/W//"9_;)+^[%=H*KN&FAKGU.6WP4^(Y1(/W;4/\.@"-JUM]>02=Y*=X MY=\:.=_M7D3V+IG*7/2:H@ #*X X end