summaryrefslogtreecommitdiff
path: root/v2.0/source/DOSMAC.ASM
blob: 35c16f1d3167ec0a51207c356981a42cf2a13ce8 (plain) (blame)
ofshex dumpascii
0000 3b 0d 0a 3b 20 4d 61 63 72 6f 20 66 69 6c 65 20 66 6f 72 20 4d 53 44 4f 53 2e 0d 0a 3b 0d 0a 0d ;..;.Macro.file.for.MSDOS...;...
0020 0a 53 55 42 54 54 4c 20 42 52 45 41 4b 20 61 20 6c 69 73 74 69 6e 67 20 69 6e 74 6f 20 70 61 67 .SUBTTL.BREAK.a.listing.into.pag
0040 65 73 20 61 6e 64 20 67 69 76 65 20 6e 65 77 20 73 75 62 74 69 74 6c 65 73 0d 0a 50 41 47 45 0d es.and.give.new.subtitles..PAGE.
0060 0a 42 52 45 41 4b 20 20 20 4d 41 43 52 4f 20 20 20 73 75 62 74 69 74 6c 65 0d 0a 20 20 20 20 20 .BREAK...MACRO...subtitle.......
0080 20 20 20 53 55 42 54 54 4c 20 20 73 75 62 74 69 74 6c 65 0d 0a 20 20 20 20 20 20 20 20 50 41 47 ...SUBTTL..subtitle..........PAG
00a0 45 0d 0a 45 4e 44 4d 0d 0a 0d 0a 42 52 45 41 4b 20 3c 49 5f 4e 45 45 44 3a 20 64 65 63 6c 61 72 E..ENDM....BREAK.<I_NEED:.declar
00c0 65 20 61 20 76 61 72 69 61 62 6c 65 20 65 78 74 65 72 6e 61 6c 2c 20 69 66 20 6e 65 63 65 73 73 e.a.variable.external,.if.necess
00e0 61 72 79 2c 20 61 6e 64 20 61 6c 6c 6f 63 61 74 65 20 61 20 73 69 7a 65 3e 0d 0a 0d 0a 3b 0d 0a ary,.and.allocate.a.size>....;..
0100 3b 20 64 65 63 6c 61 72 65 20 61 20 76 61 72 69 61 62 6c 65 20 65 78 74 65 72 6e 61 6c 20 61 6e ;.declare.a.variable.external.an
0120 64 20 61 6c 6c 6f 63 61 74 65 20 61 20 73 69 7a 65 0d 0a 3b 0d 0a 49 5f 4e 45 45 44 20 20 4d 41 d.allocate.a.size..;..I_NEED..MA
0140 43 52 4f 20 20 20 73 79 6d 2c 6c 65 6e 0d 0a 20 20 20 20 43 4f 44 45 20 20 20 20 45 4e 44 53 0d CRO...sym,len......CODE....ENDS.
0160 0a 20 20 20 20 44 41 54 41 20 20 20 20 53 45 47 4d 45 4e 54 20 42 59 54 45 20 50 55 42 4c 49 43 .....DATA....SEGMENT.BYTE.PUBLIC
0180 20 27 44 41 54 41 27 0d 0a 0d 0a 20 20 20 20 49 46 49 44 4e 20 20 20 3c 6c 65 6e 3e 2c 3c 57 4f .'DATA'........IFIDN...<len>,<WO
01a0 52 44 3e 0d 0a 20 20 20 20 20 20 20 20 45 58 54 52 4e 20 20 20 26 73 79 6d 3a 57 4f 52 44 0d 0a RD>..........EXTRN...&sym:WORD..
01c0 20 20 20 20 45 4c 53 45 0d 0a 20 20 20 20 20 20 20 20 49 46 49 44 4e 20 20 20 3c 6c 65 6e 3e 2c ....ELSE..........IFIDN...<len>,
01e0 3c 44 57 4f 52 44 3e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 45 58 54 52 4e 20 20 20 26 73 79 <DWORD>..............EXTRN...&sy
0200 6d 3a 44 57 4f 52 44 0d 0a 20 20 20 20 20 20 20 20 45 4c 53 45 0d 0a 20 20 20 20 20 20 20 20 20 m:DWORD..........ELSE...........
0220 20 20 45 58 54 52 4e 20 20 20 26 73 79 6d 3a 42 59 54 45 0d 0a 20 20 20 20 20 20 20 20 45 4e 44 ..EXTRN...&sym:BYTE..........END
0240 49 46 0d 0a 20 20 20 20 45 4e 44 49 46 0d 0a 0d 0a 20 20 20 20 44 41 54 41 20 20 20 20 45 4e 44 IF......ENDIF........DATA....END
0260 53 0d 0a 20 20 20 20 43 4f 44 45 20 20 20 20 53 45 47 4d 45 4e 54 20 42 59 54 45 20 50 55 42 4c S......CODE....SEGMENT.BYTE.PUBL
0280 49 43 20 27 43 4f 44 45 27 0d 0a 45 4e 44 4d 0d 0a 0d 0a 3b 0d 0a 3b 20 63 61 6c 6c 20 61 20 70 IC.'CODE'..ENDM....;..;.call.a.p
02a0 72 6f 63 65 64 75 72 65 20 74 68 61 74 20 6d 61 79 20 62 65 20 65 78 74 65 72 6e 61 6c 2e 20 20 rocedure.that.may.be.external...
02c0 54 68 65 20 63 61 6c 6c 20 77 69 6c 6c 20 62 65 20 73 68 6f 72 74 2e 0d 0a 3b 0d 0a 69 6e 76 6f The.call.will.be.short...;..invo
02e0 6b 65 20 20 4d 41 43 52 4f 20 20 20 6e 61 6d 65 0d 0a 26 2e 78 63 72 65 66 0d 0a 20 20 20 20 61 ke..MACRO...name..&.xcref......a
0300 64 64 5f 65 78 74 20 6e 61 6d 65 2c 6e 65 61 72 0d 0a 26 2e 63 72 65 66 0d 0a 20 20 20 20 43 41 dd_ext.name,near..&.cref......CA
0320 4c 4c 20 20 20 20 6e 61 6d 65 0d 0a 45 4e 44 4d 0d 0a 0d 0a 50 41 47 45 0d 0a 3b 0d 0a 3b 20 6a LL....name..ENDM....PAGE..;..;.j
0340 75 6d 70 20 74 6f 20 61 20 6c 61 62 65 6c 20 74 68 61 74 20 6d 61 79 20 62 65 20 65 78 74 65 72 ump.to.a.label.that.may.be.exter
0360 6e 61 6c 2e 20 20 54 68 65 20 63 61 6c 6c 20 77 69 6c 6c 20 62 65 20 6e 65 61 72 2e 0d 0a 3b 0d nal...The.call.will.be.near...;.
0380 0a 74 72 61 6e 73 66 65 72 20 20 20 20 4d 41 43 52 4f 20 20 20 6e 61 6d 65 0d 0a 26 2e 78 63 72 .transfer....MACRO...name..&.xcr
03a0 65 66 0d 0a 20 20 20 20 61 64 64 5f 65 78 74 20 6e 61 6d 65 2c 6e 65 61 72 0d 0a 26 2e 63 72 65 ef......add_ext.name,near..&.cre
03c0 66 0d 0a 20 20 20 20 4a 55 4d 50 20 20 20 20 6e 61 6d 65 0d 0a 45 4e 44 4d 0d 0a 0d 0a 3b 0d 0a f......JUMP....name..ENDM....;..
03e0 3b 20 67 65 74 20 61 20 73 68 6f 72 74 20 61 64 64 72 65 73 73 20 69 6e 20 61 20 77 6f 72 64 0d ;.get.a.short.address.in.a.word.
0400 0a 3b 0d 0a 73 68 6f 72 74 5f 61 64 64 72 20 20 4d 41 43 52 4f 20 20 20 6e 61 6d 65 0d 0a 20 20 .;..short_addr..MACRO...name....
0420 20 20 49 46 44 49 46 20 20 20 3c 6e 61 6d 65 3e 2c 3c 3f 3e 0d 0a 26 2e 78 63 72 65 66 0d 0a 20 ..IFDIF...<name>,<?>..&.xcref...
0440 20 20 20 20 20 20 20 61 64 64 5f 65 78 74 20 6e 61 6d 65 2c 6e 65 61 72 0d 0a 26 2e 63 72 65 66 .......add_ext.name,near..&.cref
0460 0d 0a 20 20 20 20 20 20 20 20 44 57 20 20 4f 46 46 53 45 54 20 44 4f 53 47 52 4f 55 50 3a 6e 61 ..........DW..OFFSET.DOSGROUP:na
0480 6d 65 0d 0a 20 20 20 20 45 4c 53 45 0d 0a 20 20 20 20 20 20 20 20 44 57 20 20 3f 0d 0a 20 20 20 me......ELSE..........DW..?.....
04a0 20 45 4e 44 49 46 0d 0a 45 4e 44 4d 0d 0a 0d 0a 3b 0d 0a 3b 20 67 65 74 20 61 20 6c 6f 6e 67 20 .ENDIF..ENDM....;..;.get.a.long.
04c0 61 64 64 72 65 73 73 20 69 6e 20 61 20 64 77 6f 72 64 0d 0a 3b 0d 0a 6c 6f 6e 67 5f 61 64 64 72 address.in.a.dword..;..long_addr
04e0 20 20 20 4d 41 43 52 4f 20 20 20 6e 61 6d 65 0d 0a 26 2e 78 63 72 65 66 0d 0a 20 20 20 20 61 64 ...MACRO...name..&.xcref......ad
0500 64 5f 65 78 74 20 6e 61 6d 65 2c 66 61 72 0d 0a 26 2e 63 72 65 66 0d 0a 20 20 20 20 44 44 20 20 d_ext.name,far..&.cref......DD..
0520 6e 61 6d 65 0d 0a 45 4e 44 4d 0d 0a 0d 0a 3b 0d 0a 3b 20 64 65 63 6c 61 72 65 20 61 20 50 52 4f name..ENDM....;..;.declare.a.PRO
0540 43 20 6e 65 61 72 20 6f 72 20 66 61 72 20 62 75 74 20 50 55 42 4c 49 43 20 6e 6f 6e 65 74 68 65 C.near.or.far.but.PUBLIC.nonethe
0560 6c 65 73 73 0d 0a 3b 0d 0a 70 72 6f 63 65 64 75 72 65 20 20 20 4d 41 43 52 4f 20 20 20 6e 61 6d less..;..procedure...MACRO...nam
0580 65 2c 64 69 73 74 61 6e 63 65 0d 0a 20 20 20 20 20 20 20 20 50 55 42 4c 49 43 20 20 6e 61 6d 65 e,distance..........PUBLIC..name
05a0 0d 0a 6e 61 6d 65 20 20 20 20 50 52 4f 43 20 20 20 20 64 69 73 74 61 6e 63 65 0d 0a 45 4e 44 4d ..name....PROC....distance..ENDM
05c0 0d 0a 0d 0a 50 41 47 45 0d 0a 3b 0d 0a 3b 20 64 65 66 69 6e 65 20 61 20 64 61 74 61 20 69 74 65 ....PAGE..;..;.define.a.data.ite
05e0 6d 20 74 6f 20 62 65 20 70 75 62 6c 69 63 20 61 6e 64 20 6f 66 20 61 6e 20 61 70 70 72 6f 70 72 m.to.be.public.and.of.an.appropr
0600 69 61 74 65 20 73 69 7a 65 2f 74 79 70 65 0d 0a 3b 0d 0a 49 5f 41 4d 20 20 20 20 4d 41 43 52 4f iate.size/type..;..I_AM....MACRO
0620 20 20 20 6e 61 6d 65 2c 73 69 7a 65 0d 0a 20 20 20 20 50 55 42 4c 49 43 20 20 6e 61 6d 65 0d 0a ...name,size......PUBLIC..name..
0640 0d 0a 20 20 20 20 49 46 49 44 4e 20 3c 73 69 7a 65 3e 2c 3c 57 4f 52 44 3e 0d 0a 20 20 20 20 20 ......IFIDN.<size>,<WORD>.......
0660 20 20 20 6e 61 6d 65 20 20 20 20 44 57 20 20 3f 0d 0a 20 20 20 20 45 4c 53 45 0d 0a 20 20 20 20 ...name....DW..?......ELSE......
0680 20 20 20 20 49 46 49 44 4e 20 3c 73 69 7a 65 3e 2c 3c 44 57 4f 52 44 3e 0d 0a 20 20 20 20 20 20 ....IFIDN.<size>,<DWORD>........
06a0 20 20 20 20 20 20 6e 61 6d 65 20 20 20 20 44 44 20 20 3f 0d 0a 20 20 20 20 20 20 20 20 45 4c 53 ......name....DD..?..........ELS
06c0 45 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 49 46 49 44 4e 20 3c 73 69 7a 65 3e 2c 3c 42 59 54 E..............IFIDN.<size>,<BYT
06e0 45 3e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 61 6d 65 20 20 20 20 44 42 20 20 E>..................name....DB..
0700 3f 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 45 4c 53 45 0d 0a 20 20 20 20 20 20 20 20 20 20 20 ?..............ELSE.............
0720 20 20 20 20 20 6e 61 6d 65 20 20 20 20 44 42 20 20 73 69 7a 65 20 44 55 50 20 28 3f 29 0d 0a 20 .....name....DB..size.DUP.(?)...
0740 20 20 20 20 20 20 20 20 20 20 20 45 4e 44 49 46 0d 0a 20 20 20 20 20 20 20 20 45 4e 44 49 46 0d ...........ENDIF..........ENDIF.
0760 0a 20 20 20 20 45 4e 44 49 46 0d 0a 45 4e 44 4d 0d 0a 0d 0a 50 41 47 45 0d 0a 3b 0d 0a 3b 20 70 .....ENDIF..ENDM....PAGE..;..;.p
0780 6c 61 79 20 67 61 6d 65 73 20 77 69 74 68 20 61 20 70 6f 73 73 69 62 6c 65 20 65 78 74 65 72 6e lay.games.with.a.possible.extern
07a0 61 6c 2e 20 20 43 72 65 61 74 65 20 61 20 6e 65 77 0d 0a 3b 20 6d 61 63 72 6f 20 66 6f 72 20 74 al...Create.a.new..;.macro.for.t
07c0 68 65 20 73 79 6d 62 6f 6c 20 61 6e 64 20 74 65 78 74 2c 20 61 6e 64 20 73 74 72 69 6e 67 20 69 he.symbol.and.text,.and.string.i
07e0 74 20 74 6f 67 65 74 68 65 72 0d 0a 3b 20 77 69 74 68 20 61 20 63 65 6e 74 72 61 6c 20 69 6e 76 t.together..;.with.a.central.inv
0800 6f 6b 65 72 0d 0a 3b 0d 0a 0d 0a 2e 78 63 72 65 66 0d 0a 2e 78 63 72 65 66 20 20 3f 69 0d 0a 2e oker..;.....xcref...xcref..?i...
0820 78 63 72 65 66 20 64 65 66 5f 6d 61 63 0d 0a 2e 78 63 72 65 66 20 20 3f 7a 30 0d 0a 2e 78 63 72 xcref.def_mac...xcref..?z0...xcr
0840 65 66 20 20 61 64 64 5f 65 78 74 0d 0a 2e 63 72 65 66 0d 0a 0d 0a 49 46 31 0d 0a 20 20 20 20 3f ef..add_ext...cref....IF1......?
0860 69 3d 30 0d 0a 45 4e 44 49 46 0d 0a 0d 0a 3f 7a 30 20 6d 61 63 72 6f 0d 0a 65 6e 64 6d 0d 0a 0d i=0..ENDIF....?z0.macro..endm...
0880 0a 3b 0d 0a 3b 20 61 64 64 20 61 6e 20 65 78 74 65 72 6e 61 6c 20 64 65 63 6c 61 72 61 74 69 6f .;..;.add.an.external.declaratio
08a0 6e 20 74 6f 20 73 20 77 69 74 68 20 74 79 70 65 20 74 20 69 66 20 69 74 20 69 73 20 6e 6f 74 20 n.to.s.with.type.t.if.it.is.not.
08c0 64 65 66 69 6e 65 64 0d 0a 3b 0d 0a 61 64 64 5f 65 78 74 20 6d 61 63 72 6f 20 20 20 73 2c 74 0d defined..;..add_ext.macro...s,t.
08e0 0a 26 2e 78 63 72 65 66 0d 0a 26 2e 78 63 72 65 66 20 3f 26 73 0d 0a 26 2e 63 72 65 66 0d 0a 20 .&.xcref..&.xcref.?&s..&.cref...
0900 20 20 20 49 46 4e 44 45 46 20 20 20 3f 26 73 0d 0a 20 20 20 20 20 20 20 20 3f 69 20 3d 20 3f 69 ...IFNDEF...?&s..........?i.=.?i
0920 20 2b 20 31 0d 0a 20 20 20 20 20 20 20 20 64 65 66 5f 6d 61 63 20 20 20 20 20 3f 7a 26 25 3f 69 .+.1..........def_mac.....?z&%?i
0940 2c 3f 7a 26 25 28 3f 69 2d 31 29 2c 73 2c 74 0d 0a 20 20 20 20 45 4e 44 49 46 0d 0a 65 6e 64 6d ,?z&%(?i-1),s,t......ENDIF..endm
0960 0d 0a 0d 0a 3b 0d 0a 3b 20 64 65 66 69 6e 65 20 61 20 6d 61 63 72 6f 20 63 61 6c 6c 65 64 20 74 ....;..;.define.a.macro.called.t
0980 68 61 74 20 70 6f 73 73 69 62 6c 79 20 65 78 74 65 72 6e 61 6c 73 20 73 3a 74 20 61 6e 64 20 74 hat.possibly.externals.s:t.and.t
09a0 68 65 6e 20 63 61 6c 6c 73 20 6d 61 63 72 6f 20 6e 0d 0a 3b 0d 0a 64 65 66 5f 6d 61 63 20 6d 61 hen.calls.macro.n..;..def_mac.ma
09c0 63 72 6f 20 20 20 6d 2c 6e 2c 73 2c 74 0d 0a 26 2e 78 63 72 65 66 0d 0a 26 2e 78 63 72 65 66 20 cro...m,n,s,t..&.xcref..&.xcref.
09e0 20 3f 26 73 0d 0a 26 2e 78 63 72 65 66 20 20 6d 0d 0a 26 2e 63 72 65 66 0d 0a 6d 20 20 20 6d 61 .?&s..&.xcref..m..&.cref..m...ma
0a00 63 72 6f 0d 0a 20 20 20 20 69 66 6e 64 65 66 20 73 0d 0a 20 20 20 20 20 20 20 20 65 78 74 72 6e cro......ifndef.s..........extrn
0a20 20 73 3a 26 74 0d 0a 20 20 20 20 65 6e 64 69 66 0d 0a 20 20 20 20 70 75 72 67 65 20 6d 0d 0a 20 .s:&t......endif......purge.m...
0a40 20 20 20 70 75 72 67 65 20 3f 26 73 0d 0a 20 20 20 20 6e 0d 0a 65 6e 64 6d 0d 0a 3f 26 73 20 6d ...purge.?&s......n..endm..?&s.m
0a60 61 63 72 6f 0d 0a 26 65 6e 64 6d 0d 0a 65 6e 64 6d 0d 0a 0d 0a 3b 0d 0a 3b 20 63 61 6c 6c 20 74 acro..&endm..endm....;..;.call.t
0a80 68 65 20 6d 61 63 72 6f 20 63 68 61 69 6e 0d 0a 3b 0d 0a 64 6f 5f 65 78 74 20 20 6d 61 63 72 6f he.macro.chain..;..do_ext..macro
0aa0 0d 0a 26 2e 78 63 72 65 66 0d 0a 20 20 20 20 65 78 70 61 6e 64 5f 6d 61 63 20 20 3f 7a 25 3f 69 ..&.xcref......expand_mac..?z%?i
0ac0 0d 0a 26 2e 63 72 65 66 0d 0a 65 6e 64 6d 0d 0a 0d 0a 50 41 47 45 0d 0a 65 78 70 61 6e 64 5f 6d ..&.cref..endm....PAGE..expand_m
0ae0 61 63 20 6d 61 63 72 6f 20 6d 0d 0a 20 20 20 20 6d 0d 0a 65 6e 64 6d 0d 0a 0d 0a 3b 0d 0a 3b 20 ac.macro.m......m..endm....;..;.
0b00 64 65 66 69 6e 65 20 61 6e 20 65 6e 74 72 79 20 69 6e 20 61 20 70 72 6f 63 65 64 75 72 65 0d 0a define.an.entry.in.a.procedure..
0b20 3b 0d 0a 65 6e 74 72 79 20 6d 61 63 72 6f 20 6e 61 6d 65 0d 0a 20 20 20 20 50 55 42 4c 49 43 20 ;..entry.macro.name......PUBLIC.
0b40 20 6e 61 6d 65 0d 0a 6e 61 6d 65 3a 0d 0a 65 6e 64 6d 0d 0a 0d 0a 42 52 45 41 4b 20 3c 45 52 52 .name..name:..endm....BREAK.<ERR
0b60 4f 52 20 2d 20 70 72 69 6e 74 20 61 20 6d 65 73 73 61 67 65 20 61 6e 64 20 74 68 65 6e 20 6a 75 OR.-.print.a.message.and.then.ju
0b80 6d 70 20 74 6f 20 61 20 6c 61 62 65 6c 3e 0d 0a 0d 0a 65 72 72 6f 72 20 6d 61 63 72 6f 20 63 6f mp.to.a.label>....error.macro.co
0ba0 64 65 0d 0a 20 20 20 20 6c 6f 63 61 6c 20 61 0d 0a 2e 78 63 72 65 66 0d 0a 20 20 20 20 4d 4f 56 de......local.a...xcref......MOV
0bc0 20 41 4c 2c 63 6f 64 65 0d 0a 20 20 20 20 74 72 61 6e 73 66 65 72 20 20 20 20 53 59 53 5f 52 45 .AL,code......transfer....SYS_RE
0be0 54 5f 45 52 52 0d 0a 2e 63 72 65 66 0d 0a 45 4e 44 4d 0d 0a 0d 0a 42 52 45 41 4b 20 3c 4a 55 4d T_ERR...cref..ENDM....BREAK.<JUM
0c00 50 20 2d 20 72 65 61 6c 20 6a 75 6d 70 20 74 68 61 74 20 6c 69 6e 6b 73 20 75 70 20 73 68 6f 72 P.-.real.jump.that.links.up.shor
0c20 74 77 69 73 65 3e 0d 0a 3b 0d 0a 3b 20 67 69 76 65 6e 20 61 20 6c 61 62 65 6c 20 3c 6c 62 6c 3e twise>..;..;.given.a.label.<lbl>
0c40 20 65 69 74 68 65 72 20 32 20 62 79 74 65 20 6a 75 6d 70 20 74 6f 20 61 6e 6f 74 68 65 72 20 6c .either.2.byte.jump.to.another.l
0c60 61 62 65 6c 20 3c 6c 62 6c 3e 5f 4a 0d 0a 3b 20 69 66 20 69 74 20 69 73 20 6e 65 61 72 20 65 6e abel.<lbl>_J..;.if.it.is.near.en
0c80 6f 75 67 68 20 6f 72 20 33 20 62 79 74 65 20 6a 75 6d 70 20 74 6f 20 3c 6c 62 6c 3e 0d 0a 3b 0d ough.or.3.byte.jump.to.<lbl>..;.
0ca0 0a 0d 0a 6a 75 6d 70 20 20 20 20 6d 61 63 72 6f 20 6c 62 6c 0d 0a 20 20 20 20 6c 6f 63 61 6c 20 ...jump....macro.lbl......local.
0cc0 61 0d 0a 2e 78 63 72 65 66 0d 0a 20 20 20 20 61 3a 0d 0a 20 20 20 20 69 66 6e 64 65 66 20 6c 62 a...xcref......a:......ifndef.lb
0ce0 6c 26 5f 4a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 69 73 20 l&_J.......................;.is.
0d00 74 68 69 73 20 74 68 65 20 66 69 72 73 74 20 69 6e 76 6f 63 61 74 69 6f 6e 0d 0a 20 20 20 20 20 this.the.first.invocation.......
0d20 20 20 20 4a 4d 50 20 6c 62 6c 0d 0a 20 20 20 20 45 4c 53 45 0d 0a 20 20 20 20 20 20 20 20 49 46 ...JMP.lbl......ELSE..........IF
0d40 20 6c 62 6c 26 5f 4a 20 47 45 20 24 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 4a 4d 50 20 6c 62 .lbl&_J.GE.$..............JMP.lb
0d60 6c 0d 0a 20 20 20 20 20 20 20 20 45 4c 53 45 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 49 46 20 l..........ELSE..............IF.
0d80 28 24 2d 6c 62 6c 26 5f 4a 29 20 47 54 20 31 32 36 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 69 ($-lbl&_J).GT.126............;.i
0da0 73 20 74 68 65 20 6a 75 6d 70 20 74 6f 6f 20 66 61 72 20 61 77 61 79 3f 0d 0a 20 20 20 20 20 20 s.the.jump.too.far.away?........
0dc0 20 20 20 20 20 20 20 20 20 20 4a 4d 50 20 6c 62 6c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 45 ..........JMP.lbl..............E
0de0 4c 53 45 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b LSE............................;
0e00 20 64 6f 20 74 68 65 20 73 68 6f 72 74 20 6f 6e 65 2e 2e 2e 0d 0a 20 20 20 20 20 20 20 20 20 20 .do.the.short.one...............
0e20 20 20 20 20 20 20 4a 4d 50 20 6c 62 6c 26 5f 4a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 45 4e ......JMP.lbl&_J..............EN
0e40 44 49 46 0d 0a 20 20 20 20 20 20 20 20 45 4e 44 49 46 0d 0a 20 20 20 20 45 4e 44 49 46 0d 0a 65 DIF..........ENDIF......ENDIF..e
0e60 6e 64 6d 0d 0a 0d 0a 42 52 45 41 4b 20 3c 52 45 54 55 52 4e 20 2d 20 72 65 74 75 72 6e 20 66 72 ndm....BREAK.<RETURN.-.return.fr
0e80 6f 6d 20 61 20 66 75 6e 63 74 69 6f 6e 3e 0d 0a 0d 0a 72 65 74 75 72 6e 20 20 6d 61 63 72 6f 0d om.a.function>....return..macro.
0ea0 0a 20 20 20 20 6c 6f 63 61 6c 20 61 0d 0a 2e 78 63 72 65 66 0d 0a 61 3a 0d 0a 20 20 20 20 52 45 .....local.a...xcref..a:......RE
0ec0 54 0d 0a 72 65 74 5f 6c 20 3d 20 61 0d 0a 65 6e 64 6d 0d 0a 0d 0a 42 52 45 41 4b 20 3c 43 4f 4e T..ret_l.=.a..endm....BREAK.<CON
0ee0 44 52 45 54 20 2d 20 63 6f 6e 64 69 74 69 6f 6e 61 6c 20 72 65 74 75 72 6e 3e 0d 0a 0d 0a 6d 61 DRET.-.conditional.return>....ma
0f00 6b 65 6c 61 62 20 6d 61 63 72 6f 20 6c 2c 63 63 2c 6e 63 63 0d 0a 20 20 20 20 6a 26 6e 63 63 20 kelab.macro.l,cc,ncc......j&ncc.
0f20 20 20 61 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 ..a...........................;.
0f40 6a 3c 4e 43 43 3e 20 61 3a 0d 0a 20 20 20 20 72 65 74 75 72 6e 20 20 20 20 20 20 20 20 20 20 20 j<NCC>.a:......return...........
0f60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 72 65 74 75 72 6e 0d 0a 20 20 20 ...................;.return.....
0f80 20 61 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .a:.............................
0fa0 20 20 20 20 20 3b 20 61 3a 0d 0a 20 20 20 20 72 65 74 5f 26 63 63 20 3d 20 72 65 74 5f 6c 20 20 .....;.a:......ret_&cc.=.ret_l..
0fc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 64 65 66 69 6e 65 20 72 65 74 5f ...................;.define.ret_
0fe0 3c 43 43 3e 20 74 6f 20 62 65 20 72 65 74 5f 6c 0d 0a 65 6e 64 6d 0d 0a 0d 0a 63 6f 6e 64 72 65 <CC>.to.be.ret_l..endm....condre
1000 74 20 6d 61 63 72 6f 20 20 20 63 63 2c 6e 63 63 0d 0a 20 20 20 20 6c 6f 63 61 6c 20 20 20 61 2c t.macro...cc,ncc......local...a,
1020 62 0d 0a 20 20 20 20 69 66 64 65 66 20 20 20 72 65 74 5f 6c 20 20 20 20 20 20 20 20 20 20 20 20 b......ifdef...ret_l............
1040 20 20 20 20 20 20 20 20 20 20 20 3b 20 69 66 20 72 65 74 5f 6c 20 69 73 20 64 65 66 69 6e 65 64 ...........;.if.ret_l.is.defined
1060 0d 0a 20 20 20 20 20 20 20 20 69 66 20 28 28 24 20 2d 20 72 65 74 5f 6c 29 20 6c 65 20 31 32 36 ..........if.(($.-.ret_l).le.126
1080 29 20 61 6e 64 20 28 24 20 67 74 20 72 65 74 5f 6c 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 ).and.($.gt.ret_l)..............
10a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 20 20 ............................;...
10c0 20 20 69 66 20 72 65 74 5f 6c 20 69 73 20 6e 65 61 72 20 65 6e 6f 75 67 68 20 74 68 65 6e 0d 0a ..if.ret_l.is.near.enough.then..
10e0 20 20 20 20 20 20 20 20 20 20 20 20 61 3a 20 20 6a 26 63 63 20 20 20 20 72 65 74 5f 6c 20 20 20 ............a:..j&cc....ret_l...
1100 20 20 20 20 20 20 20 20 3b 20 20 20 20 20 20 20 20 20 61 3a 20 6a 3c 43 43 3e 20 74 6f 20 72 65 ........;.........a:.j<CC>.to.re
1120 74 5f 6c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 5f 26 63 63 20 3d 20 61 20 20 20 20 t_l..............ret_&cc.=.a....
1140 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 20 20 20 20 20 20 20 20 64 65 66 69 6e 65 20 72 65 .............;.........define.re
1160 74 5f 3c 43 43 3e 20 74 6f 20 62 65 20 61 3a 0d 0a 20 20 20 20 20 20 20 20 65 6c 73 65 0d 0a 20 t_<CC>.to.be.a:..........else...
1180 20 20 20 20 20 20 20 20 20 20 20 6d 61 6b 65 6c 61 62 20 61 2c 63 63 2c 6e 63 63 0d 0a 20 20 20 ...........makelab.a,cc,ncc.....
11a0 20 20 20 20 20 65 6e 64 69 66 0d 0a 20 20 20 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 20 20 69 66 .....endif......else..........if
11c0 64 65 66 20 20 20 72 65 74 5f 26 63 63 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 def...ret_&cc...................
11e0 20 20 3b 20 69 66 20 72 65 74 5f 3c 43 43 3e 20 64 65 66 69 6e 65 64 0d 0a 20 20 20 20 20 20 20 ..;.if.ret_<CC>.defined.........
1200 20 20 20 20 20 69 66 20 28 28 24 20 2d 20 72 65 74 5f 26 63 63 29 20 6c 65 20 31 32 36 29 20 61 .....if.(($.-.ret_&cc).le.126).a
1220 6e 64 20 28 24 20 67 74 20 72 65 74 5f 26 63 63 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 nd.($.gt.ret_&cc)...............
1240 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b ...............................;
1260 20 20 20 20 20 69 66 20 72 65 74 5f 3c 43 43 3e 20 69 73 20 6e 65 61 72 20 65 6e 6f 75 67 68 0d .....if.ret_<CC>.is.near.enough.
1280 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 3a 20 20 6a 26 63 63 20 20 20 20 72 65 74 .................a:..j&cc....ret
12a0 5f 26 63 63 20 20 20 20 20 20 20 20 20 3b 20 20 20 20 20 20 20 20 20 61 3a 20 6a 3c 43 43 3e 20 _&cc.........;.........a:.j<CC>.
12c0 74 6f 20 72 65 74 5f 3c 43 43 3e 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 to.ret_<CC>..................ret
12e0 5f 26 63 63 20 3d 20 61 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 20 20 20 20 20 _&cc.=.a.................;......
1300 20 20 20 64 65 66 69 6e 65 20 72 65 74 5f 3c 43 43 3e 20 74 6f 20 62 65 20 61 3a 0d 0a 20 20 20 ...define.ret_<CC>.to.be.a:.....
1320 20 20 20 20 20 20 20 20 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d .........else..................m
1340 61 6b 65 6c 61 62 20 61 2c 63 63 2c 6e 63 63 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 akelab.a,cc,ncc..............end
1360 69 66 0d 0a 20 20 20 20 20 20 20 20 65 6c 73 65 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 6d 61 if..........else..............ma
1380 6b 65 6c 61 62 20 61 2c 63 63 2c 6e 63 63 0d 0a 20 20 20 20 20 20 20 20 65 6e 64 69 66 0d 0a 20 kelab.a,cc,ncc..........endif...
13a0 20 20 20 65 6e 64 69 66 0d 0a 65 6e 64 6d 0d 0a 3b 63 6f 6e 64 72 65 74 20 6d 61 63 72 6f 20 20 ...endif..endm..;condret.macro..
13c0 20 63 63 2c 6e 63 63 0d 0a 3b 20 20 20 20 6c 6f 63 61 6c 20 20 20 61 2c 62 0d 0a 3b 20 20 20 20 .cc,ncc..;....local...a,b..;....
13e0 69 66 64 65 66 20 20 20 72 65 74 5f 6c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ifdef...ret_l...................
1400 20 20 20 20 3b 20 69 66 20 72 65 74 5f 6c 20 69 73 20 64 65 66 69 6e 65 64 0d 0a 3b 20 20 20 20 ....;.if.ret_l.is.defined..;....
1420 20 20 20 20 69 66 20 28 28 24 20 2d 20 72 65 74 5f 6c 29 20 6c 65 20 31 32 36 29 20 61 6e 64 20 ....if.(($.-.ret_l).le.126).and.
1440 28 24 20 67 74 20 72 65 74 5f 6c 29 0d 0a 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ($.gt.ret_l)..;.................
1460 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 20 20 20 20 69 66 20 .......................;.....if.
1480 72 65 74 5f 6c 20 69 73 20 6e 65 61 72 20 65 6e 6f 75 67 68 20 74 68 65 6e 0d 0a 3b 20 20 20 20 ret_l.is.near.enough.then..;....
14a0 20 20 20 20 20 20 20 20 61 3a 20 20 6a 26 63 63 20 20 20 20 72 65 74 5f 6c 20 20 20 20 20 20 20 ........a:..j&cc....ret_l.......
14c0 20 20 20 20 3b 20 20 20 20 20 20 20 20 20 61 3a 20 6a 3c 43 43 3e 20 74 6f 20 72 65 74 5f 6c 0d ....;.........a:.j<CC>.to.ret_l.
14e0 0a 3b 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 5f 26 63 63 20 3d 20 61 20 20 20 20 20 20 20 .;............ret_&cc.=.a.......
1500 20 20 20 20 20 20 20 20 20 20 3b 20 20 20 20 20 20 20 20 20 64 65 66 69 6e 65 20 72 65 74 5f 3c ..........;.........define.ret_<
1520 43 43 3e 20 74 6f 20 62 65 20 61 3a 0d 0a 3b 20 20 20 20 20 20 20 20 20 20 20 20 65 78 69 74 6d CC>.to.be.a:..;............exitm
1540 0d 0a 3b 20 20 20 20 20 20 20 20 65 6e 64 69 66 0d 0a 3b 20 20 20 20 65 6e 64 69 66 0d 0a 3b 20 ..;........endif..;....endif..;.
1560 20 20 20 69 66 64 65 66 20 20 20 72 65 74 5f 26 63 63 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...ifdef...ret_&cc..............
1580 20 20 20 20 20 20 20 3b 20 69 66 20 72 65 74 5f 3c 43 43 3e 20 64 65 66 69 6e 65 64 0d 0a 3b 20 .......;.if.ret_<CC>.defined..;.
15a0 20 20 20 20 20 20 20 69 66 20 28 28 24 20 2d 20 72 65 74 5f 26 63 63 29 20 6c 65 20 31 32 36 29 .......if.(($.-.ret_&cc).le.126)
15c0 20 61 6e 64 20 28 24 20 67 74 20 72 65 74 5f 26 63 63 29 0d 0a 3b 20 20 20 20 20 20 20 20 20 20 .and.($.gt.ret_&cc)..;..........
15e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 ..............................;.
1600 20 20 20 20 69 66 20 72 65 74 5f 3c 43 43 3e 20 69 73 20 6e 65 61 72 20 65 6e 6f 75 67 68 0d 0a ....if.ret_<CC>.is.near.enough..
1620 3b 20 20 20 20 20 20 20 20 20 20 20 20 61 3a 20 20 6a 26 63 63 20 20 20 20 72 65 74 5f 26 63 63 ;............a:..j&cc....ret_&cc
1640 20 20 20 20 20 20 20 20 20 3b 20 20 20 20 20 20 20 20 20 61 3a 20 6a 3c 43 43 3e 20 74 6f 20 72 .........;.........a:.j<CC>.to.r
1660 65 74 5f 3c 43 43 3e 0d 0a 3b 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 5f 26 63 63 20 3d 20 et_<CC>..;............ret_&cc.=.
1680 61 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 20 20 20 20 20 20 20 20 64 65 66 69 a.................;.........defi
16a0 6e 65 20 72 65 74 5f 3c 43 43 3e 20 74 6f 20 62 65 20 61 3a 0d 0a 3b 20 20 20 20 20 20 20 20 20 ne.ret_<CC>.to.be.a:..;.........
16c0 20 20 20 65 78 69 74 6d 0d 0a 3b 20 20 20 20 20 20 20 20 65 6e 64 69 66 0d 0a 3b 20 20 20 20 65 ...exitm..;........endif..;....e
16e0 6e 64 69 66 0d 0a 3b 20 20 20 20 6a 26 6e 63 63 20 20 20 61 20 20 20 20 20 20 20 20 20 20 20 20 ndif..;....j&ncc...a............
1700 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 6a 3c 4e 43 43 3e 20 61 3a 0d 0a 3b 20 20 20 ...............;.j<NCC>.a:..;...
1720 20 72 65 74 75 72 6e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .return.........................
1740 20 20 20 20 20 3b 20 72 65 74 75 72 6e 0d 0a 3b 20 20 20 20 61 3a 20 20 20 20 20 20 20 20 20 20 .....;.return..;....a:..........
1760 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 61 3a 0d 0a 3b 20 ........................;.a:..;.
1780 20 20 20 72 65 74 5f 26 63 63 20 3d 20 72 65 74 5f 6c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...ret_&cc.=.ret_l..............
17a0 20 20 20 20 20 20 20 3b 20 64 65 66 69 6e 65 20 72 65 74 5f 3c 43 43 3e 20 74 6f 20 62 65 20 72 .......;.define.ret_<CC>.to.be.r
17c0 65 74 5f 6c 0d 0a 3b 65 6e 64 6d 0d 0a 0d 0a 42 52 45 41 4b 20 3c 52 45 54 5a 20 2d 20 72 65 74 et_l..;endm....BREAK.<RETZ.-.ret
17e0 75 72 6e 20 69 66 20 7a 65 72 6f 2c 20 6c 69 6e 6b 73 20 75 70 20 73 68 6f 72 74 77 69 73 65 20 urn.if.zero,.links.up.shortwise.
1800 69 66 20 6e 65 63 65 73 73 61 72 79 3e 0d 0a 0d 0a 72 65 74 7a 20 20 20 20 6d 61 63 72 6f 0d 0a if.necessary>....retz....macro..
1820 20 20 20 20 63 6f 6e 64 72 65 74 20 7a 2c 6e 7a 0d 0a 65 6e 64 6d 0d 0a 0d 0a 42 52 45 41 4b 20 ....condret.z,nz..endm....BREAK.
1840 3c 52 45 54 4e 5a 20 2d 20 72 65 74 75 72 6e 20 69 66 20 6e 6f 74 20 7a 65 72 6f 2c 20 6c 69 6e <RETNZ.-.return.if.not.zero,.lin
1860 6b 73 20 75 70 20 73 68 6f 72 74 77 69 73 65 20 69 66 20 6e 65 63 65 73 73 61 72 79 3e 0d 0a 0d ks.up.shortwise.if.necessary>...
1880 0a 72 65 74 6e 7a 20 20 20 6d 61 63 72 6f 0d 0a 20 20 20 20 63 6f 6e 64 72 65 74 20 6e 7a 2c 7a .retnz...macro......condret.nz,z
18a0 0d 0a 65 6e 64 6d 0d 0a 0d 0a 42 52 45 41 4b 20 3c 52 45 54 43 20 2d 20 72 65 74 75 72 6e 20 69 ..endm....BREAK.<RETC.-.return.i
18c0 66 20 63 61 72 72 79 20 73 65 74 2c 20 6c 69 6e 6b 73 20 75 70 20 73 68 6f 72 74 77 69 73 65 20 f.carry.set,.links.up.shortwise.
18e0 69 66 20 6e 65 63 65 73 73 61 72 79 3e 0d 0a 0d 0a 72 65 74 63 20 20 20 20 6d 61 63 72 6f 0d 0a if.necessary>....retc....macro..
1900 20 20 20 20 63 6f 6e 64 72 65 74 20 63 2c 6e 63 0d 0a 65 6e 64 6d 0d 0a 0d 0a 42 52 45 41 4b 20 ....condret.c,nc..endm....BREAK.
1920 3c 52 45 54 4e 43 20 2d 20 72 65 74 75 72 6e 20 69 66 20 6e 6f 74 20 63 61 72 72 79 2c 20 6c 69 <RETNC.-.return.if.not.carry,.li
1940 6e 6b 73 20 75 70 20 73 68 6f 72 74 77 69 73 65 20 69 66 20 6e 65 63 65 73 73 61 72 79 3e 0d 0a nks.up.shortwise.if.necessary>..
1960 0d 0a 72 65 74 6e 63 20 20 20 6d 61 63 72 6f 0d 0a 20 20 20 20 63 6f 6e 64 72 65 74 20 6e 63 2c ..retnc...macro......condret.nc,
1980 63 0d 0a 65 6e 64 6d 0d 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 c..endm.........................
19a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
19c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
19e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................