Annotation of pmsdk/samples/include/cmacros.inc, revision 1.1

1.1     ! root        1: comment $
        !             2: cmacros - assembly macros for interfacing to hhls
        !             3: (C)Copyright Microsoft Corp. 1984-1989
        !             4: $
        !             5: .xcref
        !             6: .xcref ??_out
        !             7: ??_out macro t
        !             8: ifndef ?QUIET
        !             9: %out t
        !            10: endif
        !            11: endm
        !            12: outif macro name,defval,onmsg,offmsg
        !            13: ifndef name
        !            14: ifb <defval>
        !            15: name=0
        !            16: else
        !            17: name=defval
        !            18: endif
        !            19: endif
        !            20: if name
        !            21: name=1
        !            22: ifnb <onmsg>
        !            23: ??_out <! onmsg>
        !            24: endif
        !            25: else
        !            26: ifnb <offmsg>
        !            27: ??_out <! offmsg>
        !            28: endif
        !            29: endif
        !            30: endm
        !            31: .xcref ??error
        !            32: ??error macro msg
        !            33: %out e r r o r ----- msg
        !            34: .err e r r o r ----- msg
        !            35: endm
        !            36: .xcref ??error2
        !            37: ??error2 macro msg
        !            38: if2
        !            39: %out e r r o r ----- msg
        !            40: .err e r r o r ----- msg
        !            41: endif
        !            42: endm
        !            43: .xcref ASMpass
        !            44: .xcref memS,memM,memL,memC,memH,memMOD,sizec,sized
        !            45: if1
        !            46: ASMpass=1
        !            47: ifdef ?SMALL
        !            48: memS=1
        !            49: endif
        !            50: ifdef ?MEDIUM
        !            51: memM=1
        !            52: endif
        !            53: ifdef ?COMPACT
        !            54: memC=1
        !            55: endif
        !            56: ifdef ?LARGE
        !            57: memL=1
        !            58: endif
        !            59: ifdef ?HUGE
        !            60: memH=1
        !            61: endif
        !            62: ??_out <cMacros Version 3.06 - 09/23/87>
        !            63: ??_out <Copyright (C) Microsoft Corp. 1984-1987. All rights reserved.>
        !            64: outif memS,0,<Small Model>
        !            65: outif memM,0,<Medium model>
        !            66: outif memL,0,<Large Model>
        !            67: outif memC,0,<Compact Model>
        !            68: outif memH,0,<Huge Model>
        !            69: memMOD= memS + memM + memL + memC + memH
        !            70: if memMOD ne 1
        !            71: if memMOD eq 0
        !            72: memS = 1
        !            73: outif memS,0,<Small model>
        !            74: else
        !            75: ??error <must have only 1 memory model selected>
        !            76: endif
        !            77: endif
        !            78: sizec= memM + memL + memH
        !            79: sized= memL + memC + (memH*2)
        !            80: outif ?DF,0,<No segments or groups will be defined>
        !            81: outif ?TF,0,<Epilog sequences assume valid SP>
        !            82: outif ?WIN,1,<Windows support>
        !            83: outif ?PLM,1,<PL/M calling convention>
        !            84: ifndef ?NODATA
        !            85: ?nodata1=0
        !            86: else
        !            87: ?nodata1=1
        !            88: ??_out <! NODATA module>
        !            89: endif
        !            90: ifndef ?CHKSTK
        !            91: ?chkstk1=0
        !            92: else
        !            93: ?chkstk1=1
        !            94: ifdef ?CHKSTKPROC
        !            95: ??_out <! Private stack checking enabled>
        !            96: else
        !            97: ??_out <! Stack checking enabled>
        !            98: endif
        !            99: endif
        !           100: ifndef DOS5
        !           101: ?DOS5=0
        !           102: else
        !           103: ?DOS5=1
        !           104: ??_out <! DOS5 module>
        !           105: endif
        !           106: ifdef ?PROFILE
        !           107: ??_out <! Native profiling enabled>
        !           108: endif
        !           109: ifdef ATTRPROF
        !           110: ??_out <! Attributed profiling enabled>
        !           111: ?aprof1=1
        !           112: else
        !           113: ?aprof1=0
        !           114: endif
        !           115: ifndef ?NO_BP
        !           116: ?no_bp1=0
        !           117: else
        !           118: ?no_bp1=1
        !           119: ??_out <! NO_BP is default>
        !           120: endif
        !           121: else
        !           122: ASMpass=2
        !           123: endif
        !           124: .xcref ?n,?ax,?ah,?al,?bx,?bh
        !           125: .xcref ?bl,?cx,?ch,?cl,?dx,?dh
        !           126: .xcref ?dl,?si,?di,?es,?ds,?bp
        !           127: .xcref ?sp,?ss,?cs
        !           128: .xcref ?n,?AX,?AH,?AL,?BX,?BH
        !           129: .xcref ?BL,?CX,?CH,?CL,?DX,?DH
        !           130: .xcref ?DL,?SI,?DI,?ES,?DS,?BP
        !           131: .xcref ?SP,?SS,?CS
        !           132: .xcref ?rsl,?cpd,?argl,?argc,?ba
        !           133: .xcref ?acb,???,?po
        !           134: .xcref ?pas,?pc
        !           135: .xcref uconcat,mpush,mpop
        !           136: .xcref ?ri,?pp,?pp1,?al1
        !           137: .xcref ?ad,?ap,?atal,?dd,?dd1,?dd2
        !           138: .xcref ?pg,?pg1,?aloc,?cs1,?cs2
        !           139: .xcref ?DF,?TF,?ff,?PLM,?WIN,?ia,?pu,?adj
        !           140: .xcref ?uf,?rp,?nx,?nd,?nodata1,?chkstk1,?aprof1,?aprof2,?DOS5
        !           141: .xcref ?wfp,arg,cCall,cProc,assumes,?cs3,?cs2,?cs1
        !           142: .xcref defgrp,addseg,createSeg
        !           143: .xcref save,outif,errnz,errn$,errnz1
        !           144: .xcref ?PLMPrevParm,?gcc
        !           145: .xcref ?cCall1,?pcc,?no_bp1,?no_bp2
        !           146: .xcref ?cbe,?pcbe
        !           147: ?rsl = 0
        !           148: ?cpd = 0
        !           149: ?argl = 0
        !           150: ?argc = 0
        !           151: ?ba = 0
        !           152: ?acb = 0
        !           153: ??? = 0
        !           154: ?po = 0
        !           155: ?pas = 0
        !           156: ?pc = 0
        !           157: ?ia = 0
        !           158: ?pu = 0
        !           159: ?adj = 0
        !           160: ?rp = 0
        !           161: ?uf = 0
        !           162: ?nd = 0
        !           163: ?nx = 0
        !           164: ?wfp = 0
        !           165: ?ff = 0
        !           166: ?dd2 = 0
        !           167: ?cCall1 = 0
        !           168: ?pcc = ?PLM
        !           169: ?PLMPrevParm = 0
        !           170: ?no_bp2 = ?no_bp1
        !           171: ?cbe = 0
        !           172: ?aprof2 = 0
        !           173: .xcref ?casen
        !           174: if1
        !           175: ?casen = 0
        !           176: endif
        !           177: ?n = 0000000000000000b
        !           178: ?ax = 0000000000000011b
        !           179: ?ah = 0000000000000001b
        !           180: ?al = 0000000000000010b
        !           181: ?bx = 0000000000001100b
        !           182: ?bh = 0000000000000100b
        !           183: ?bl = 0000000000001000b
        !           184: ?cx = 0000000000110000b
        !           185: ?ch = 0000000000010000b
        !           186: ?cl = 0000000000100000b
        !           187: ?dx = 0000000011000000b
        !           188: ?dh = 0000000001000000b
        !           189: ?dl = 0000000010000000b
        !           190: ?si = 0000000100000000b
        !           191: ?di = 0000001000000000b
        !           192: ?es = 0000010000000000b
        !           193: ?ds = 0000100000000000b
        !           194: ?bp = 0001000000000000b
        !           195: ?sp = 0010000000000000b
        !           196: ?ss = 0100000000000000b
        !           197: ?cs = 1000000000000000b
        !           198: ?AX = 0000000000000011b
        !           199: ?AH = 0000000000000001b
        !           200: ?AL = 0000000000000010b
        !           201: ?BX = 0000000000001100b
        !           202: ?BH = 0000000000000100b
        !           203: ?BL = 0000000000001000b
        !           204: ?CX = 0000000000110000b
        !           205: ?CH = 0000000000010000b
        !           206: ?CL = 0000000000100000b
        !           207: ?DX = 0000000011000000b
        !           208: ?DH = 0000000001000000b
        !           209: ?DL = 0000000010000000b
        !           210: ?SI = 0000000100000000b
        !           211: ?DI = 0000001000000000b
        !           212: ?ES = 0000010000000000b
        !           213: ?DS = 0000100000000000b
        !           214: ?BP = 0001000000000000b
        !           215: ?SP = 0010000000000000b
        !           216: ?SS = 0100000000000000b
        !           217: ?CS = 1000000000000000b
        !           218: .cref
        !           219: uconcat macro a,b,c,d,e,f,g
        !           220: a&b c&d e&f&g
        !           221: endm
        !           222: mpush macro r
        !           223: irp x,<ax,bx,cx,dx,si,di,es,ds,bp,sp,ss,cs>
        !           224: if (r and ?&&x)
        !           225:        push    x
        !           226: endif
        !           227: endm
        !           228: endm
        !           229: mpop macro r
        !           230: irp x,<cs,ss,sp,bp,ds,es,di,si,dx,cx,bx,ax>
        !           231: if (r and ?&&x)
        !           232:        pop     x
        !           233: endif
        !           234: endm
        !           235: endm
        !           236: save macro r
        !           237: ?rsl=0
        !           238: ?ri ?rsl,<r>
        !           239: endm
        !           240: ?ri macro n,r
        !           241: irp x,<r>
        !           242: ifdef ?&&x
        !           243: n=n or ?&&x
        !           244: else
        !           245: ??error2 <unknown register x>
        !           246: .err
        !           247: endif
        !           248: endm
        !           249: endm
        !           250: .xcref
        !           251: .xcref parmB,parmW,parmD,parmQ,parmT,parmCP,parmDP,parmH
        !           252: .cref
        !           253: parmB macro n
        !           254: ?pp <n>,<byte>,2,1
        !           255: endm
        !           256: parmW macro n
        !           257: ?pp <n>,<word>,2,2
        !           258: endm
        !           259: parmD macro n
        !           260: ife ?pcc
        !           261: irp x,<n>
        !           262: ?pp <&&x>,<dword>,0,4
        !           263: ?pp <off_&&x>,<word>,2,2
        !           264: ?pp <seg_&&x>,<word>,2,2
        !           265: endm
        !           266: else
        !           267: irp x,<n>
        !           268: ?pp <seg_&&x>,<word>,2,2
        !           269: ?pp <off_&&x>,<word>,2,2
        !           270: ?pp <&&x>,<dword>,0,4
        !           271: endm
        !           272: endif
        !           273: endm
        !           274: parmH macro n
        !           275: ?pp <n>,<word>,4,2
        !           276: endm
        !           277: parmQ macro n
        !           278: ?pp <n>,<qword>,8,8
        !           279: endm
        !           280: parmT macro n
        !           281: ?pp <n>,<tbyte>,10,10
        !           282: endm
        !           283: if sizec
        !           284: parmCP macro n
        !           285: parmD <n>
        !           286: endm
        !           287: else
        !           288: parmCP macro n
        !           289: parmW <n>
        !           290: endm
        !           291: endif
        !           292: if sized
        !           293: parmDP macro n
        !           294: parmD <n>
        !           295: endm
        !           296: else
        !           297: parmDP macro n
        !           298: parmW <n>
        !           299: endm
        !           300: endif
        !           301: ?pp macro n,t,l,s
        !           302: if ?cpd
        !           303: .xcref
        !           304: irp x,<n>
        !           305: .xcref ?t_&&x
        !           306: ?t_&&x=s
        !           307: ife ?pcc
        !           308: ?pp1 x,<t>,,,%(?po+?adj)
        !           309: ?po=?po+l
        !           310: else
        !           311: ?PLMPrevParm=?PLMPrevParm+1
        !           312: ?po=?po+l
        !           313: ?pp1 x,<t>,%?po,%?adj,,%?PLMPrevParm,%(?PLMPrevParm-1)
        !           314: endif
        !           315: endm
        !           316: .cref
        !           317: else
        !           318: ??error2 <parm(s) "&n" declared outside proc def>
        !           319: endif
        !           320: endm
        !           321: ?pp1 macro n,t,o,a,b,cpc,ppc
        !           322: ife ?pcc
        !           323: if ?no_bp2
        !           324: n equ (t ptr [+b])
        !           325: else
        !           326: n equ (t ptr [bp][+b])
        !           327: endif
        !           328: else
        !           329: .xcref
        !           330: .xcref ?PLMParm&cpc
        !           331: .cref
        !           332: if ?no_bp2
        !           333: ?PLMParm&cpc &macro po
        !           334: uconcat <n>,,<equ>,,<(t ptr [+>,%(a+po-o),<])>
        !           335: ?PLMParm&ppc po
        !           336: purge ?PLMParm&cpc
        !           337: &endm
        !           338: else
        !           339: ?PLMParm&cpc &macro po
        !           340: uconcat <n>,,<equ>,,<(t ptr [bp][+>,%(a+po-o),<])>
        !           341: ?PLMParm&ppc po
        !           342: purge ?PLMParm&cpc
        !           343: &endm
        !           344: endif
        !           345: endif
        !           346: endm
        !           347: ifndef ?NOPARMR
        !           348: .xcref
        !           349: .xcref ?pr,parmR
        !           350: .cref
        !           351: parmR macro n,r,r2
        !           352: ?pr n,r,r2,%?rp,%(?ia+2)
        !           353: endm
        !           354: ?pr macro n,r,r2,i,o
        !           355: .xcref
        !           356: ifnb <r2>
        !           357: parmR seg_&n,r
        !           358: parmR off_&n,r2
        !           359: if ?no_bp2
        !           360: n equ (dword ptr [-o-2])
        !           361: else
        !           362: n equ (dword ptr [bp][-o-2])
        !           363: endif
        !           364: .xcref ?t_&n
        !           365: ?t_&n=4
        !           366: else
        !           367: .xcref ?rp&i
        !           368: ?rp&i=0
        !           369: ifdef ?&r
        !           370: ?rp&i=?&r
        !           371: endif
        !           372: if ??? or (?cpd eq 0) or (?rp&i eq 0)
        !           373: ??error2 <invalid parmR encountered: &n,&r>
        !           374: exitm
        !           375: endif
        !           376: if ?no_bp2
        !           377: n equ (word ptr [-o])
        !           378: else
        !           379: n equ (word ptr [bp][-o])
        !           380: endif
        !           381: .xcref ?t_&n
        !           382: ?t_&n=2
        !           383: irp x,<bh,ch,dh,bl,cl,dl,ah,al>
        !           384: if ?&&x eq ?&r
        !           385: if ?no_bp2
        !           386: n equ (byte ptr [-o])
        !           387: else
        !           388: n equ (byte ptr [bp][-o])
        !           389: endif
        !           390: ?t_&n=1
        !           391: exitm
        !           392: endif
        !           393: endm
        !           394: ?ia=?ia+2
        !           395: ?rp=?rp+1
        !           396: endif
        !           397: .cref
        !           398: endm
        !           399: endif
        !           400: .xcref
        !           401: .xcref localB,localW,localD,localQ,localT,localCP,localDP,localV
        !           402: .cref
        !           403: localB macro n
        !           404: ?aloc <n>,<byte ptr>,1,1,0
        !           405: endm
        !           406: localW macro n
        !           407: ?aloc <n>,<word ptr>,2,2,1
        !           408: endm
        !           409: localD macro n
        !           410: irp x,<n>
        !           411: ?aloc <seg_&&x>,<word ptr>,2,2,1
        !           412: ?aloc <off_&&x>,<word ptr>,2,2,1
        !           413: ?aloc <&&x>,<dword ptr>,0,4,1
        !           414: endm
        !           415: endm
        !           416: localQ macro n
        !           417: ?aloc <n>,<qword ptr>,8,8,1
        !           418: endm
        !           419: localT macro n
        !           420: ?aloc <n>,<tbyte ptr>,10,10,1
        !           421: endm
        !           422: if sizec
        !           423: localCP macro n
        !           424: localD <n>
        !           425: endm
        !           426: else
        !           427: localCP macro n
        !           428: localW <n>
        !           429: endm
        !           430: endif
        !           431: if sized
        !           432: localDP macro n
        !           433: localD <n>
        !           434: endm
        !           435: else
        !           436: localDP macro n
        !           437: localW <n>
        !           438: endm
        !           439: endif
        !           440: localV macro n,a
        !           441: ?aloc <n>,,%(a),0,1
        !           442: endm
        !           443: ?aloc macro n,t,l,s,a
        !           444: if ?cpd
        !           445: .xcref
        !           446: irp x,<n>
        !           447: ???=???+l
        !           448: if a
        !           449: ???=((??? + 1) and 0fffeh)
        !           450: endif
        !           451: ?al1 x,<t>,%(???+?ia)
        !           452: .xcref ?t_&&x
        !           453: ?t_&&x=s
        !           454: endm
        !           455: .cref
        !           456: else
        !           457: ??error2 <locals "&n" declared outside procedure def>
        !           458: endif
        !           459: endm
        !           460: ?al1 macro n,t,o
        !           461: if ?no_bp2
        !           462: n equ (t [-o])
        !           463: else
        !           464: n equ (t [bp][-o])
        !           465: endif
        !           466: endm
        !           467: ?gcc macro s,i,cc
        !           468: s = i
        !           469: ifnb <cc>
        !           470: ifidn <cc>,<C>
        !           471: s=0
        !           472: endif
        !           473: ifidn <cc>,<PLM>
        !           474: s=1
        !           475: endif
        !           476: ifidn <cc>,<PASCAL>
        !           477: s=1
        !           478: endif
        !           479: endif
        !           480: endm
        !           481: ifndef ?NOGLOBAL
        !           482: .xcref
        !           483: .xcref globalB,globalW,globalD,globalQ,globalT,globalCP,globalDP
        !           484: .cref
        !           485: globalB macro n,i,s,c
        !           486: ?ad <n>,1
        !           487: ?dd n,1,<byte>,<db>,<i>,<s>,<c>
        !           488: endm
        !           489: globalW macro n,i,s,c
        !           490: ?ad <n>,2
        !           491: ?dd n,1,<word>,<dw>,<i>,<s>,<c>
        !           492: endm
        !           493: globalD macro n,i,s,c
        !           494: ?ad <n>,4
        !           495: ?dd n,1,<dword>,<dd>,<i>,<s>,<c>
        !           496: off_&n equ word ptr n[0]
        !           497: seg_&n equ word ptr n[2]
        !           498: endm
        !           499: globalQ macro n,i,s,c
        !           500: ?ad <n>,8
        !           501: ?dd n,1,<qword>,<dq>,<i>,<s>,<c>
        !           502: endm
        !           503: globalT macro n,i,s,c
        !           504: ?ad <n>,10
        !           505: ?dd n,1,<tbyte>,<dt>,<i>,<s>,<c>
        !           506: endm
        !           507: if sizec
        !           508: globalCP macro n,i,s,c
        !           509: globalD n,<i>,<s>,<c>
        !           510: endm
        !           511: else
        !           512: globalCP macro n,i,s,c
        !           513: globalW n,<i>,<s>,<c>
        !           514: endm
        !           515: endif
        !           516: if sized
        !           517: globalDP macro n,i,s,c
        !           518: globalD n,<i>,<s>,<c>
        !           519: endm
        !           520: else
        !           521: globalDP macro n,i,s,c
        !           522: globalW n,<i>,<s>,<c>
        !           523: endm
        !           524: endif
        !           525: endif
        !           526: ifndef ?NOSTATIC
        !           527: .xcref
        !           528: .xcref staticB,staticW,staticD,staticQ,staticT,staticCP,staticDP
        !           529: .cref
        !           530: staticB macro n,i,s
        !           531: ?ad <n>,1
        !           532: ?dd n,0,<byte>,<db>,<i>,<s>,<PLM>
        !           533: endm
        !           534: staticW macro n,i,s
        !           535: ?ad <n>,2
        !           536: ?dd n,0,<word>,<dw>,<i>,<s>,<PLM>
        !           537: endm
        !           538: staticD macro n,i,s
        !           539: ?ad <n>,4
        !           540: ?dd n,0,<dword>,<dd>,<i>,<s>,<PLM>
        !           541: endm
        !           542: staticQ macro n,i,s
        !           543: ?ad <n>,8
        !           544: ?dd n,0,<qword>,<dq>,<i>,<s>,<PLM>
        !           545: endm
        !           546: staticT macro n,i,s
        !           547: ?ad <n>,10
        !           548: ?dd n,0,<tbyte>,<dt>,<i>,<s>,<PLM>
        !           549: endm
        !           550: if sizec
        !           551: staticCP macro n,i,s
        !           552: staticD n,<i>,<s>
        !           553: endm
        !           554: else
        !           555: staticCP macro n,i,s
        !           556: staticW n,<i>,<s>
        !           557: endm
        !           558: endif
        !           559: if sized
        !           560: staticDP macro n,i,s
        !           561: staticD n,<i>,<s>
        !           562: endm
        !           563: else
        !           564: staticDP macro n,i,s
        !           565: staticW n,<i>,<s>
        !           566: endm
        !           567: endif
        !           568: endif
        !           569: ?dd macro n,p,t,d,i,s,c
        !           570: ?gcc ?dd2,%?PLM,<c>
        !           571: ife ?dd2
        !           572: n label t
        !           573: ?dd1 _&n,p,<d>,<i>,<s>
        !           574: else
        !           575: ?dd1 n,p,<d>,<i>,<s>
        !           576: endif
        !           577: endm
        !           578: ?dd1 macro n,p,d,i,s
        !           579: if p
        !           580: public n
        !           581: endif
        !           582: ifb <s>
        !           583: n d i
        !           584: else
        !           585: ifb <i>
        !           586: n d s dup (?)
        !           587: else
        !           588: n d s dup (i)
        !           589: endif
        !           590: endif
        !           591: endm
        !           592: ifndef ?NOEXTERN
        !           593: .xcref
        !           594: .xcref ?ex1,?ex2,externB,externW,externD,externQ,externT
        !           595: .xcref externNP,externFP,externP,externCP,externDP,externA
        !           596: .cref
        !           597: ?ex2 = 0
        !           598: externA macro n,c
        !           599: ?ex1 <n>,40h,<abs>,<c>,<>
        !           600: endm
        !           601: externB macro n,c
        !           602: ?ex1 <n>,1,<byte>,<c>,<>
        !           603: endm
        !           604: externW macro n,c
        !           605: ?ex1 <n>,2,<word>,<c>,<>
        !           606: endm
        !           607: externD macro n,c
        !           608: ?ex1 <n>,4,<dword>,<c>,<>
        !           609: endm
        !           610: externQ macro n,c
        !           611: ?ex1 <n>,8,<qword>,<c>,<>
        !           612: endm
        !           613: externT macro n,c
        !           614: ?ex1 <n>,10,<tbyte>,<c>,<>
        !           615: endm
        !           616: externNP macro n,c
        !           617: ?ex1 <n>,2,<near>,<c>,<cc>
        !           618: endm
        !           619: externFP macro n,c
        !           620: ?ex1 <n>,4,<far>,<c>,<cc>
        !           621: endm
        !           622: if sizec
        !           623: externP macro n,c
        !           624: ?ex1 <n>,4,<far>,<c>,<cc>
        !           625: endm
        !           626: else
        !           627: externP macro n,c
        !           628: ?ex1 <n>,2,<near>,<c>,<cc>
        !           629: endm
        !           630: endif
        !           631: if sizec
        !           632: externCP macro n,c
        !           633: ?ex1 <n>,4,<dword>,<c>,<>
        !           634: endm
        !           635: else
        !           636: externCP macro n,c
        !           637: ?ex1 <n>,2,<word>,<c>,<>
        !           638: endm
        !           639: endif
        !           640: if sized
        !           641: externDP macro n,c
        !           642: ?ex1 <n>,4,<dword>,<c>,<>
        !           643: endm
        !           644: else
        !           645: externDP macro n,c
        !           646: ?ex1 <n>,2,<word>,<c>,<>
        !           647: endm
        !           648: endif
        !           649: ?ex1 macro n,s,d,c,scv
        !           650: ?gcc ?ex2,%?PLM,<c>
        !           651: irp x,<n>
        !           652: .xcref
        !           653: .xcref ?t_&&x
        !           654: .cref
        !           655: ?t_&&x=s
        !           656: ife ?ex2
        !           657: extrn _&&x:&d
        !           658: x equ _&&x
        !           659: else
        !           660: extrn x:&d
        !           661: endif
        !           662: ifidn <scv>,<cc>
        !           663: .xcref
        !           664: .xcref ?CC&&x
        !           665: .cref
        !           666: ?CC&&x=?ex2
        !           667: endif
        !           668: endm
        !           669: endm
        !           670: endif
        !           671: ifndef ?NOLABEL
        !           672: .xcref
        !           673: .xcref ?lb1,?lblpu,?lb2
        !           674: .xcref labelB,labelW,labelD,labelQ,labelT
        !           675: .xcref labelNP,labelFP,labelP,labelCP,labelDP
        !           676: .cref
        !           677: ?lblpu = 0
        !           678: ?lb2 = 0
        !           679: labelB macro n,c
        !           680: ?lb1 <n>,1,<byte>,<c>
        !           681: endm
        !           682: labelW macro n,c
        !           683: ?lb1 <n>,2,<word>,<c>
        !           684: endm
        !           685: labelD macro n,c
        !           686: ?lb1 <n>,4,<dword>,<c>
        !           687: endm
        !           688: labelQ macro n,c
        !           689: ?lb1 <n>,8,<qword>,<c>
        !           690: endm
        !           691: labelT macro n,c
        !           692: ?lb1 <n>,10,<tbyte>,<c>
        !           693: endm
        !           694: labelNP macro n,c
        !           695: ?lb1 <n>,2,<near>,<c>
        !           696: endm
        !           697: labelFP macro n,c
        !           698: ?lb1 <n>,4,<far>,<c>
        !           699: endm
        !           700: if sizec
        !           701: labelP macro n,c
        !           702: ?lb1 <n>,4,<far>,<c>
        !           703: endm
        !           704: else
        !           705: labelP macro n,c
        !           706: ?lb1 <n>,2,<near>,<c>
        !           707: endm
        !           708: endif
        !           709: if sizec
        !           710: labelCP macro n,c
        !           711: ?lb1 <n>,4,<dword>,<c>
        !           712: endm
        !           713: else
        !           714: labelCP macro n,c
        !           715: ?lb1 <n>,2,<word>,<c>
        !           716: endm
        !           717: endif
        !           718: if sized
        !           719: labelDP macro n,c
        !           720: ?lb1 <n>,4,<dword>,<c>
        !           721: endm
        !           722: else
        !           723: labelDP macro n,c
        !           724: ?lb1 <n>,2,<word>,<c>
        !           725: endm
        !           726: endif
        !           727: ?lb1 macro n,s,d,c
        !           728: ?gcc ?lb2,%?PLM,<c>
        !           729: ?lblpu=0
        !           730: irp x,<n>
        !           731: ifidn <x>,<PUBLIC>
        !           732: ?lblpu=1
        !           733: else
        !           734: .xcref
        !           735: .xcref ?t_&&x
        !           736: .cref
        !           737: ?t_&&x=s
        !           738: ife ?lb2
        !           739: if ?lblpu
        !           740: public _&&x
        !           741: endif
        !           742: _&&x label &d
        !           743: x equ _&&x
        !           744: else
        !           745: if ?lblpu
        !           746: public x
        !           747: endif
        !           748: x label &d
        !           749: endif
        !           750: endif
        !           751: endm
        !           752: endm
        !           753: endif
        !           754: ifndef ?NODEF
        !           755: .xcref
        !           756: .xcref defB,defW,defD,defQ,defT,defCP,defDP
        !           757: .cref
        !           758: defB macro n
        !           759: ?ad <n>,1
        !           760: endm
        !           761: defW macro n
        !           762: ?ad <n>,2
        !           763: endm
        !           764: defD macro n
        !           765: ?ad <n>,4
        !           766: endm
        !           767: defQ macro n
        !           768: ?ad <n>,8
        !           769: endm
        !           770: defT macro n
        !           771: ?ad <n>,10
        !           772: endm
        !           773: if sizec
        !           774: defCP macro n
        !           775: defD <n>
        !           776: endm
        !           777: else
        !           778: defCP macro n
        !           779: defW <n>
        !           780: endm
        !           781: endif
        !           782: if sized
        !           783: defDP macro n
        !           784: defD <n>
        !           785: endm
        !           786: else
        !           787: defDP macro n
        !           788: defW <n>
        !           789: endm
        !           790: endif
        !           791: endif
        !           792: ?ad macro n,s
        !           793: irp x,<n>
        !           794: .xcref
        !           795: .xcref ?t_&&x
        !           796: .cref
        !           797: ?t_&&x=s
        !           798: endm
        !           799: endm
        !           800: ifndef ?NOPTR
        !           801: .xcref
        !           802: .xcref regPtr,farPtr
        !           803: .cref
        !           804: regPtr macro n,s,o
        !           805: farPtr n,s,o
        !           806: endm
        !           807: farPtr macro n,s,o
        !           808: .xcref
        !           809: .xcref ?t_&n
        !           810: .cref
        !           811: n &macro
        !           812:        push    s
        !           813:        push    o
        !           814: &endm
        !           815: ?t_&n=80h
        !           816: endm
        !           817: endif
        !           818: arg macro a
        !           819: irp x,<a>
        !           820: ?argc=?argc+1
        !           821: ?atal <x>,%?argc
        !           822: endm
        !           823: endm
        !           824: ?atal macro n,i
        !           825: .xcref
        !           826: .xcref ?ali&i
        !           827: .cref
        !           828: ?ali&i &macro
        !           829: ?ap <n>
        !           830: &endm
        !           831: endm
        !           832: ?ap macro n
        !           833: ?argl=?argl+2
        !           834: ifdef ?t_&n
        !           835: ife ?t_&n-1
        !           836:        push    word ptr (n)
        !           837: exitm
        !           838: endif
        !           839: ife ?t_&n-2
        !           840:        push    n
        !           841: exitm
        !           842: endif
        !           843: ife ?t_&n-4
        !           844:        push    word ptr (n)[2]
        !           845:        push    word ptr (n)
        !           846: ?argl=?argl+2
        !           847: exitm
        !           848: endif
        !           849: ife ?t_&n-8
        !           850:        push    word ptr (n)[6]
        !           851:        push    word ptr (n)[4]
        !           852:        push    word ptr (n)[2]
        !           853:        push    word ptr (n)
        !           854: ?argl=?argl+6
        !           855: exitm
        !           856: endif
        !           857: if ?t_&n and 80h
        !           858: n
        !           859: ?argl=?argl+2
        !           860: exitm
        !           861: endif
        !           862: ife ?t_&n
        !           863:        push    word ptr (n)
        !           864: exitm
        !           865: endif
        !           866: endif
        !           867:        push    n
        !           868: endm
        !           869: cCall macro n,a,c
        !           870: ifnb <a>
        !           871: arg <a>
        !           872: endif
        !           873: mpush %?rsl
        !           874: ifdef ?CC&n
        !           875: ?cCall1=?CC&n
        !           876: else
        !           877: ?cCall1=?PLM
        !           878: endif
        !           879: ifnb <c>
        !           880: ?gcc ?cCall1,%?cCall1,<c>
        !           881: endif
        !           882: ?argl=0
        !           883: ife ?cCall1
        !           884: ?acb=?argc
        !           885: else
        !           886: ?acb=1
        !           887: endif
        !           888: rept ?argc
        !           889: uconcat <?ali>,%?acb
        !           890: uconcat <purge>,,<?ali>,%?acb
        !           891: ife ?cCall1
        !           892: ?acb=?acb-1
        !           893: else
        !           894: ?acb=?acb+1
        !           895: endif
        !           896: endm
        !           897:        call    n
        !           898: if ((?cCall1 eq 0) and (?argl ne 0))
        !           899:        add     sp,?argl
        !           900: endif
        !           901: mpop %?rsl
        !           902: ?rsl=0
        !           903: ?argc= 0
        !           904: ?argl= 0
        !           905: endm
        !           906: cProc macro n,cf,a
        !           907: if ?cpd
        !           908: ?utpe
        !           909: endif
        !           910: ?cpd=1
        !           911: ???=0
        !           912: ?argc=0
        !           913: ?ba=0
        !           914: ?po=0
        !           915: ?pu=0
        !           916: ?ia=0
        !           917: ?adj=4
        !           918: ?rp=0
        !           919: ?uf=0
        !           920: ?wfp=?WIN
        !           921: ?ff=0
        !           922: ?pas=0
        !           923: ?pcc=?PLM
        !           924: ?no_bp2=?no_bp1
        !           925: ?aprof2=?aprof1
        !           926: ifnb <a>
        !           927: ?ri ?pas,<a>
        !           928: endif
        !           929: ?pc=sizec
        !           930: ?nd=?nodata1
        !           931: ?nx=0
        !           932: irp x,<cf>
        !           933: ifdef ??_cproc_&&x
        !           934: ??_cproc_&&x
        !           935: else
        !           936: ??error2 <e r r o r - unknown keyword x>
        !           937: .err
        !           938: endif
        !           939: endm
        !           940: if ?pcc
        !           941: ?PLMPrevParm=0
        !           942: .xcref
        !           943: .xcref ?PLMParm0
        !           944: .cref
        !           945: ?PLMParm0 &macro
        !           946: purge ?PLMParm0
        !           947: &endm
        !           948: endif
        !           949: .xcref
        !           950: .xcref ?CC&n
        !           951: .cref
        !           952: ?CC&n=?pcc
        !           953: if (?nx eq 1) and (?nd eq 0)
        !           954: ?nx = 0
        !           955: ??error2 <ATOMIC specified without NODATA - ATOMIC ignored>
        !           956: endif
        !           957: if ?pc
        !           958: if ?wfp
        !           959: ife ?nx
        !           960: ?ia=2
        !           961: ?pas = ?pas and (not ?ds)
        !           962: endif
        !           963: endif
        !           964: ?adj=?adj+2
        !           965: else
        !           966: ?wfp=0
        !           967: endif
        !           968: ?pas = ?pas and (not (?sp+?cs+?ss))
        !           969: if ?uf
        !           970: ?pas = ?pas and (not (?bp+?si+?di))
        !           971: endif
        !           972: ife ?pcc
        !           973: ?pg <_&n>,%?pu,%?pc,%?pas,%?wfp,<n>,%?pcc
        !           974: else
        !           975: ?pg <n>,%?pu,%?pc,%?pas,%?wfp,<n>,%?pcc
        !           976: endif
        !           977: endm
        !           978: ?pg macro n,p,c,a,w,nnu,cc
        !           979: .xcref
        !           980: if ?uf
        !           981: if ?nd
        !           982: ??error2 <NODATA encountered in &n - user frame ignored>
        !           983: ?uf=0
        !           984: endif
        !           985: endif
        !           986: .xcref cBegin
        !           987: cBegin &macro g
        !           988: .xcref
        !           989: if cc
        !           990: uconcat <?PLMParm>,%?PLMPrevParm,%?po
        !           991: endif
        !           992: if ?uf
        !           993: if ?rp
        !           994: ??error2 <parmR encountered in &n - user frame ignored>
        !           995: ?uf=0
        !           996: endif
        !           997: endif
        !           998: ?pg1 <n>,c,a,%?po,w,%?uf,%?nd,%?rp,cc,<nnu>,%???
        !           999: ?cpd=0
        !          1000: ?argc=0
        !          1001: ?ba=1
        !          1002: ???=(???+1) and 0fffeh
        !          1003: if p
        !          1004: public n
        !          1005: endif
        !          1006: ife c
        !          1007: n proc near
        !          1008: else
        !          1009: n proc far
        !          1010: endif
        !          1011: ife cc
        !          1012: nnu equ n
        !          1013: endif
        !          1014: ?cbe = 0
        !          1015: ifnb <g>
        !          1016: ?pcbe <g>,<nnu>,<cBegin>
        !          1017: endif
        !          1018: if ?cbe eq 1
        !          1019: if ???+a+?rp
        !          1020: if2
        !          1021: ??_out <cBegin - possibly invalid use of nogen>
        !          1022: endif
        !          1023: endif
        !          1024: else
        !          1025: if ?uf
        !          1026: ?mf c,%???,%?po
        !          1027: mpush a
        !          1028: else
        !          1029: ife ?cbe
        !          1030: if w
        !          1031: ife ?nd
        !          1032: ife ?DOS5
        !          1033:        mov     ax,ds
        !          1034:        nop
        !          1035: else
        !          1036:        mov     ax,DataBASE
        !          1037: endif
        !          1038: endif
        !          1039: if ?aprof2
        !          1040:        call    AProfCall
        !          1041: endif
        !          1042: ife ?nx
        !          1043: ife ?DOS5
        !          1044:        inc     bp
        !          1045: endif
        !          1046:        push    bp
        !          1047:        mov     bp,sp
        !          1048:        push    ds
        !          1049: else
        !          1050: if ?ff+???+?po+?rp
        !          1051:        push    bp
        !          1052:        mov     bp,sp
        !          1053: endif
        !          1054: endif
        !          1055: ife ?nd
        !          1056:        mov     ds,ax
        !          1057: endif
        !          1058: else
        !          1059: if ?aprof2
        !          1060:        call    AProfCall
        !          1061: endif
        !          1062: if ?ff+???+?po+?rp
        !          1063:        push    bp
        !          1064:        mov     bp,sp
        !          1065: endif
        !          1066: endif
        !          1067: if ?rp
        !          1068: ?uf=0
        !          1069: rept ?rp
        !          1070: uconcat mpush,,?rp,%?uf
        !          1071: ?uf=?uf+1
        !          1072: endm
        !          1073: endif
        !          1074: if ???
        !          1075: if ?chkstk1
        !          1076: ifdef ?CHKSTKPROC
        !          1077: ?CHKSTKPROC %???
        !          1078: else
        !          1079:        mov     ax,???
        !          1080: ife cc
        !          1081:        call    _chkstk
        !          1082: else
        !          1083:        call    chkstk
        !          1084: endif
        !          1085: endif
        !          1086: else
        !          1087:        sub     sp,???
        !          1088: endif
        !          1089: endif
        !          1090: else
        !          1091: if ?aprof2
        !          1092:        call    AProfRet
        !          1093:        call    AProfCall
        !          1094: endif
        !          1095: if ?rp
        !          1096: ??error2 <cBegin - parmRs encountered with partial frame>
        !          1097: else
        !          1098: if ???
        !          1099:        lea     sp,[bp][-???-?ia]
        !          1100: endif
        !          1101: endif
        !          1102: endif
        !          1103: mpush a
        !          1104: endif
        !          1105: ifdef ?PROFILE
        !          1106: if c
        !          1107:        call    StartNMeas
        !          1108: endif
        !          1109: endif
        !          1110: endif
        !          1111: .cref
        !          1112: purge cBegin
        !          1113: &endm
        !          1114: .xcref ?utpe
        !          1115: ?utpe &macro
        !          1116: ??error2 <unterminated procedure definition: "&n">
        !          1117: &endm
        !          1118: .cref
        !          1119: endm
        !          1120: ?pg1 macro n,c,a,o,w,f,d,r,cc,nnu,lc
        !          1121: .xcref
        !          1122: .xcref cEnd
        !          1123: parm_bytes_&nnu = o
        !          1124: cEnd &macro g
        !          1125: .xcref
        !          1126: ?ba=0
        !          1127: ?cbe = 0
        !          1128: ifnb <g>
        !          1129: ?pcbe <g>,<nnu>,<cEnd>
        !          1130: endif
        !          1131: if ?cbe eq 1
        !          1132: if a+r+lc
        !          1133: if2
        !          1134: ??_out <cEnd - possibly invalid use of nogen>
        !          1135: endif
        !          1136: endif
        !          1137: else
        !          1138: ifdef ?PROFILE
        !          1139: if c
        !          1140: call StopNMeas
        !          1141: endif
        !          1142: endif
        !          1143: mpop a
        !          1144: if f
        !          1145:        db      0c3h
        !          1146: else
        !          1147: if w
        !          1148: ife ?nx
        !          1149: if (?TF eq 0) or (???+r)
        !          1150:        lea     sp,-2[bp]
        !          1151: endif
        !          1152:        pop     ds
        !          1153:        pop     bp
        !          1154: ife ?DOS5
        !          1155:        dec     bp
        !          1156: endif
        !          1157: else
        !          1158: if (?TF eq 0) or (???+r)
        !          1159:        mov     sp,bp
        !          1160: endif
        !          1161: if ???+?po+r
        !          1162:        pop     bp
        !          1163: endif
        !          1164: endif
        !          1165: else
        !          1166: if ?ff+???+?po+r
        !          1167: if (?TF eq 0) or (???+r)
        !          1168:        mov     sp,bp
        !          1169: endif
        !          1170:        pop     bp
        !          1171: endif
        !          1172: endif
        !          1173: if ?aprof2
        !          1174:        call    AProfRet
        !          1175: endif
        !          1176: if ?cbe ne 4
        !          1177: ife cc
        !          1178:        ret
        !          1179: else
        !          1180:        ret     o
        !          1181: endif
        !          1182: endif
        !          1183: endif
        !          1184: endif
        !          1185: if ?cbe ne 4
        !          1186: n endp
        !          1187: .cref
        !          1188: purge cEnd
        !          1189: else
        !          1190: .cref
        !          1191: endif
        !          1192: &endm
        !          1193: .cref
        !          1194: endm
        !          1195: .xcref
        !          1196: .xcref cleanframe
        !          1197: cleanframe macro
        !          1198: cEnd <??cleanframe??>
        !          1199: endm
        !          1200: .cref
        !          1201: .xcref
        !          1202: .xcref ??_cproc_FAR,??_cproc_NEAR,??_cproc_PUBLIC,??_cproc_SMALL
        !          1203: .xcref ??_cproc_DATA,??_cproc_NODATA,??_cproc_ATOMIC,??_cproc_C
        !          1204: .xcref ??_cproc_PLM,??_cproc_PASCAL,??_cproc_WIN,??_cproc_NONWIN
        !          1205: .xcref ??_cproc_NO_BP,??_cproc_BP
        !          1206: .xcref ??_cproc_NO_ATTRPROF,??_cproc_ATTRPROF
        !          1207: .xcref ??_cproc_far,??_cproc_near,??_cproc_public,??_cproc_small
        !          1208: .xcref ??_cproc_data,??_cproc_nodata,??_cproc_atomic,??_cproc_c
        !          1209: .xcref ??_cproc_plm,??_cproc_pascal,??_cproc_win,??_cproc_nonwin
        !          1210: .xcref ??_cproc_no_bp,??_cproc_bp
        !          1211: .xcref ??_cproc_no_attrprof,??_cproc_attrprof
        !          1212: .cref
        !          1213: ??_cproc_FAR macro
        !          1214: ?pc=1
        !          1215: endm
        !          1216: ??_cproc_NEAR macro
        !          1217: ?pc=0
        !          1218: endm
        !          1219: ??_cproc_PUBLIC macro
        !          1220: ?pu=1
        !          1221: endm
        !          1222: ??_cproc_SMALL macro
        !          1223: ?uf=1
        !          1224: endm
        !          1225: ??_cproc_DATA macro
        !          1226: ?nd=0
        !          1227: endm
        !          1228: ??_cproc_NODATA macro
        !          1229: ?nd=1
        !          1230: endm
        !          1231: ??_cproc_ATOMIC macro
        !          1232: ?nx=1
        !          1233: endm
        !          1234: ??_cproc_C macro
        !          1235: ?pcc=0
        !          1236: endm
        !          1237: ??_cproc_PLM macro
        !          1238: ?pcc=1
        !          1239: endm
        !          1240: ??_cproc_PASCAL macro
        !          1241: ?pcc=1
        !          1242: endm
        !          1243: ??_cproc_WIN macro
        !          1244: ?wfp=1
        !          1245: endm
        !          1246: ??_cproc_NONWIN macro
        !          1247: ?wfp=0
        !          1248: endm
        !          1249: ??_cproc_NO_BP macro
        !          1250: ?no_bp2=1
        !          1251: endm
        !          1252: ??_cproc_BP macro
        !          1253: ?no_bp2=0
        !          1254: endm
        !          1255: ??_cproc_NO_ATTRPROF macro
        !          1256: ?aprof2=0
        !          1257: endm
        !          1258: ??_cproc_ATTRPROF macro
        !          1259: ?aprof2=1
        !          1260: endm
        !          1261: ??_cproc_far macro
        !          1262: ?pc=1
        !          1263: endm
        !          1264: ??_cproc_near macro
        !          1265: ?pc=0
        !          1266: endm
        !          1267: ??_cproc_public macro
        !          1268: ?pu=1
        !          1269: endm
        !          1270: ??_cproc_small macro
        !          1271: ?uf=1
        !          1272: endm
        !          1273: ??_cproc_data macro
        !          1274: ?nd=0
        !          1275: endm
        !          1276: ??_cproc_nodata macro
        !          1277: ?nd=1
        !          1278: endm
        !          1279: ??_cproc_atomic macro
        !          1280: ?nx=1
        !          1281: endm
        !          1282: ??_cproc_c macro
        !          1283: ?pcc=0
        !          1284: endm
        !          1285: ??_cproc_plm macro
        !          1286: ?pcc=1
        !          1287: endm
        !          1288: ??_cproc_pascal macro
        !          1289: ?pcc=1
        !          1290: endm
        !          1291: ??_cproc_win macro
        !          1292: ?wfp=1
        !          1293: endm
        !          1294: ??_cproc_nonwin macro
        !          1295: ?wfp=0
        !          1296: endm
        !          1297: ??_cproc_no_bp macro
        !          1298: ?no_bp2=1
        !          1299: endm
        !          1300: ??_cproc_bp macro
        !          1301: ?no_bp2=0
        !          1302: endm
        !          1303: ??_cproc_no_attrprof macro
        !          1304: ?aprof2=0
        !          1305: endm
        !          1306: ??_cproc_attrprof macro
        !          1307: ?aprof2=1
        !          1308: endm
        !          1309: ?pcbe macro g,nnu,mt
        !          1310: ifidn <g>,<NOGEN>
        !          1311: ?cbe = 1
        !          1312: else
        !          1313: ifidn <g>,<nogen>
        !          1314: ?cbe = 1
        !          1315: else
        !          1316: ifidn <mt>,<cBegin>
        !          1317: ifidn <g>,<PARTIAL>
        !          1318: ?cbe = 2
        !          1319: else
        !          1320: ifidn <g>,<partial>
        !          1321: ?cbe = 2
        !          1322: else
        !          1323: ifdif <g>,<nnu>
        !          1324: ??error2 <mt - unknown keyword g>
        !          1325: endif
        !          1326: endif
        !          1327: endif
        !          1328: else
        !          1329: ifidn <g>,<??cleanframe??>
        !          1330: ?cbe = 4
        !          1331: else
        !          1332: ifdif <g>,<nnu>
        !          1333: ??error2 <mt - unknown keyword g>
        !          1334: endif
        !          1335: endif
        !          1336: endif
        !          1337: endif
        !          1338: endif
        !          1339: endm
        !          1340: assumes macro s,ln
        !          1341: ifndef ln&_assumes
        !          1342: assume s:ln
        !          1343: else
        !          1344: ln&_assumes s
        !          1345: endif
        !          1346: endm
        !          1347: createSeg macro n,ln,a,co,cl,grp
        !          1348: ifnb <cl>
        !          1349: n segment a co '&cl'
        !          1350: else
        !          1351: n segment a co
        !          1352: endif
        !          1353: n ends
        !          1354: ifnb <grp>
        !          1355: addseg grp,n
        !          1356: else
        !          1357: ln&OFFSET equ offset n:
        !          1358: ln&BASE equ n
        !          1359: ?cs3 <ln>,<n>
        !          1360: endif
        !          1361: ?cs1 <ln>,<n>
        !          1362: endm
        !          1363: addseg macro grp,seg
        !          1364: .xcref
        !          1365: .xcref grp&_def
        !          1366: .cref
        !          1367: ifndef grp&_def
        !          1368: grp&_def=0
        !          1369: endif
        !          1370: if grp&_def ne ASMpass
        !          1371: .xcref
        !          1372: .xcref grp&_add
        !          1373: .cref
        !          1374: grp&_add &macro s
        !          1375: grp&_in <seg>,s
        !          1376: &endm
        !          1377: .xcref
        !          1378: .xcref grp&_in
        !          1379: .cref
        !          1380: grp&_in &macro sl,s
        !          1381: ifb <s>
        !          1382: grp group sl
        !          1383: else
        !          1384: grp&_add &macro ns
        !          1385: grp&_in <sl,s>,ns
        !          1386: &endm
        !          1387: endif
        !          1388: &endm
        !          1389: grp&_def=ASMpass
        !          1390: else
        !          1391: grp&_add seg
        !          1392: endif
        !          1393: endm
        !          1394: defgrp macro grp,ln
        !          1395: addseg grp
        !          1396: ifnb <ln>
        !          1397: irp x,<ln>
        !          1398: ?cs3 <&x>,<grp>
        !          1399: x&&OFFSET equ offset grp:
        !          1400: x&&BASE equ grp
        !          1401: endm
        !          1402: endif
        !          1403: endm
        !          1404: ?cs1 macro ln,n
        !          1405: .xcref
        !          1406: .xcref ln&_sbegin
        !          1407: .cref
        !          1408: ln&_sbegin &macro
        !          1409: .xcref
        !          1410: .xcref ?mf
        !          1411: .cref
        !          1412: ?curseg equ <&ln>
        !          1413: ?mf &&macro c,l,p
        !          1414: if c
        !          1415:        extrn   n&_FARFRAME:near
        !          1416:        call    n&_FARFRAME
        !          1417: else
        !          1418:        extrn   n&_NEARFRAME:near
        !          1419:        call    n&_NEARFRAME
        !          1420: endif
        !          1421:        db      l shr 1
        !          1422:        db      p shr 1
        !          1423: &&endm
        !          1424: ?cs2 <ln>,<n>
        !          1425: n segment
        !          1426: &endm
        !          1427: endm
        !          1428: ?cs2 macro ln,n
        !          1429: .xcref
        !          1430: .xcref sEnd
        !          1431: .cref
        !          1432: sEnd &macro
        !          1433: n ends
        !          1434: purge ?mf
        !          1435: purge sEnd
        !          1436: &endm
        !          1437: endm
        !          1438: ?cs3 macro ln,n
        !          1439: .xcref
        !          1440: .xcref ln&_assumes
        !          1441: .cref
        !          1442: ln&_assumes &macro s
        !          1443: assume s:&n
        !          1444: &endm
        !          1445: endm
        !          1446: .xcref
        !          1447: .xcref sBegin
        !          1448: .cref
        !          1449: sBegin macro ln
        !          1450: ln&_sbegin
        !          1451: endm
        !          1452: ife ?DF
        !          1453: createSeg _TEXT,Code,word,public,CODE
        !          1454: ife ?nodata1
        !          1455: createSeg _DATA,Data,word,public,DATA,DGROUP
        !          1456: defgrp DGROUP,Data
        !          1457: endif
        !          1458: if ?chkstk1
        !          1459: ifndef ?CHKSTKPROC
        !          1460: externp <chkstk>
        !          1461: endif
        !          1462: endif
        !          1463: endif
        !          1464: errnz macro x
        !          1465: if2
        !          1466: if x
        !          1467: errnz1 <x>,%(x)
        !          1468: endif
        !          1469: endif
        !          1470: endm
        !          1471: errnz1 macro x1,x2
        !          1472: = *errnz* x1 = x2
        !          1473: .err
        !          1474: endm
        !          1475: errn$ macro l,x
        !          1476: errnz <offset $ - offset l x>
        !          1477: endm
        !          1478: ifdef ?PROFILE
        !          1479: externFP <StartNMeas,StopNMeas>
        !          1480: endif
        !          1481: if ?aprof1
        !          1482: externFP <AProfCall,AProfRet>,<PLM>
        !          1483: endif

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.