From b95a3ae5a2c979c08f3b16eebe79dd2fd0f17615 Mon Sep 17 00:00:00 2001 From: sparky4 Date: Tue, 4 Aug 2015 22:40:52 -0500 Subject: [PATCH] I am understanding why the memory management system is not working now!! modified: 16.exe modified: 16/exmmtest/EXMMTEST.DSK modified: 16/exmmtest/EXMMTEST.EXE modified: 16/exmmtest/EXMMTEST.MAP modified: 16/exmmtest/EXMMTEST.PRJ new file: 16/exmmtest/HEAP.16 new file: 16/exmmtest/TC0000.SWP modified: 16/exmmtest/src/exmmtest.c modified: 16/exmmtest/src/lib/16_ca.c modified: 16/exmmtest/src/lib/16_hc.c modified: 16/exmmtest/src/lib/16_head.c modified: 16/exmmtest/src/lib/16_head.h modified: 16/exmmtest/src/lib/16_mm.c new file: 16/exmmtest/src/lib/nyan/kitten.c new file: 16/exmmtest/src/lib/nyan/kitten.h modified: exmmtest.exe modified: inputest.exe modified: makefile modified: scroll.exe modified: sountest.exe modified: src/exmmtest.c modified: src/lib/16_ca.c modified: src/lib/16_hc.c modified: src/lib/16_head.c modified: src/lib/16_head.h modified: src/lib/16_mm.c modified: src/lib/nyan/kitten.c modified: src/lib/nyan/kitten.h --- 16.exe | Bin 39692 -> 39132 bytes 16/exmmtest/EXMMTEST.DSK | Bin 1852 -> 1910 bytes 16/exmmtest/EXMMTEST.EXE | Bin 42171 -> 47399 bytes 16/exmmtest/EXMMTEST.MAP | 1372 +++++++++++++++-------------- 16/exmmtest/EXMMTEST.PRJ | Bin 5236 -> 7149 bytes 16/exmmtest/HEAP.16 | 45 + 16/exmmtest/TC0000.SWP | Bin 0 -> 262144 bytes 16/exmmtest/src/exmmtest.c | 8 +- 16/exmmtest/src/lib/16_ca.c | 86 +- 16/exmmtest/src/lib/16_hc.c | 44 +- 16/exmmtest/src/lib/16_head.c | 126 +-- 16/exmmtest/src/lib/16_head.h | 12 +- 16/exmmtest/src/lib/16_mm.c | 196 ++++- 16/exmmtest/src/lib/nyan/kitten.c | 615 +++++++++++++ 16/exmmtest/src/lib/nyan/kitten.h | 73 ++ exmmtest.exe | Bin 43880 -> 43160 bytes inputest.exe | Bin 24156 -> 23596 bytes makefile | 3 +- scroll.exe | Bin 56348 -> 55884 bytes sountest.exe | Bin 30446 -> 29886 bytes src/exmmtest.c | 8 +- src/lib/16_ca.c | 86 +- src/lib/16_hc.c | 44 +- src/lib/16_head.c | 126 +-- src/lib/16_head.h | 12 +- src/lib/16_mm.c | 196 ++++- src/lib/nyan/kitten.c | 2 + src/lib/nyan/kitten.h | 4 +- 28 files changed, 2061 insertions(+), 997 deletions(-) create mode 100644 16/exmmtest/HEAP.16 create mode 100644 16/exmmtest/TC0000.SWP create mode 100644 16/exmmtest/src/lib/nyan/kitten.c create mode 100644 16/exmmtest/src/lib/nyan/kitten.h diff --git a/16.exe b/16.exe index dae2e20e9f0fb67696a32bee2d42f09eac22a84e..d045861962f5036193a4cf088b0704b68d3cdc1e 100644 GIT binary patch delta 5608 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 Dzckle delta 6196 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 delta 21243 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 diff --git a/16/exmmtest/EXMMTEST.MAP b/16/exmmtest/EXMMTEST.MAP index d564f574..70abacfe 100644 --- a/16/exmmtest/EXMMTEST.MAP +++ b/16/exmmtest/EXMMTEST.MAP @@ -1,472 +1,516 @@ Start Stop Length Name Class - 00000H 04FBBH 04FBCH _TEXT CODE - 04FC0H 04FC0H 00000H _FARDATA FAR_DATA - 04FC0H 04FC0H 00000H _FARBSS FAR_BSS - 04FC0H 04FC0H 00000H _OVERLAY_ OVRINFO - 04FC0H 04FC0H 00000H _1STUB_ STUBSEG - 04FC0H 06163H 011A4H _DATA DATA - 06164H 06165H 00002H _CVTSEG DATA - 06166H 0616BH 00006H _SCNSEG DATA - 0616CH 0616CH 00000H _CONST CONST - 0616CH 0617DH 00012H _INIT_ INITDATA - 0617EH 0617EH 00000H _INITEND_ INITDATA - 0617EH 0617EH 00000H _EXIT_ EXITDATA - 0617EH 0617EH 00000H _EXITEND_ EXITDATA - 0617EH 061DFH 00062H _BSS BSS - 061E0H 061E0H 00000H _BSSEND BSSEND - 061E0H 0625FH 00080H _STACK STACK + 00000H 05880H 05881H _TEXT CODE + 05890H 05890H 00000H _FARDATA FAR_DATA + 05890H 05890H 00000H _FARBSS FAR_BSS + 05890H 05890H 00000H _OVERLAY_ OVRINFO + 05890H 05890H 00000H _1STUB_ STUBSEG + 05890H 06941H 010B2H _DATA DATA + 06942H 06943H 00002H _CVTSEG DATA + 06944H 06949H 00006H _SCNSEG DATA + 0694AH 0694AH 00000H _CONST CONST + 0694AH 06961H 00018H _INIT_ INITDATA + 06962H 06962H 00000H _INITEND_ INITDATA + 06962H 06962H 00000H _EXIT_ EXITDATA + 06962H 06962H 00000H _EXITEND_ EXITDATA + 06962H 069C9H 00068H _BSS BSS + 069CAH 069CAH 00000H _BSSEND BSSEND + 069D0H 06A4FH 00080H _STACK STACK Detailed map of segments 0000:0000 028F C=CODE S=_TEXT G=(none) M=c0.ASM ACBP=28 - 0000:028F 0283 C=CODE S=_TEXT G=(none) M=EXMMTEST.C ACBP=28 - 0000:0512 1947 C=CODE S=_TEXT G=(none) M=16_MM.C ACBP=28 - 0000:1E59 0442 C=CODE S=_TEXT G=(none) M=16_HEAD.C ACBP=28 - 0000:229B 0232 C=CODE S=_TEXT G=(none) M=16_CA.C ACBP=28 - 0000:24CD 0024 C=CODE S=_TEXT G=(none) M=ATEXIT ACBP=28 - 0000:24F1 0049 C=CODE S=_TEXT G=(none) M=CLOCK ACBP=28 - 0000:253A 0000 C=CODE S=_TEXT G=(none) M=CTYPE ACBP=28 - 0000:253A 003D C=CODE S=_TEXT G=(none) M=DOSFATTR ACBP=28 - 0000:2577 0089 C=CODE S=_TEXT G=(none) M=EXIT ACBP=28 - 0000:2600 0000 C=CODE S=_TEXT G=(none) M=FILES ACBP=28 - 0000:2600 0000 C=CODE S=_TEXT G=(none) M=FILES2 ACBP=28 - 0000:2600 0000 C=CODE S=_TEXT G=(none) M=FMODE ACBP=28 - 0000:2600 00AE C=CODE S=_TEXT G=(none) M=H_LDIV ACBP=28 - 0000:26AE 0021 C=CODE S=_TEXT G=(none) M=H_LLSH ACBP=28 - 0000:26CF 0021 C=CODE S=_TEXT G=(none) M=H_LURSH ACBP=28 - 0000:26F0 0060 C=CODE S=_TEXT G=(none) M=H_PADD ACBP=28 - 0000:2750 0028 C=CODE S=_TEXT G=(none) M=H_PSBP ACBP=28 - 0000:2778 004B C=CODE S=_TEXT G=(none) M=IOERROR ACBP=28 - 0000:27C3 0011 C=CODE S=_TEXT G=(none) M=ISATTY ACBP=28 - 0000:27D4 00A2 C=CODE S=_TEXT G=(none) M=LONGTOA ACBP=28 - 0000:2876 0029 C=CODE S=_TEXT G=(none) M=LSEEK ACBP=28 - 0000:289F 00B0 C=CODE S=_TEXT G=(none) M=MKNAME ACBP=28 - 0000:294F 0021 C=CODE S=_TEXT G=(none) M=N_PCMP ACBP=28 - 0000:2970 00B2 C=CODE S=_TEXT G=(none) M=SETUPIO ACBP=28 - 0000:2A22 0000 C=CODE S=_TEXT G=(none) M=STKLEN ACBP=28 - 0000:2A22 002C C=CODE S=_TEXT G=(none) M=TOLOWER ACBP=28 - 0000:2A4E 0018 C=CODE S=_TEXT G=(none) M=UNLINK ACBP=28 - 0000:2A66 04DB C=CODE S=_TEXT G=(none) M=VPRINTER ACBP=28 - 0000:2F41 009F C=CODE S=_TEXT G=(none) M=VRAM ACBP=28 - 0000:2FE0 0000 C=CODE S=_TEXT G=(none) M=WSCROLL ACBP=28 - 0000:2FE0 0030 C=CODE S=_TEXT G=(none) M=_STPCPY ACBP=28 - 0000:3010 0004 C=CODE S=_TEXT G=(none) M=CORELEFT ACBP=28 - 0000:3014 014E C=CODE S=_TEXT G=(none) M=CPRINTF ACBP=28 - 0000:3162 01A5 C=CODE S=_TEXT G=(none) M=CRTINIT ACBP=28 - 0000:3307 001F C=CODE S=_TEXT G=(none) M=CVTFAK ACBP=28 - 0000:3326 042D C=CODE S=_TEXT G=(none) M=FARHEAP ACBP=28 - 0000:3753 013E C=CODE S=_TEXT G=(none) M=FBRK ACBP=28 - 0000:3891 0050 C=CODE S=_TEXT G=(none) M=FCORELFT ACBP=28 - 0000:38E1 0054 C=CODE S=_TEXT G=(none) M=GETCH ACBP=28 - 0000:3935 00AC C=CODE S=_TEXT G=(none) M=GPTEXT ACBP=28 - 0000:39E1 0029 C=CODE S=_TEXT G=(none) M=IOCTL ACBP=28 - 0000:3A0A 0012 C=CODE S=_TEXT G=(none) M=KBHIT ACBP=28 - 0000:3A1C 009D C=CODE S=_TEXT G=(none) M=MOVETEXT ACBP=28 - 0000:3AB9 0017 C=CODE S=_TEXT G=(none) M=PUTCH ACBP=28 - 0000:3AD0 0004 C=CODE S=_TEXT G=(none) M=REALCVT ACBP=28 - 0000:3AD4 01C7 C=CODE S=_TEXT G=(none) M=SCREEN ACBP=28 - 0000:3C9B 0184 C=CODE S=_TEXT G=(none) M=SCROLL ACBP=28 - 0000:3E1F 0129 C=CODE S=_TEXT G=(none) M=SETARGV ACBP=28 - 0000:3F48 001C C=CODE S=_TEXT G=(none) M=SETBLOCK ACBP=28 - 0000:3F64 002C C=CODE S=_TEXT G=(none) M=WHEREXY ACBP=28 - 0000:3F90 001D C=CODE S=_TEXT G=(none) M=CHMODA ACBP=28 - 0000:3FAD 0026 C=CODE S=_TEXT G=(none) M=CLOSE ACBP=28 - 0000:3FD3 001E C=CODE S=_TEXT G=(none) M=CLOSEA ACBP=28 - 0000:3FF1 00B0 C=CODE S=_TEXT G=(none) M=FCLOSE ACBP=28 - 0000:40A1 00C6 C=CODE S=_TEXT G=(none) M=FFLUSH ACBP=28 - 0000:4167 0041 C=CODE S=_TEXT G=(none) M=FLENGTH ACBP=28 - 0000:41A8 0040 C=CODE S=_TEXT G=(none) M=FLUSHALL ACBP=28 - 0000:41E8 01FE C=CODE S=_TEXT G=(none) M=FOPEN ACBP=28 - 0000:43E6 001C C=CODE S=_TEXT G=(none) M=FPRINTF ACBP=28 - 0000:4402 01D8 C=CODE S=_TEXT G=(none) M=FSEEK ACBP=28 - 0000:45DA 0070 C=CODE S=_TEXT G=(none) M=LTOA1 ACBP=28 - 0000:464A 0024 C=CODE S=_TEXT G=(none) M=MEMCPY ACBP=28 - 0000:466E 0022 C=CODE S=_TEXT G=(none) M=MOVEDATA ACBP=28 - 0000:4690 018D C=CODE S=_TEXT G=(none) M=OPEN ACBP=28 - 0000:481D 004F C=CODE S=_TEXT G=(none) M=OPENA ACBP=28 - 0000:486C 001B C=CODE S=_TEXT G=(none) M=PRINTF ACBP=28 - 0000:4887 03A4 C=CODE S=_TEXT G=(none) M=PUTC ACBP=28 - 0000:4C2B 0111 C=CODE S=_TEXT G=(none) M=SETVBUF ACBP=28 - 0000:4D3C 003F C=CODE S=_TEXT G=(none) M=STRCAT ACBP=28 - 0000:4D7B 0029 C=CODE S=_TEXT G=(none) M=STRCPY ACBP=28 - 0000:4DA4 001F C=CODE S=_TEXT G=(none) M=STRLEN ACBP=28 - 0000:4DC3 0149 C=CODE S=_TEXT G=(none) M=WRITE ACBP=28 - 0000:4F0C 003C C=CODE S=_TEXT G=(none) M=WRITEA ACBP=28 - 0000:4F48 0003 C=CODE S=_TEXT G=(none) M=WRITEU ACBP=28 - 0000:4F4B 003B C=CODE S=_TEXT G=(none) M=XFCLOSE ACBP=28 - 0000:4F86 0036 C=CODE S=_TEXT G=(none) M=XFFLUSH ACBP=28 - 04FC:0000 0000 C=FAR_DATA S=_FARDATA G=(none) M=c0.ASM ACBP=68 - 04FC:0000 0000 C=FAR_BSS S=_FARBSS G=(none) M=c0.ASM ACBP=68 - 04FC:0000 0000 C=OVRINFO S=_OVERLAY_ G=(none) M=c0.ASM ACBP=68 - 04FC:0000 0000 C=STUBSEG S=_1STUB_ G=(none) M=c0.ASM ACBP=68 - 04FC:0000 0093 C=DATA S=_DATA G=DGROUP M=c0.ASM ACBP=68 - 04FC:0094 01E2 C=DATA S=_DATA G=DGROUP M=EXMMTEST.C ACBP=48 - 04FC:0276 0AFF C=DATA S=_DATA G=DGROUP M=16_MM.C ACBP=48 - 04FC:0D76 0004 C=DATA S=_DATA G=DGROUP M=16_HEAD.C ACBP=48 - 04FC:0D7A 002C C=DATA S=_DATA G=DGROUP M=16_CA.C ACBP=48 - 04FC:0DA6 0002 C=DATA S=_DATA G=DGROUP M=ATEXIT ACBP=48 - 04FC:0DA8 0000 C=DATA S=_DATA G=DGROUP M=CLOCK ACBP=48 - 04FC:0DA8 0101 C=DATA S=_DATA G=DGROUP M=CTYPE ACBP=48 - 04FC:0EAA 0000 C=DATA S=_DATA G=DGROUP M=DOSFATTR ACBP=48 - 04FC:0EAA 0006 C=DATA S=_DATA G=DGROUP M=EXIT ACBP=48 - 04FC:0EB0 0190 C=DATA S=_DATA G=DGROUP M=FILES ACBP=48 - 04FC:1040 002A C=DATA S=_DATA G=DGROUP M=FILES2 ACBP=48 - 04FC:106A 0004 C=DATA S=_DATA G=DGROUP M=FMODE ACBP=48 - 04FC:106E 0000 C=DATA S=_DATA G=DGROUP M=H_LDIV ACBP=48 - 04FC:106E 0000 C=DATA S=_DATA G=DGROUP M=H_LLSH ACBP=48 - 04FC:106E 0000 C=DATA S=_DATA G=DGROUP M=H_LURSH ACBP=48 - 04FC:106E 0000 C=DATA S=_DATA G=DGROUP M=H_PADD ACBP=48 - 04FC:106E 0000 C=DATA S=_DATA G=DGROUP M=H_PSBP ACBP=48 - 04FC:106E 005B C=DATA S=_DATA G=DGROUP M=IOERROR ACBP=48 - 04FC:10CA 0000 C=DATA S=_DATA G=DGROUP M=ISATTY ACBP=48 - 04FC:10CA 0000 C=DATA S=_DATA G=DGROUP M=LONGTOA ACBP=48 - 04FC:10CA 0000 C=DATA S=_DATA G=DGROUP M=LSEEK ACBP=48 - 04FC:10CA 0009 C=DATA S=_DATA G=DGROUP M=MKNAME ACBP=48 - 04FC:10D4 0000 C=DATA S=_DATA G=DGROUP M=N_PCMP ACBP=48 - 04FC:10D4 0000 C=DATA S=_DATA G=DGROUP M=SETUPIO ACBP=48 - 04FC:10D4 0002 C=DATA S=_DATA G=DGROUP M=STKLEN ACBP=48 - 04FC:10D6 0000 C=DATA S=_DATA G=DGROUP M=TOLOWER ACBP=48 - 04FC:10D6 0000 C=DATA S=_DATA G=DGROUP M=UNLINK ACBP=48 - 04FC:10D6 0067 C=DATA S=_DATA G=DGROUP M=VPRINTER ACBP=48 - 04FC:113E 0000 C=DATA S=_DATA G=DGROUP M=VRAM ACBP=48 - 04FC:113E 0002 C=DATA S=_DATA G=DGROUP M=WSCROLL ACBP=48 - 04FC:1140 0000 C=DATA S=_DATA G=DGROUP M=_STPCPY ACBP=48 - 04FC:1140 0000 C=DATA S=_DATA G=DGROUP M=CORELEFT ACBP=48 - 04FC:1140 0000 C=DATA S=_DATA G=DGROUP M=CPRINTF ACBP=48 - 04FC:1140 0018 C=DATA S=_DATA G=DGROUP M=CRTINIT ACBP=48 - 04FC:1158 0031 C=DATA S=_DATA G=DGROUP M=CVTFAK ACBP=48 - 04FC:118A 0000 C=DATA S=_DATA G=DGROUP M=FARHEAP ACBP=48 - 04FC:118A 0002 C=DATA S=_DATA G=DGROUP M=FBRK ACBP=48 - 04FC:118C 0000 C=DATA S=_DATA G=DGROUP M=FCORELFT ACBP=48 - 04FC:118C 0000 C=DATA S=_DATA G=DGROUP M=GETCH ACBP=48 - 04FC:118C 0000 C=DATA S=_DATA G=DGROUP M=GPTEXT ACBP=48 - 04FC:118C 0000 C=DATA S=_DATA G=DGROUP M=IOCTL ACBP=48 - 04FC:118C 0002 C=DATA S=_DATA G=DGROUP M=KBHIT ACBP=48 - 04FC:118E 0000 C=DATA S=_DATA G=DGROUP M=MOVETEXT ACBP=48 - 04FC:118E 0000 C=DATA S=_DATA G=DGROUP M=PUTCH ACBP=48 - 04FC:118E 0000 C=DATA S=_DATA G=DGROUP M=REALCVT ACBP=48 - 04FC:118E 0000 C=DATA S=_DATA G=DGROUP M=SCREEN ACBP=48 - 04FC:118E 0000 C=DATA S=_DATA G=DGROUP M=SCROLL ACBP=48 - 04FC:118E 0010 C=DATA S=_DATA G=DGROUP M=SETARGV ACBP=48 - 04FC:119E 0000 C=DATA S=_DATA G=DGROUP M=SETBLOCK ACBP=48 - 04FC:119E 0000 C=DATA S=_DATA G=DGROUP M=WHEREXY ACBP=48 - 04FC:119E 0000 C=DATA S=_DATA G=DGROUP M=CHMODA ACBP=48 - 04FC:119E 0000 C=DATA S=_DATA G=DGROUP M=CLOSE ACBP=48 - 04FC:119E 0000 C=DATA S=_DATA G=DGROUP M=CLOSEA ACBP=48 - 04FC:119E 0000 C=DATA S=_DATA G=DGROUP M=FCLOSE ACBP=48 - 04FC:119E 0000 C=DATA S=_DATA G=DGROUP M=FFLUSH ACBP=48 - 04FC:119E 0000 C=DATA S=_DATA G=DGROUP M=FLENGTH ACBP=48 - 04FC:119E 0000 C=DATA S=_DATA G=DGROUP M=FLUSHALL ACBP=48 - 04FC:119E 0000 C=DATA S=_DATA G=DGROUP M=FOPEN ACBP=48 - 04FC:119E 0000 C=DATA S=_DATA G=DGROUP M=FPRINTF ACBP=48 - 04FC:119E 0000 C=DATA S=_DATA G=DGROUP M=FSEEK ACBP=48 - 04FC:119E 0000 C=DATA S=_DATA G=DGROUP M=LTOA1 ACBP=48 - 04FC:119E 0000 C=DATA S=_DATA G=DGROUP M=MEMCPY ACBP=48 - 04FC:119E 0000 C=DATA S=_DATA G=DGROUP M=MOVEDATA ACBP=48 - 04FC:119E 0000 C=DATA S=_DATA G=DGROUP M=OPEN ACBP=48 - 04FC:119E 0000 C=DATA S=_DATA G=DGROUP M=OPENA ACBP=48 - 04FC:119E 0000 C=DATA S=_DATA G=DGROUP M=PRINTF ACBP=48 - 04FC:119E 0001 C=DATA S=_DATA G=DGROUP M=PUTC ACBP=48 - 04FC:11A0 0004 C=DATA S=_DATA G=DGROUP M=SETVBUF ACBP=48 - 04FC:11A4 0000 C=DATA S=_DATA G=DGROUP M=STRCAT ACBP=48 - 04FC:11A4 0000 C=DATA S=_DATA G=DGROUP M=STRCPY ACBP=48 - 04FC:11A4 0000 C=DATA S=_DATA G=DGROUP M=STRLEN ACBP=48 - 04FC:11A4 0000 C=DATA S=_DATA G=DGROUP M=WRITE ACBP=48 - 04FC:11A4 0000 C=DATA S=_DATA G=DGROUP M=WRITEA ACBP=48 - 04FC:11A4 0000 C=DATA S=_DATA G=DGROUP M=WRITEU ACBP=48 - 04FC:11A4 0000 C=DATA S=_DATA G=DGROUP M=XFCLOSE ACBP=48 - 04FC:11A4 0000 C=DATA S=_DATA G=DGROUP M=XFFLUSH ACBP=48 - 04FC:11A4 0000 C=DATA S=_CVTSEG G=DGROUP M=c0.ASM ACBP=48 - 04FC:11A4 0002 C=DATA S=_CVTSEG G=DGROUP M=CVTFAK ACBP=48 - 04FC:11A6 0000 C=DATA S=_CVTSEG G=DGROUP M=REALCVT ACBP=48 - 04FC:11A6 0000 C=DATA S=_SCNSEG G=DGROUP M=c0.ASM ACBP=48 - 04FC:11A6 0006 C=DATA S=_SCNSEG G=DGROUP M=CVTFAK ACBP=48 - 04FC:11AC 0000 C=CONST S=_CONST G=DGROUP M=c0.ASM ACBP=48 - 04FC:11AC 0000 C=INITDATA S=_INIT_ G=DGROUP M=c0.ASM ACBP=48 - 04FC:11AC 0006 C=INITDATA S=_INIT_ G=DGROUP M=SETUPIO ACBP=48 - 04FC:11B2 0006 C=INITDATA S=_INIT_ G=DGROUP M=CRTINIT ACBP=48 - 04FC:11B8 0006 C=INITDATA S=_INIT_ G=DGROUP M=SETARGV ACBP=48 - 04FC:11BE 0000 C=INITDATA S=_INITEND_ G=DGROUP M=c0.ASM ACBP=28 - 04FC:11BE 0000 C=EXITDATA S=_EXIT_ G=DGROUP M=c0.ASM ACBP=48 - 04FC:11BE 0000 C=EXITDATA S=_EXITEND_ G=DGROUP M=c0.ASM ACBP=28 - 04FC:11BE 0000 C=BSS S=_BSS G=DGROUP M=c0.ASM ACBP=48 - 04FC:11BE 0000 C=BSS S=_BSS G=DGROUP M=EXMMTEST.C ACBP=48 - 04FC:11BE 0006 C=BSS S=_BSS G=DGROUP M=16_MM.C ACBP=48 - 04FC:11C4 0000 C=BSS S=_BSS G=DGROUP M=16_HEAD.C ACBP=48 - 04FC:11C4 000A C=BSS S=_BSS G=DGROUP M=16_CA.C ACBP=48 - 04FC:11CE 0040 C=BSS S=_BSS G=DGROUP M=ATEXIT ACBP=48 - 04FC:120E 0001 C=BSS S=_BSS G=DGROUP M=CLOCK ACBP=48 - 04FC:1210 0000 C=BSS S=_BSS G=DGROUP M=DOSFATTR ACBP=48 - 04FC:1210 0000 C=BSS S=_BSS G=DGROUP M=IOERROR ACBP=48 - 04FC:1210 0000 C=BSS S=_BSS G=DGROUP M=ISATTY ACBP=48 - 04FC:1210 0000 C=BSS S=_BSS G=DGROUP M=LONGTOA ACBP=48 - 04FC:1210 0000 C=BSS S=_BSS G=DGROUP M=LSEEK ACBP=48 - 04FC:1210 000D C=BSS S=_BSS G=DGROUP M=MKNAME ACBP=48 - 04FC:121E 0000 C=BSS S=_BSS G=DGROUP M=SETUPIO ACBP=48 - 04FC:121E 0000 C=BSS S=_BSS G=DGROUP M=UNLINK ACBP=48 - 04FC:121E 0000 C=BSS S=_BSS G=DGROUP M=VPRINTER ACBP=48 - 04FC:121E 0000 C=BSS S=_BSS G=DGROUP M=VRAM ACBP=48 - 04FC:121E 0000 C=BSS S=_BSS G=DGROUP M=CORELEFT ACBP=48 - 04FC:121E 0000 C=BSS S=_BSS G=DGROUP M=CRTINIT ACBP=48 - 04FC:121E 0000 C=BSS S=_BSS G=DGROUP M=GETCH ACBP=48 - 04FC:121E 0000 C=BSS S=_BSS G=DGROUP M=IOCTL ACBP=48 - 04FC:121E 0000 C=BSS S=_BSS G=DGROUP M=KBHIT ACBP=48 - 04FC:121E 0000 C=BSS S=_BSS G=DGROUP M=SETBLOCK ACBP=48 - 04FC:121E 0000 C=BSS S=_BSS G=DGROUP M=CHMODA ACBP=48 - 04FC:121E 0000 C=BSS S=_BSS G=DGROUP M=CLOSEA ACBP=48 - 04FC:121E 0000 C=BSS S=_BSS G=DGROUP M=FLENGTH ACBP=48 - 04FC:121E 0000 C=BSS S=_BSS G=DGROUP M=MEMCPY ACBP=48 - 04FC:121E 0000 C=BSS S=_BSS G=DGROUP M=MOVEDATA ACBP=48 - 04FC:121E 0000 C=BSS S=_BSS G=DGROUP M=OPEN ACBP=48 - 04FC:121E 0000 C=BSS S=_BSS G=DGROUP M=OPENA ACBP=48 - 04FC:121E 0001 C=BSS S=_BSS G=DGROUP M=PUTC ACBP=48 - 04FC:1220 0000 C=BSS S=_BSS G=DGROUP M=STRCAT ACBP=48 - 04FC:1220 0000 C=BSS S=_BSS G=DGROUP M=STRCPY ACBP=48 - 04FC:1220 0000 C=BSS S=_BSS G=DGROUP M=STRLEN ACBP=48 - 04FC:1220 0000 C=BSS S=_BSS G=DGROUP M=WRITEA ACBP=48 - 04FC:1220 0000 C=BSSEND S=_BSSEND G=DGROUP M=c0.ASM ACBP=28 - 061E:0000 0080 C=STACK S=_STACK G=(none) M=c0.ASM ACBP=74 + 0000:028F 05F7 C=CODE S=_TEXT G=(none) M=SRC\LIB\NYAN\KITTEN.C ACBP=28 + 0000:0886 0290 C=CODE S=_TEXT G=(none) M=SRC\LIB\16_HC.C ACBP=28 + 0000:0B16 0235 C=CODE S=_TEXT G=(none) M=SRC\EXMMTEST.C ACBP=28 + 0000:0D4B 0232 C=CODE S=_TEXT G=(none) M=SRC\LIB\16_CA.C ACBP=28 + 0000:0F7D 0242 C=CODE S=_TEXT G=(none) M=SRC\LIB\16_HEAD.C ACBP=28 + 0000:11BF 1992 C=CODE S=_TEXT G=(none) M=SRC\LIB\16_MM.C ACBP=28 + 0000:2B51 0024 C=CODE S=_TEXT G=(none) M=ATEXIT ACBP=28 + 0000:2B75 0049 C=CODE S=_TEXT G=(none) M=CLOCK ACBP=28 + 0000:2BBE 0000 C=CODE S=_TEXT G=(none) M=CTYPE ACBP=28 + 0000:2BBE 003D C=CODE S=_TEXT G=(none) M=DOSFATTR ACBP=28 + 0000:2BFB 0089 C=CODE S=_TEXT G=(none) M=EXIT ACBP=28 + 0000:2C84 0000 C=CODE S=_TEXT G=(none) M=FILES ACBP=28 + 0000:2C84 0000 C=CODE S=_TEXT G=(none) M=FILES2 ACBP=28 + 0000:2C84 0000 C=CODE S=_TEXT G=(none) M=FMODE ACBP=28 + 0000:2C84 0021 C=CODE S=_TEXT G=(none) M=H_LLSH ACBP=28 + 0000:2CA5 0021 C=CODE S=_TEXT G=(none) M=H_LURSH ACBP=28 + 0000:2CC6 0060 C=CODE S=_TEXT G=(none) M=H_PADD ACBP=28 + 0000:2D26 0028 C=CODE S=_TEXT G=(none) M=H_PSBP ACBP=28 + 0000:2D4E 004B C=CODE S=_TEXT G=(none) M=IOERROR ACBP=28 + 0000:2D99 0011 C=CODE S=_TEXT G=(none) M=ISATTY ACBP=28 + 0000:2DAA 00A2 C=CODE S=_TEXT G=(none) M=LONGTOA ACBP=28 + 0000:2E4C 0029 C=CODE S=_TEXT G=(none) M=LSEEK ACBP=28 + 0000:2E75 00B0 C=CODE S=_TEXT G=(none) M=MKNAME ACBP=28 + 0000:2F25 0021 C=CODE S=_TEXT G=(none) M=N_PCMP ACBP=28 + 0000:2F46 002F C=CODE S=_TEXT G=(none) M=READA ACBP=28 + 0000:2F75 00B2 C=CODE S=_TEXT G=(none) M=SETUPIO ACBP=28 + 0000:3027 0000 C=CODE S=_TEXT G=(none) M=STKLEN ACBP=28 + 0000:3027 002C C=CODE S=_TEXT G=(none) M=TOLOWER ACBP=28 + 0000:3053 0018 C=CODE S=_TEXT G=(none) M=UNLINK ACBP=28 + 0000:306B 04DB C=CODE S=_TEXT G=(none) M=VPRINTER ACBP=28 + 0000:3546 009F C=CODE S=_TEXT G=(none) M=VRAM ACBP=28 + 0000:35E5 0000 C=CODE S=_TEXT G=(none) M=WSCROLL ACBP=28 + 0000:35E5 0030 C=CODE S=_TEXT G=(none) M=_STPCPY ACBP=28 + 0000:3615 0004 C=CODE S=_TEXT G=(none) M=CORELEFT ACBP=28 + 0000:3619 014E C=CODE S=_TEXT G=(none) M=CPRINTF ACBP=28 + 0000:3767 01A5 C=CODE S=_TEXT G=(none) M=CRTINIT ACBP=28 + 0000:390C 001F C=CODE S=_TEXT G=(none) M=CVTFAK ACBP=28 + 0000:392B 042D C=CODE S=_TEXT G=(none) M=FARHEAP ACBP=28 + 0000:3D58 013E C=CODE S=_TEXT G=(none) M=FBRK ACBP=28 + 0000:3E96 0050 C=CODE S=_TEXT G=(none) M=FCORELFT ACBP=28 + 0000:3EE6 0054 C=CODE S=_TEXT G=(none) M=GETCH ACBP=28 + 0000:3F3A 00AC C=CODE S=_TEXT G=(none) M=GPTEXT ACBP=28 + 0000:3FE6 0029 C=CODE S=_TEXT G=(none) M=IOCTL ACBP=28 + 0000:400F 0012 C=CODE S=_TEXT G=(none) M=KBHIT ACBP=28 + 0000:4021 009D C=CODE S=_TEXT G=(none) M=MOVETEXT ACBP=28 + 0000:40BE 0017 C=CODE S=_TEXT G=(none) M=PUTCH ACBP=28 + 0000:40D5 0004 C=CODE S=_TEXT G=(none) M=REALCVT ACBP=28 + 0000:40D9 01C7 C=CODE S=_TEXT G=(none) M=SCREEN ACBP=28 + 0000:42A0 0184 C=CODE S=_TEXT G=(none) M=SCROLL ACBP=28 + 0000:4424 0129 C=CODE S=_TEXT G=(none) M=SETARGV ACBP=28 + 0000:454D 001C C=CODE S=_TEXT G=(none) M=SETBLOCK ACBP=28 + 0000:4569 0054 C=CODE S=_TEXT G=(none) M=SETENVP ACBP=28 + 0000:45BD 002C C=CODE S=_TEXT G=(none) M=WHEREXY ACBP=28 + 0000:45E9 001D C=CODE S=_TEXT G=(none) M=CHMODA ACBP=28 + 0000:4606 0026 C=CODE S=_TEXT G=(none) M=CLOSE ACBP=28 + 0000:462C 001E C=CODE S=_TEXT G=(none) M=CLOSEA ACBP=28 + 0000:464A 00B0 C=CODE S=_TEXT G=(none) M=FCLOSE ACBP=28 + 0000:46FA 00C6 C=CODE S=_TEXT G=(none) M=FFLUSH ACBP=28 + 0000:47C0 0041 C=CODE S=_TEXT G=(none) M=FLENGTH ACBP=28 + 0000:4801 0040 C=CODE S=_TEXT G=(none) M=FLUSHALL ACBP=28 + 0000:4841 01FE C=CODE S=_TEXT G=(none) M=FOPEN ACBP=28 + 0000:4A3F 001C C=CODE S=_TEXT G=(none) M=FPRINTF ACBP=28 + 0000:4A5B 01D8 C=CODE S=_TEXT G=(none) M=FSEEK ACBP=28 + 0000:4C33 0070 C=CODE S=_TEXT G=(none) M=GETENV ACBP=28 + 0000:4CA3 0070 C=CODE S=_TEXT G=(none) M=LTOA1 ACBP=28 + 0000:4D13 0024 C=CODE S=_TEXT G=(none) M=MEMCPY ACBP=28 + 0000:4D37 0022 C=CODE S=_TEXT G=(none) M=MOVEDATA ACBP=28 + 0000:4D59 018D C=CODE S=_TEXT G=(none) M=OPEN ACBP=28 + 0000:4EE6 004F C=CODE S=_TEXT G=(none) M=OPENA ACBP=28 + 0000:4F35 001B C=CODE S=_TEXT G=(none) M=PRINTF ACBP=28 + 0000:4F50 03A4 C=CODE S=_TEXT G=(none) M=PUTC ACBP=28 + 0000:52F4 00CB C=CODE S=_TEXT G=(none) M=READ ACBP=28 + 0000:53BF 0003 C=CODE S=_TEXT G=(none) M=READU ACBP=28 + 0000:53C2 0111 C=CODE S=_TEXT G=(none) M=SETVBUF ACBP=28 + 0000:54D3 0081 C=CODE S=_TEXT G=(none) M=SPRINTF ACBP=28 + 0000:5554 003F C=CODE S=_TEXT G=(none) M=STRCAT ACBP=28 + 0000:5593 003D C=CODE S=_TEXT G=(none) M=STRCHR ACBP=28 + 0000:55D0 0030 C=CODE S=_TEXT G=(none) M=STRCMP ACBP=28 + 0000:5600 0029 C=CODE S=_TEXT G=(none) M=STRCPY ACBP=28 + 0000:5629 0040 C=CODE S=_TEXT G=(none) M=STRDUP ACBP=28 + 0000:5669 001F C=CODE S=_TEXT G=(none) M=STRLEN ACBP=28 + 0000:5688 0149 C=CODE S=_TEXT G=(none) M=WRITE ACBP=28 + 0000:57D1 003C C=CODE S=_TEXT G=(none) M=WRITEA ACBP=28 + 0000:580D 0003 C=CODE S=_TEXT G=(none) M=WRITEU ACBP=28 + 0000:5810 003B C=CODE S=_TEXT G=(none) M=XFCLOSE ACBP=28 + 0000:584B 0036 C=CODE S=_TEXT G=(none) M=XFFLUSH ACBP=28 + 0589:0000 0000 C=FAR_DATA S=_FARDATA G=(none) M=c0.ASM ACBP=68 + 0589:0000 0000 C=FAR_BSS S=_FARBSS G=(none) M=c0.ASM ACBP=68 + 0589:0000 0000 C=OVRINFO S=_OVERLAY_ G=(none) M=c0.ASM ACBP=68 + 0589:0000 0000 C=STUBSEG S=_1STUB_ G=(none) M=c0.ASM ACBP=68 + 0589:0000 0093 C=DATA S=_DATA G=DGROUP M=c0.ASM ACBP=68 + 0589:0094 0045 C=DATA S=_DATA G=DGROUP M=SRC\LIB\NYAN\KITTEN.C ACBP=48 + 0589:00DA 0014 C=DATA S=_DATA G=DGROUP M=SRC\LIB\16_HC.C ACBP=48 + 0589:00EE 0187 C=DATA S=_DATA G=DGROUP M=SRC\EXMMTEST.C ACBP=48 + 0589:0276 002C C=DATA S=_DATA G=DGROUP M=SRC\LIB\16_CA.C ACBP=48 + 0589:02A2 0010 C=DATA S=_DATA G=DGROUP M=SRC\LIB\16_HEAD.C ACBP=48 + 0589:02B2 09FD C=DATA S=_DATA G=DGROUP M=SRC\LIB\16_MM.C ACBP=48 + 0589:0CB0 0002 C=DATA S=_DATA G=DGROUP M=ATEXIT ACBP=48 + 0589:0CB2 0000 C=DATA S=_DATA G=DGROUP M=CLOCK ACBP=48 + 0589:0CB2 0101 C=DATA S=_DATA G=DGROUP M=CTYPE ACBP=48 + 0589:0DB4 0000 C=DATA S=_DATA G=DGROUP M=DOSFATTR ACBP=48 + 0589:0DB4 0006 C=DATA S=_DATA G=DGROUP M=EXIT ACBP=48 + 0589:0DBA 0190 C=DATA S=_DATA G=DGROUP M=FILES ACBP=48 + 0589:0F4A 002A C=DATA S=_DATA G=DGROUP M=FILES2 ACBP=48 + 0589:0F74 0004 C=DATA S=_DATA G=DGROUP M=FMODE ACBP=48 + 0589:0F78 0000 C=DATA S=_DATA G=DGROUP M=H_LLSH ACBP=48 + 0589:0F78 0000 C=DATA S=_DATA G=DGROUP M=H_LURSH ACBP=48 + 0589:0F78 0000 C=DATA S=_DATA G=DGROUP M=H_PADD ACBP=48 + 0589:0F78 0000 C=DATA S=_DATA G=DGROUP M=H_PSBP ACBP=48 + 0589:0F78 005B C=DATA S=_DATA G=DGROUP M=IOERROR ACBP=48 + 0589:0FD4 0000 C=DATA S=_DATA G=DGROUP M=ISATTY ACBP=48 + 0589:0FD4 0000 C=DATA S=_DATA G=DGROUP M=LONGTOA ACBP=48 + 0589:0FD4 0000 C=DATA S=_DATA G=DGROUP M=LSEEK ACBP=48 + 0589:0FD4 0009 C=DATA S=_DATA G=DGROUP M=MKNAME ACBP=48 + 0589:0FDE 0000 C=DATA S=_DATA G=DGROUP M=N_PCMP ACBP=48 + 0589:0FDE 0000 C=DATA S=_DATA G=DGROUP M=READA ACBP=48 + 0589:0FDE 0000 C=DATA S=_DATA G=DGROUP M=SETUPIO ACBP=48 + 0589:0FDE 0002 C=DATA S=_DATA G=DGROUP M=STKLEN ACBP=48 + 0589:0FE0 0000 C=DATA S=_DATA G=DGROUP M=TOLOWER ACBP=48 + 0589:0FE0 0000 C=DATA S=_DATA G=DGROUP M=UNLINK ACBP=48 + 0589:0FE0 0067 C=DATA S=_DATA G=DGROUP M=VPRINTER ACBP=48 + 0589:1048 0000 C=DATA S=_DATA G=DGROUP M=VRAM ACBP=48 + 0589:1048 0002 C=DATA S=_DATA G=DGROUP M=WSCROLL ACBP=48 + 0589:104A 0000 C=DATA S=_DATA G=DGROUP M=_STPCPY ACBP=48 + 0589:104A 0000 C=DATA S=_DATA G=DGROUP M=CORELEFT ACBP=48 + 0589:104A 0000 C=DATA S=_DATA G=DGROUP M=CPRINTF ACBP=48 + 0589:104A 0018 C=DATA S=_DATA G=DGROUP M=CRTINIT ACBP=48 + 0589:1062 0031 C=DATA S=_DATA G=DGROUP M=CVTFAK ACBP=48 + 0589:1094 0000 C=DATA S=_DATA G=DGROUP M=FARHEAP ACBP=48 + 0589:1094 0002 C=DATA S=_DATA G=DGROUP M=FBRK ACBP=48 + 0589:1096 0000 C=DATA S=_DATA G=DGROUP M=FCORELFT ACBP=48 + 0589:1096 0000 C=DATA S=_DATA G=DGROUP M=GETCH ACBP=48 + 0589:1096 0000 C=DATA S=_DATA G=DGROUP M=GPTEXT ACBP=48 + 0589:1096 0000 C=DATA S=_DATA G=DGROUP M=IOCTL ACBP=48 + 0589:1096 0002 C=DATA S=_DATA G=DGROUP M=KBHIT ACBP=48 + 0589:1098 0000 C=DATA S=_DATA G=DGROUP M=MOVETEXT ACBP=48 + 0589:1098 0000 C=DATA S=_DATA G=DGROUP M=PUTCH ACBP=48 + 0589:1098 0000 C=DATA S=_DATA G=DGROUP M=REALCVT ACBP=48 + 0589:1098 0000 C=DATA S=_DATA G=DGROUP M=SCREEN ACBP=48 + 0589:1098 0000 C=DATA S=_DATA G=DGROUP M=SCROLL ACBP=48 + 0589:1098 0010 C=DATA S=_DATA G=DGROUP M=SETARGV ACBP=48 + 0589:10A8 0000 C=DATA S=_DATA G=DGROUP M=SETBLOCK ACBP=48 + 0589:10A8 0004 C=DATA S=_DATA G=DGROUP M=SETENVP ACBP=48 + 0589:10AC 0000 C=DATA S=_DATA G=DGROUP M=WHEREXY ACBP=48 + 0589:10AC 0000 C=DATA S=_DATA G=DGROUP M=CHMODA ACBP=48 + 0589:10AC 0000 C=DATA S=_DATA G=DGROUP M=CLOSE ACBP=48 + 0589:10AC 0000 C=DATA S=_DATA G=DGROUP M=CLOSEA ACBP=48 + 0589:10AC 0000 C=DATA S=_DATA G=DGROUP M=FCLOSE ACBP=48 + 0589:10AC 0000 C=DATA S=_DATA G=DGROUP M=FFLUSH ACBP=48 + 0589:10AC 0000 C=DATA S=_DATA G=DGROUP M=FLENGTH ACBP=48 + 0589:10AC 0000 C=DATA S=_DATA G=DGROUP M=FLUSHALL ACBP=48 + 0589:10AC 0000 C=DATA S=_DATA G=DGROUP M=FOPEN ACBP=48 + 0589:10AC 0000 C=DATA S=_DATA G=DGROUP M=FPRINTF ACBP=48 + 0589:10AC 0000 C=DATA S=_DATA G=DGROUP M=FSEEK ACBP=48 + 0589:10AC 0000 C=DATA S=_DATA G=DGROUP M=GETENV ACBP=48 + 0589:10AC 0000 C=DATA S=_DATA G=DGROUP M=LTOA1 ACBP=48 + 0589:10AC 0000 C=DATA S=_DATA G=DGROUP M=MEMCPY ACBP=48 + 0589:10AC 0000 C=DATA S=_DATA G=DGROUP M=MOVEDATA ACBP=48 + 0589:10AC 0000 C=DATA S=_DATA G=DGROUP M=OPEN ACBP=48 + 0589:10AC 0000 C=DATA S=_DATA G=DGROUP M=OPENA ACBP=48 + 0589:10AC 0000 C=DATA S=_DATA G=DGROUP M=PRINTF ACBP=48 + 0589:10AC 0001 C=DATA S=_DATA G=DGROUP M=PUTC ACBP=48 + 0589:10AE 0000 C=DATA S=_DATA G=DGROUP M=READ ACBP=48 + 0589:10AE 0000 C=DATA S=_DATA G=DGROUP M=READU ACBP=48 + 0589:10AE 0004 C=DATA S=_DATA G=DGROUP M=SETVBUF ACBP=48 + 0589:10B2 0000 C=DATA S=_DATA G=DGROUP M=SPRINTF ACBP=48 + 0589:10B2 0000 C=DATA S=_DATA G=DGROUP M=STRCAT ACBP=48 + 0589:10B2 0000 C=DATA S=_DATA G=DGROUP M=STRCHR ACBP=48 + 0589:10B2 0000 C=DATA S=_DATA G=DGROUP M=STRCMP ACBP=48 + 0589:10B2 0000 C=DATA S=_DATA G=DGROUP M=STRCPY ACBP=48 + 0589:10B2 0000 C=DATA S=_DATA G=DGROUP M=STRDUP ACBP=48 + 0589:10B2 0000 C=DATA S=_DATA G=DGROUP M=STRLEN ACBP=48 + 0589:10B2 0000 C=DATA S=_DATA G=DGROUP M=WRITE ACBP=48 + 0589:10B2 0000 C=DATA S=_DATA G=DGROUP M=WRITEA ACBP=48 + 0589:10B2 0000 C=DATA S=_DATA G=DGROUP M=WRITEU ACBP=48 + 0589:10B2 0000 C=DATA S=_DATA G=DGROUP M=XFCLOSE ACBP=48 + 0589:10B2 0000 C=DATA S=_DATA G=DGROUP M=XFFLUSH ACBP=48 + 0589:10B2 0000 C=DATA S=_CVTSEG G=DGROUP M=c0.ASM ACBP=48 + 0589:10B2 0002 C=DATA S=_CVTSEG G=DGROUP M=CVTFAK ACBP=48 + 0589:10B4 0000 C=DATA S=_CVTSEG G=DGROUP M=REALCVT ACBP=48 + 0589:10B4 0000 C=DATA S=_SCNSEG G=DGROUP M=c0.ASM ACBP=48 + 0589:10B4 0006 C=DATA S=_SCNSEG G=DGROUP M=CVTFAK ACBP=48 + 0589:10BA 0000 C=CONST S=_CONST G=DGROUP M=c0.ASM ACBP=48 + 0589:10BA 0000 C=INITDATA S=_INIT_ G=DGROUP M=c0.ASM ACBP=48 + 0589:10BA 0006 C=INITDATA S=_INIT_ G=DGROUP M=SETUPIO ACBP=48 + 0589:10C0 0006 C=INITDATA S=_INIT_ G=DGROUP M=CRTINIT ACBP=48 + 0589:10C6 0006 C=INITDATA S=_INIT_ G=DGROUP M=SETARGV ACBP=48 + 0589:10CC 0006 C=INITDATA S=_INIT_ G=DGROUP M=SETENVP ACBP=48 + 0589:10D2 0000 C=INITDATA S=_INITEND_ G=DGROUP M=c0.ASM ACBP=28 + 0589:10D2 0000 C=EXITDATA S=_EXIT_ G=DGROUP M=c0.ASM ACBP=48 + 0589:10D2 0000 C=EXITDATA S=_EXITEND_ G=DGROUP M=c0.ASM ACBP=28 + 0589:10D2 0000 C=BSS S=_BSS G=DGROUP M=c0.ASM ACBP=48 + 0589:10D2 0004 C=BSS S=_BSS G=DGROUP M=SRC\LIB\NYAN\KITTEN.C ACBP=48 + 0589:10D6 0002 C=BSS S=_BSS G=DGROUP M=SRC\LIB\16_HC.C ACBP=48 + 0589:10D8 0000 C=BSS S=_BSS G=DGROUP M=SRC\EXMMTEST.C ACBP=48 + 0589:10D8 000A C=BSS S=_BSS G=DGROUP M=SRC\LIB\16_CA.C ACBP=48 + 0589:10E2 0000 C=BSS S=_BSS G=DGROUP M=SRC\LIB\16_HEAD.C ACBP=48 + 0589:10E2 0006 C=BSS S=_BSS G=DGROUP M=SRC\LIB\16_MM.C ACBP=48 + 0589:10E8 0040 C=BSS S=_BSS G=DGROUP M=ATEXIT ACBP=48 + 0589:1128 0001 C=BSS S=_BSS G=DGROUP M=CLOCK ACBP=48 + 0589:112A 0000 C=BSS S=_BSS G=DGROUP M=DOSFATTR ACBP=48 + 0589:112A 0000 C=BSS S=_BSS G=DGROUP M=IOERROR ACBP=48 + 0589:112A 0000 C=BSS S=_BSS G=DGROUP M=ISATTY ACBP=48 + 0589:112A 0000 C=BSS S=_BSS G=DGROUP M=LONGTOA ACBP=48 + 0589:112A 0000 C=BSS S=_BSS G=DGROUP M=LSEEK ACBP=48 + 0589:112A 000D C=BSS S=_BSS G=DGROUP M=MKNAME ACBP=48 + 0589:1138 0000 C=BSS S=_BSS G=DGROUP M=READA ACBP=48 + 0589:1138 0000 C=BSS S=_BSS G=DGROUP M=SETUPIO ACBP=48 + 0589:1138 0000 C=BSS S=_BSS G=DGROUP M=UNLINK ACBP=48 + 0589:1138 0000 C=BSS S=_BSS G=DGROUP M=VPRINTER ACBP=48 + 0589:1138 0000 C=BSS S=_BSS G=DGROUP M=VRAM ACBP=48 + 0589:1138 0000 C=BSS S=_BSS G=DGROUP M=CORELEFT ACBP=48 + 0589:1138 0000 C=BSS S=_BSS G=DGROUP M=CRTINIT ACBP=48 + 0589:1138 0000 C=BSS S=_BSS G=DGROUP M=GETCH ACBP=48 + 0589:1138 0000 C=BSS S=_BSS G=DGROUP M=IOCTL ACBP=48 + 0589:1138 0000 C=BSS S=_BSS G=DGROUP M=KBHIT ACBP=48 + 0589:1138 0000 C=BSS S=_BSS G=DGROUP M=SETBLOCK ACBP=48 + 0589:1138 0000 C=BSS S=_BSS G=DGROUP M=CHMODA ACBP=48 + 0589:1138 0000 C=BSS S=_BSS G=DGROUP M=CLOSEA ACBP=48 + 0589:1138 0000 C=BSS S=_BSS G=DGROUP M=FLENGTH ACBP=48 + 0589:1138 0000 C=BSS S=_BSS G=DGROUP M=GETENV ACBP=48 + 0589:1138 0000 C=BSS S=_BSS G=DGROUP M=MEMCPY ACBP=48 + 0589:1138 0000 C=BSS S=_BSS G=DGROUP M=MOVEDATA ACBP=48 + 0589:1138 0000 C=BSS S=_BSS G=DGROUP M=OPEN ACBP=48 + 0589:1138 0000 C=BSS S=_BSS G=DGROUP M=OPENA ACBP=48 + 0589:1138 0001 C=BSS S=_BSS G=DGROUP M=PUTC ACBP=48 + 0589:113A 0000 C=BSS S=_BSS G=DGROUP M=READ ACBP=48 + 0589:113A 0000 C=BSS S=_BSS G=DGROUP M=STRCAT ACBP=48 + 0589:113A 0000 C=BSS S=_BSS G=DGROUP M=STRCHR ACBP=48 + 0589:113A 0000 C=BSS S=_BSS G=DGROUP M=STRCMP ACBP=48 + 0589:113A 0000 C=BSS S=_BSS G=DGROUP M=STRCPY ACBP=48 + 0589:113A 0000 C=BSS S=_BSS G=DGROUP M=STRLEN ACBP=48 + 0589:113A 0000 C=BSS S=_BSS G=DGROUP M=WRITEA ACBP=48 + 0589:113A 0000 C=BSSEND S=_BSSEND G=DGROUP M=c0.ASM ACBP=28 + 069D:0000 0080 C=STACK S=_STACK G=(none) M=c0.ASM ACBP=74 Address Publics by Name - 04FC:0000 idle DATASEG@ + 0589:0000 idle DATASEG@ 0000:028B idle DGROUP@ - 0000:2603 idle F_LDIV@ - 0000:2612 idle F_LMOD@ - 0000:260A idle F_LUDIV@ - 0000:261A idle F_LUMOD@ - 0000:26B1 idle F_LXLSH@ - 0000:26D2 idle F_LXURSH@ - 0000:26F3 idle F_PADD@ - 0000:2753 idle F_PSBP@ - 0000:2722 idle F_PSUB@ - 0000:2603 idle LDIV@ - 0000:2612 idle LMOD@ - 0000:260A idle LUDIV@ - 0000:261A idle LUMOD@ - 0000:26B1 idle LXLSH@ - 0000:26D2 idle LXURSH@ - 0000:2600 idle N_LDIV@ - 0000:260F idle N_LMOD@ - 0000:2607 N_LUDIV@ - 0000:2617 idle N_LUMOD@ - 0000:26AE N_LXLSH@ - 0000:26CF N_LXURSH@ - 0000:26F0 N_PADD@ - 0000:294F N_PCMP@ - 0000:2750 N_PSBP@ - 0000:271F idle N_PSUB@ - 0000:26F3 idle PADD@ - 0000:2753 idle PSBP@ - 0000:2722 idle PSUB@ + 0000:2C87 idle F_LXLSH@ + 0000:2CA8 idle F_LXURSH@ + 0000:2CC9 idle F_PADD@ + 0000:2D29 idle F_PSBP@ + 0000:2CF8 idle F_PSUB@ + 0000:028F idle KITTENGETS + 0000:2C87 idle LXLSH@ + 0000:2CA8 idle LXURSH@ + 0000:2C84 N_LXLSH@ + 0000:2CA5 N_LXURSH@ + 0000:2CC6 N_PADD@ + 0000:2F25 N_PCMP@ + 0000:2D26 N_PSBP@ + 0000:2CF5 idle N_PSUB@ + 0000:2CC9 idle PADD@ + 0000:2D29 idle PSBP@ + 0000:2CF8 idle PSUB@ 0000:0276 _abort - 04FC:11C0 idle _aftersort - 0000:1FFB idle _AllocateLargestFarFreeBlock - 0000:1E98 idle _AllocateLargestFreeBlock - 0000:24CD idle _atexit - 04FC:11C2 idle _beforesort - 0000:2431 idle _CAL_OptimizeNodes - 0000:22BC _CA_CloseDebug - 0000:22C9 idle _CA_FarRead - 0000:2307 idle _CA_FarWrite - 0000:23AC _CA_LoadFile - 0000:229B _CA_OpenDebug - 0000:2345 idle _CA_ReadFile - 0000:24C0 _CA_Shutdown - 0000:249F _CA_Startup - 0000:24F1 _clock - 0000:3FAD _close - 0000:3010 _coreleft - 0000:3146 idle _cprintf - 04FC:11CA _debughandle - 04FC:114F _directvideo - 04FC:11C8 idle _drawcachebox - 04FC:007F _errno - 0000:25C5 _exit - 0000:3891 _farcoreleft - 0000:3466 _farfree - 0000:357A _farmalloc - 0000:36DB idle _farrealloc - 0000:3FF1 _fclose - 0000:40A1 _fflush - 0000:4167 _filelength - 0000:216A idle _filesize - 04FC:11C4 idle _finishcachebox - 0000:41A8 _flushall - 0000:43B1 _fopen - 0000:43E6 _fprintf - 0000:48A1 idle _fputc - 0000:4A2A idle _fputchar - 0000:3466 _free - 0000:4484 _fseek - 0000:4500 _ftell - 0000:38E1 _getch - 0000:38FA idle _getche - 0000:209D _GetFarFreeSize - 0000:1F2E _GetFreeSize - 0000:3935 _gettext - 0000:39E1 _ioctl - 0000:27C3 _isatty - 0000:45DA idle _itoa - 0000:3A0A _kbhit - 0000:2876 _lseek - 0000:4622 idle _ltoa - 0000:028F _main - 0000:3570 _malloc - 0000:464A _memcpy - 0000:0512 idle _MML_CheckForEMS - 0000:07E0 idle _MML_CheckForXMS - 0000:0AA0 idle _MML_ClearBlock - 0000:0557 idle _MML_SetupEMS - 0000:0817 idle _MML_SetupXMS - 0000:065D idle _MML_ShutdownEMS - 0000:08BD idle _MML_ShutdownXMS - 0000:08F0 idle _MML_UseSpace - 0000:1DB5 idle _MM_BombOnError - 0000:1862 _MM_DumpData - 0000:1E1A idle _MM_FreeBlock - 0000:1281 _MM_FreePtr - 0000:1DC4 idle _MM_GetNewBlock - 0000:0FCD _MM_GetPtr - 0000:069E idle _MM_MapEMS - 0000:0737 idle _MM_MapXEMS - 0000:1AA9 _MM_Report - 0000:141F idle _MM_SetLock - 0000:135B idle _MM_SetPurge - 0000:165F _MM_ShowMemory - 0000:0F48 _MM_Shutdown - 0000:14E8 idle _MM_SortMem - 0000:0B06 _MM_Startup - 0000:1A10 idle _MM_TotalFree - 0000:199E idle _MM_UnusedMemory - 0000:466E _movedata - 0000:3A1C _movetext - 0000:46BD _open - 0000:486C _printf - 04FC:11CC idle _profilehandle - 0000:3AB9 _putch - 0000:398B _puttext - 0000:36D4 idle _realloc - 0000:3F48 _setblock - 0000:4C2B _setvbuf - 0000:4D3C _strcat - 0000:4D7B _strcpy - 0000:4DA4 _strlen - 0000:2A22 _tolower - 0000:4605 _ultoa - 0000:3917 idle _ungetch - 0000:2A4E _unlink - 04FC:11C6 idle _updatecachebox - 0000:21C9 _US_CheckParm - 0000:1E59 idle _wait - 0000:3F6E idle _wherex - 0000:3F7D idle _wherey - 0000:4F48 _write - 04FC:11BE idle _XMSaddr + 0589:10E4 idle _aftersort + 0000:2B51 idle _atexit + 0589:10E6 idle _beforesort + 0000:0EE1 idle _CAL_OptimizeNodes + 0000:04AF idle _catread + 0000:0D6C _CA_CloseDebug + 0000:0D79 idle _CA_FarRead + 0000:0DB7 idle _CA_FarWrite + 0000:0E5C _CA_LoadFile + 0000:0D4B _CA_OpenDebug + 0000:0DF5 idle _CA_ReadFile + 0000:0F70 _CA_Shutdown + 0000:0F4F _CA_Startup + 0000:2B75 _clock + 0000:4606 _close + 0000:3615 _coreleft + 0000:374B idle _cprintf + 0000:078D idle _db_fetch + 0000:07DD idle _db_insert + 0589:10DE _debughandle + 0589:1059 _directvideo + 0589:10DC idle _drawcachebox + 0589:10A8 _environ + 0589:007F _errno + 0000:2C49 _exit + 0000:3E96 _farcoreleft + 0000:3A6B _farfree + 0000:3B7F _farmalloc + 0000:3CE0 idle _farrealloc + 0000:464A _fclose + 0000:46FA _fflush + 0000:47C0 _filelength + 0000:0FBC idle _filesize + 0589:10D8 idle _finishcachebox + 0000:4801 _flushall + 0000:4A0A _fopen + 0000:4A3F _fprintf + 0000:4F6A idle _fputc + 0000:50F3 idle _fputchar + 0000:3A6B _free + 0000:4ADD _fseek + 0000:4B59 _ftell + 0000:3EE6 _getch + 0000:3EFF idle _getche + 0000:4C33 _getenv + 0000:3F3A _gettext + 0000:0738 idle _get_line + 0000:0B09 idle _HC_CloseDebug + 0000:0AE8 idle _HC_OpenDebug + 0589:10D6 idle _heaphandle + 0000:3FE6 _ioctl + 0000:2D99 _isatty + 0000:4CA3 idle _itoa + 0000:400F _kbhit + 0000:0546 idle _kittenclose + 0000:02DE idle _kittenopen + 0000:0979 idle _LargestFarFreeBlock + 0000:0886 idle _LargestFreeBlock + 0000:2E4C _lseek + 0000:4CEB idle _ltoa + 0000:0B16 _main + 0000:3B75 _malloc + 0000:4D13 _memcpy + 0000:11BF idle _MML_CheckForEMS + 0000:148D idle _MML_CheckForXMS + 0000:1747 idle _MML_ClearBlock + 0000:1204 idle _MML_SetupEMS + 0000:14C4 idle _MML_SetupXMS + 0000:130A idle _MML_ShutdownEMS + 0000:156A idle _MML_ShutdownXMS + 0000:159D idle _MML_UseSpace + 0000:2A47 idle _MM_BombOnError + 0000:24F4 _MM_DumpData + 0000:2AFA idle _MM_FreeBlock + 0000:1F64 _MM_FreePtr + 0000:2A56 idle _MM_GetNewBlock + 0000:1BEB _MM_GetPtr + 0000:134B idle _MM_MapEMS + 0000:13E4 idle _MM_MapXEMS + 0000:273B _MM_Report + 0000:2B4B idle _MM_segude + 0000:2B40 idle _MM_seguin + 0000:2105 idle _MM_SetLock + 0000:203E idle _MM_SetPurge + 0000:2348 _MM_ShowMemory + 0000:1B69 _MM_Shutdown + 0000:21D1 idle _MM_SortMem + 0000:17AD _MM_Startup + 0000:26A2 idle _MM_TotalFree + 0000:2630 idle _MM_UnusedMemory + 0000:4D37 _movedata + 0000:4021 _movetext + 0000:0551 idle _mystrtoul + 0000:4D86 _open + 0000:4F35 _printf + 0000:101B idle _printmeminfoline + 0000:05DE idle _processEscChars + 0589:10E0 idle _profilehandle + 0000:40BE _putch + 0000:3F90 _puttext + 0000:53BF _read + 0000:3CD9 idle _realloc + 0000:454D _setblock + 0000:53C2 _setvbuf + 0000:5511 _sprintf + 0000:5554 _strcat + 0000:5593 _strchr + 0000:55D0 _strcmp + 0000:5600 _strcpy + 0000:5629 _strdup + 0000:5669 _strlen + 0000:3027 _tolower + 0000:4CCE _ultoa + 0000:3F1C idle _ungetch + 0000:3053 _unlink + 0589:10DA idle _updatecachebox + 0000:10ED _US_CheckParm + 0000:5533 idle _vsprintf + 0000:0F7D idle _wait + 0000:45C7 idle _wherex + 0000:45D6 idle _wherey + 0000:580D _write + 0589:10E2 idle _XMSaddr 0000:1000 idle __AHINCR 0000:000C idle __AHSHIFT - 04FC:118E __argc - 04FC:1190 __argv - 04FC:0DA6 __atexitcnt - 04FC:11CE __atexittbl - 0000:37C7 __brk - 04FC:008B __brklvl - 04FC:006B __C0argc - 04FC:006D __C0argv - 0000:3228 idle __c0crtinit - 04FC:0071 idle __C0environ - 04FC:118D __cChar - 0000:25E6 idle __cexit - 04FC:118C __cFlag + 0589:1098 __argc + 0589:109A __argv + 0589:0CB0 __atexitcnt + 0589:10E8 __atexittbl + 0000:3DCC __brk + 0589:008B __brklvl + 0589:006B __C0argc + 0589:006D __C0argv + 0000:382D idle __c0crtinit + 0589:0071 __C0environ + 0589:1097 __cChar + 0000:2C6A idle __cexit + 0589:1096 __cFlag 0000:0166 __checknull - 0000:3F90 __chmod + 0000:45E9 __chmod 0000:0153 __cleanup - 0000:3FD3 __close - 0000:3014 __CPUTN - 0000:3245 idle __crtinit - 04FC:0DA8 __ctype + 0000:462C __close + 0000:0906 idle __coreleft + 0000:3619 __CPUTN + 0000:384A idle __crtinit + 0589:0CB2 __ctype 0000:0000 Abs __cvtfak - 0000:25F4 idle __c_exit - 04FC:106E __doserrno - 0000:27B1 __DOSERROR - 04FC:1070 idle __dosErrorToSV - 0000:253A __dos_getfileattr - 0000:255A idle __dos_setfileattr - 04FC:0075 __envLng - 04FC:0077 __envseg - 04FC:0079 idle __envSize - 0000:25D4 __exit - 04FC:0EAA __exitbuf - 04FC:0EAC __exitfopen - 04FC:0EAE idle __exitopen - 04FC:106A __fmode - 0000:4887 idle __fputc - 0000:4A3D __FPUTN - 0000:4367 idle __GETFP - 04FC:0087 __heapbase - 04FC:008F __heaptop - 04FC:005B idle __Int0Vector - 04FC:005F idle __Int4Vector - 04FC:0063 idle __Int5Vector - 04FC:0067 idle __Int6Vector - 0000:2778 __IOERROR - 0000:27D4 __LONGTOA - 0000:289F __MKNAME + 0000:2C78 idle __c_exit + 0589:0F78 __doserrno + 0000:2D87 __DOSERROR + 0589:0F7A idle __dosErrorToSV + 0000:2BBE __dos_getfileattr + 0000:2BDE idle __dos_setfileattr + 0589:0075 __envLng + 0589:0077 __envseg + 0589:0079 __envSize + 0000:2C58 __exit + 0589:0DB4 __exitbuf + 0589:0DB6 __exitfopen + 0589:0DB8 idle __exitopen + 0000:0A1B idle __farcoreleft + 0589:0F74 __fmode + 0000:4F50 idle __fputc + 0000:5106 __FPUTN + 0000:49C0 idle __GETFP + 0589:0087 __heapbase + 0589:008F __heaptop + 0589:005B idle __Int0Vector + 0589:005F idle __Int4Vector + 0589:0063 idle __Int5Vector + 0589:0067 idle __Int6Vector + 0000:2D4E __IOERROR + 0589:0094 idle __kitten_catalog + 0000:2DAA __LONGTOA + 0000:2E75 __MKNAME 0000:028D idle __MMODEL - 04FC:1040 __nfile - 0000:38FA idle __Ngetche - 04FC:106C __notUmask - 0000:3917 idle __Nungetch - 0000:481D __open - 04FC:1042 __openfd - 0000:429E idle __OPENFP - 04FC:007D __osmajor - 04FC:007E idle __osminor - 04FC:007D idle __osversion - 04FC:007B __psp - 0000:3AD0 __REALCVT - 04FC:11A4 __RealCvtVector + 0589:0F4A __nfile + 0000:3EFF idle __Ngetche + 0589:0F76 __notUmask + 0000:3F1C idle __Nungetch + 0000:4EE6 __open + 0589:0F4C __openfd + 0000:48F7 idle __OPENFP + 0589:007D __osmajor + 0589:007E idle __osminor + 0589:007D idle __osversion + 0589:007B __psp + 0000:2F46 __read + 0000:40D5 __REALCVT + 0589:10B2 __RealCvtVector 0000:01BC __restorezero - 0000:3806 __sbrk - 04FC:11A6 idle __ScanTodVector - 0000:3C0A __SCREENIO - 0000:3CBD __SCROLL + 0000:3E0B __sbrk + 0589:10B4 idle __ScanTodVector + 0000:420F __SCREENIO + 0000:42C2 __SCROLL 0000:0000 Abs __setargv__ - 0000:2970 __setupio - 04FC:0081 __StartTime - 04FC:10D4 __stklen - 0000:2FE0 __stpcpy - 04FC:0EB0 __streams + 0000:0000 idle __setenvp__ + 0000:2F75 __setupio + 0589:0081 __StartTime + 0589:0FDE __stklen + 0000:35E5 __stpcpy + 0589:0DBA __streams 0000:0167 __terminate - 0000:28F8 idle __TMPNAM + 0000:2ECE idle __TMPNAM 0000:0000 idle __turboCrt - 0000:2856 __UTOA - 0000:3C46 __VALIDATEXY - 04FC:007D idle __version - 04FC:1140 __video - 0000:319D __VideoInt - 0000:2A7E __VPRINTER - 0000:2F41 __VPTR - 0000:2F66 __VRAM - 0000:3F64 __wherexy - 0000:4F0C __write - 04FC:113E __wscroll - 0000:4F4B __xfclose - 0000:4F86 __xfflush - 04FC:0085 idle ___brklvl - 0000:3326 idle ___first - 0000:3328 idle ___last - 0000:332A idle ___rover - 0000:4DC3 ___write + 0000:2E2C __UTOA + 0000:424B __VALIDATEXY + 0589:007D idle __version + 0589:104A __video + 0000:37A2 __VideoInt + 0000:3083 __VPRINTER + 0000:3546 __VPTR + 0000:356B __VRAM + 0000:45BD __wherexy + 0000:57D1 __write + 0589:1048 __wscroll + 0000:5810 __xfclose + 0000:584B __xfflush + 0589:0085 idle ___brklvl + 0000:392B idle ___first + 0000:392D idle ___last + 0000:52F4 ___read + 0000:392F idle ___rover + 0000:5688 ___write Address Publics by Value 0000:0000 Abs __setargv__ 0000:0000 idle __turboCrt 0000:0000 Abs __cvtfak + 0000:0000 idle __setenvp__ 0000:000C idle __AHSHIFT 0000:0153 __cleanup 0000:0166 __checknull @@ -475,224 +519,238 @@ Detailed map of segments 0000:0276 _abort 0000:028B idle DGROUP@ 0000:028D idle __MMODEL - 0000:028F _main - 0000:0512 idle _MML_CheckForEMS - 0000:0557 idle _MML_SetupEMS - 0000:065D idle _MML_ShutdownEMS - 0000:069E idle _MM_MapEMS - 0000:0737 idle _MM_MapXEMS - 0000:07E0 idle _MML_CheckForXMS - 0000:0817 idle _MML_SetupXMS - 0000:08BD idle _MML_ShutdownXMS - 0000:08F0 idle _MML_UseSpace - 0000:0AA0 idle _MML_ClearBlock - 0000:0B06 _MM_Startup - 0000:0F48 _MM_Shutdown - 0000:0FCD _MM_GetPtr + 0000:028F idle KITTENGETS + 0000:02DE idle _kittenopen + 0000:04AF idle _catread + 0000:0546 idle _kittenclose + 0000:0551 idle _mystrtoul + 0000:05DE idle _processEscChars + 0000:0738 idle _get_line + 0000:078D idle _db_fetch + 0000:07DD idle _db_insert + 0000:0886 idle _LargestFreeBlock + 0000:0906 idle __coreleft + 0000:0979 idle _LargestFarFreeBlock + 0000:0A1B idle __farcoreleft + 0000:0AE8 idle _HC_OpenDebug + 0000:0B09 idle _HC_CloseDebug + 0000:0B16 _main + 0000:0D4B _CA_OpenDebug + 0000:0D6C _CA_CloseDebug + 0000:0D79 idle _CA_FarRead + 0000:0DB7 idle _CA_FarWrite + 0000:0DF5 idle _CA_ReadFile + 0000:0E5C _CA_LoadFile + 0000:0EE1 idle _CAL_OptimizeNodes + 0000:0F4F _CA_Startup + 0000:0F70 _CA_Shutdown + 0000:0F7D idle _wait + 0000:0FBC idle _filesize 0000:1000 idle __AHINCR - 0000:1281 _MM_FreePtr - 0000:135B idle _MM_SetPurge - 0000:141F idle _MM_SetLock - 0000:14E8 idle _MM_SortMem - 0000:165F _MM_ShowMemory - 0000:1862 _MM_DumpData - 0000:199E idle _MM_UnusedMemory - 0000:1A10 idle _MM_TotalFree - 0000:1AA9 _MM_Report - 0000:1DB5 idle _MM_BombOnError - 0000:1DC4 idle _MM_GetNewBlock - 0000:1E1A idle _MM_FreeBlock - 0000:1E59 idle _wait - 0000:1E98 idle _AllocateLargestFreeBlock - 0000:1F2E _GetFreeSize - 0000:1FFB idle _AllocateLargestFarFreeBlock - 0000:209D _GetFarFreeSize - 0000:216A idle _filesize - 0000:21C9 _US_CheckParm - 0000:229B _CA_OpenDebug - 0000:22BC _CA_CloseDebug - 0000:22C9 idle _CA_FarRead - 0000:2307 idle _CA_FarWrite - 0000:2345 idle _CA_ReadFile - 0000:23AC _CA_LoadFile - 0000:2431 idle _CAL_OptimizeNodes - 0000:249F _CA_Startup - 0000:24C0 _CA_Shutdown - 0000:24CD idle _atexit - 0000:24F1 _clock - 0000:253A __dos_getfileattr - 0000:255A idle __dos_setfileattr - 0000:25C5 _exit - 0000:25D4 __exit - 0000:25E6 idle __cexit - 0000:25F4 idle __c_exit - 0000:2600 idle N_LDIV@ - 0000:2603 idle LDIV@ - 0000:2603 idle F_LDIV@ - 0000:2607 N_LUDIV@ - 0000:260A idle F_LUDIV@ - 0000:260A idle LUDIV@ - 0000:260F idle N_LMOD@ - 0000:2612 idle F_LMOD@ - 0000:2612 idle LMOD@ - 0000:2617 idle N_LUMOD@ - 0000:261A idle LUMOD@ - 0000:261A idle F_LUMOD@ - 0000:26AE N_LXLSH@ - 0000:26B1 idle LXLSH@ - 0000:26B1 idle F_LXLSH@ - 0000:26CF N_LXURSH@ - 0000:26D2 idle LXURSH@ - 0000:26D2 idle F_LXURSH@ - 0000:26F0 N_PADD@ - 0000:26F3 idle F_PADD@ - 0000:26F3 idle PADD@ - 0000:271F idle N_PSUB@ - 0000:2722 idle F_PSUB@ - 0000:2722 idle PSUB@ - 0000:2750 N_PSBP@ - 0000:2753 idle PSBP@ - 0000:2753 idle F_PSBP@ - 0000:2778 __IOERROR - 0000:27B1 __DOSERROR - 0000:27C3 _isatty - 0000:27D4 __LONGTOA - 0000:2856 __UTOA - 0000:2876 _lseek - 0000:289F __MKNAME - 0000:28F8 idle __TMPNAM - 0000:294F N_PCMP@ - 0000:2970 __setupio - 0000:2A22 _tolower - 0000:2A4E _unlink - 0000:2A7E __VPRINTER - 0000:2F41 __VPTR - 0000:2F66 __VRAM - 0000:2FE0 __stpcpy - 0000:3010 _coreleft - 0000:3014 __CPUTN - 0000:3146 idle _cprintf - 0000:319D __VideoInt - 0000:3228 idle __c0crtinit - 0000:3245 idle __crtinit - 0000:3326 idle ___first - 0000:3328 idle ___last - 0000:332A idle ___rover - 0000:3466 _free - 0000:3466 _farfree - 0000:3570 _malloc - 0000:357A _farmalloc - 0000:36D4 idle _realloc - 0000:36DB idle _farrealloc - 0000:37C7 __brk - 0000:3806 __sbrk - 0000:3891 _farcoreleft - 0000:38E1 _getch - 0000:38FA idle __Ngetche - 0000:38FA idle _getche - 0000:3917 idle __Nungetch - 0000:3917 idle _ungetch - 0000:3935 _gettext - 0000:398B _puttext - 0000:39E1 _ioctl - 0000:3A0A _kbhit - 0000:3A1C _movetext - 0000:3AB9 _putch - 0000:3AD0 __REALCVT - 0000:3C0A __SCREENIO - 0000:3C46 __VALIDATEXY - 0000:3CBD __SCROLL - 0000:3F48 _setblock - 0000:3F64 __wherexy - 0000:3F6E idle _wherex - 0000:3F7D idle _wherey - 0000:3F90 __chmod - 0000:3FAD _close - 0000:3FD3 __close - 0000:3FF1 _fclose - 0000:40A1 _fflush - 0000:4167 _filelength - 0000:41A8 _flushall - 0000:429E idle __OPENFP - 0000:4367 idle __GETFP - 0000:43B1 _fopen - 0000:43E6 _fprintf - 0000:4484 _fseek - 0000:4500 _ftell - 0000:45DA idle _itoa - 0000:4605 _ultoa - 0000:4622 idle _ltoa - 0000:464A _memcpy - 0000:466E _movedata - 0000:46BD _open - 0000:481D __open - 0000:486C _printf - 0000:4887 idle __fputc - 0000:48A1 idle _fputc - 0000:4A2A idle _fputchar - 0000:4A3D __FPUTN - 0000:4C2B _setvbuf - 0000:4D3C _strcat - 0000:4D7B _strcpy - 0000:4DA4 _strlen - 0000:4DC3 ___write - 0000:4F0C __write - 0000:4F48 _write - 0000:4F4B __xfclose - 0000:4F86 __xfflush - 04FC:0000 idle DATASEG@ - 04FC:005B idle __Int0Vector - 04FC:005F idle __Int4Vector - 04FC:0063 idle __Int5Vector - 04FC:0067 idle __Int6Vector - 04FC:006B __C0argc - 04FC:006D __C0argv - 04FC:0071 idle __C0environ - 04FC:0075 __envLng - 04FC:0077 __envseg - 04FC:0079 idle __envSize - 04FC:007B __psp - 04FC:007D idle __osversion - 04FC:007D __osmajor - 04FC:007D idle __version - 04FC:007E idle __osminor - 04FC:007F _errno - 04FC:0081 __StartTime - 04FC:0085 idle ___brklvl - 04FC:0087 __heapbase - 04FC:008B __brklvl - 04FC:008F __heaptop - 04FC:0DA6 __atexitcnt - 04FC:0DA8 __ctype - 04FC:0EAA __exitbuf - 04FC:0EAC __exitfopen - 04FC:0EAE idle __exitopen - 04FC:0EB0 __streams - 04FC:1040 __nfile - 04FC:1042 __openfd - 04FC:106A __fmode - 04FC:106C __notUmask - 04FC:106E __doserrno - 04FC:1070 idle __dosErrorToSV - 04FC:10D4 __stklen - 04FC:113E __wscroll - 04FC:1140 __video - 04FC:114F _directvideo - 04FC:118C __cFlag - 04FC:118D __cChar - 04FC:118E __argc - 04FC:1190 __argv - 04FC:11A4 __RealCvtVector - 04FC:11A6 idle __ScanTodVector - 04FC:11BE idle _XMSaddr - 04FC:11C0 idle _aftersort - 04FC:11C2 idle _beforesort - 04FC:11C4 idle _finishcachebox - 04FC:11C6 idle _updatecachebox - 04FC:11C8 idle _drawcachebox - 04FC:11CA _debughandle - 04FC:11CC idle _profilehandle - 04FC:11CE __atexittbl + 0000:101B idle _printmeminfoline + 0000:10ED _US_CheckParm + 0000:11BF idle _MML_CheckForEMS + 0000:1204 idle _MML_SetupEMS + 0000:130A idle _MML_ShutdownEMS + 0000:134B idle _MM_MapEMS + 0000:13E4 idle _MM_MapXEMS + 0000:148D idle _MML_CheckForXMS + 0000:14C4 idle _MML_SetupXMS + 0000:156A idle _MML_ShutdownXMS + 0000:159D idle _MML_UseSpace + 0000:1747 idle _MML_ClearBlock + 0000:17AD _MM_Startup + 0000:1B69 _MM_Shutdown + 0000:1BEB _MM_GetPtr + 0000:1F64 _MM_FreePtr + 0000:203E idle _MM_SetPurge + 0000:2105 idle _MM_SetLock + 0000:21D1 idle _MM_SortMem + 0000:2348 _MM_ShowMemory + 0000:24F4 _MM_DumpData + 0000:2630 idle _MM_UnusedMemory + 0000:26A2 idle _MM_TotalFree + 0000:273B _MM_Report + 0000:2A47 idle _MM_BombOnError + 0000:2A56 idle _MM_GetNewBlock + 0000:2AFA idle _MM_FreeBlock + 0000:2B40 idle _MM_seguin + 0000:2B4B idle _MM_segude + 0000:2B51 idle _atexit + 0000:2B75 _clock + 0000:2BBE __dos_getfileattr + 0000:2BDE idle __dos_setfileattr + 0000:2C49 _exit + 0000:2C58 __exit + 0000:2C6A idle __cexit + 0000:2C78 idle __c_exit + 0000:2C84 N_LXLSH@ + 0000:2C87 idle LXLSH@ + 0000:2C87 idle F_LXLSH@ + 0000:2CA5 N_LXURSH@ + 0000:2CA8 idle LXURSH@ + 0000:2CA8 idle F_LXURSH@ + 0000:2CC6 N_PADD@ + 0000:2CC9 idle F_PADD@ + 0000:2CC9 idle PADD@ + 0000:2CF5 idle N_PSUB@ + 0000:2CF8 idle F_PSUB@ + 0000:2CF8 idle PSUB@ + 0000:2D26 N_PSBP@ + 0000:2D29 idle PSBP@ + 0000:2D29 idle F_PSBP@ + 0000:2D4E __IOERROR + 0000:2D87 __DOSERROR + 0000:2D99 _isatty + 0000:2DAA __LONGTOA + 0000:2E2C __UTOA + 0000:2E4C _lseek + 0000:2E75 __MKNAME + 0000:2ECE idle __TMPNAM + 0000:2F25 N_PCMP@ + 0000:2F46 __read + 0000:2F75 __setupio + 0000:3027 _tolower + 0000:3053 _unlink + 0000:3083 __VPRINTER + 0000:3546 __VPTR + 0000:356B __VRAM + 0000:35E5 __stpcpy + 0000:3615 _coreleft + 0000:3619 __CPUTN + 0000:374B idle _cprintf + 0000:37A2 __VideoInt + 0000:382D idle __c0crtinit + 0000:384A idle __crtinit + 0000:392B idle ___first + 0000:392D idle ___last + 0000:392F idle ___rover + 0000:3A6B _free + 0000:3A6B _farfree + 0000:3B75 _malloc + 0000:3B7F _farmalloc + 0000:3CD9 idle _realloc + 0000:3CE0 idle _farrealloc + 0000:3DCC __brk + 0000:3E0B __sbrk + 0000:3E96 _farcoreleft + 0000:3EE6 _getch + 0000:3EFF idle __Ngetche + 0000:3EFF idle _getche + 0000:3F1C idle __Nungetch + 0000:3F1C idle _ungetch + 0000:3F3A _gettext + 0000:3F90 _puttext + 0000:3FE6 _ioctl + 0000:400F _kbhit + 0000:4021 _movetext + 0000:40BE _putch + 0000:40D5 __REALCVT + 0000:420F __SCREENIO + 0000:424B __VALIDATEXY + 0000:42C2 __SCROLL + 0000:454D _setblock + 0000:45BD __wherexy + 0000:45C7 idle _wherex + 0000:45D6 idle _wherey + 0000:45E9 __chmod + 0000:4606 _close + 0000:462C __close + 0000:464A _fclose + 0000:46FA _fflush + 0000:47C0 _filelength + 0000:4801 _flushall + 0000:48F7 idle __OPENFP + 0000:49C0 idle __GETFP + 0000:4A0A _fopen + 0000:4A3F _fprintf + 0000:4ADD _fseek + 0000:4B59 _ftell + 0000:4C33 _getenv + 0000:4CA3 idle _itoa + 0000:4CCE _ultoa + 0000:4CEB idle _ltoa + 0000:4D13 _memcpy + 0000:4D37 _movedata + 0000:4D86 _open + 0000:4EE6 __open + 0000:4F35 _printf + 0000:4F50 idle __fputc + 0000:4F6A idle _fputc + 0000:50F3 idle _fputchar + 0000:5106 __FPUTN + 0000:52F4 ___read + 0000:53BF _read + 0000:53C2 _setvbuf + 0000:5511 _sprintf + 0000:5533 idle _vsprintf + 0000:5554 _strcat + 0000:5593 _strchr + 0000:55D0 _strcmp + 0000:5600 _strcpy + 0000:5629 _strdup + 0000:5669 _strlen + 0000:5688 ___write + 0000:57D1 __write + 0000:580D _write + 0000:5810 __xfclose + 0000:584B __xfflush + 0589:0000 idle DATASEG@ + 0589:005B idle __Int0Vector + 0589:005F idle __Int4Vector + 0589:0063 idle __Int5Vector + 0589:0067 idle __Int6Vector + 0589:006B __C0argc + 0589:006D __C0argv + 0589:0071 __C0environ + 0589:0075 __envLng + 0589:0077 __envseg + 0589:0079 __envSize + 0589:007B __psp + 0589:007D idle __osversion + 0589:007D __osmajor + 0589:007D idle __version + 0589:007E idle __osminor + 0589:007F _errno + 0589:0081 __StartTime + 0589:0085 idle ___brklvl + 0589:0087 __heapbase + 0589:008B __brklvl + 0589:008F __heaptop + 0589:0094 idle __kitten_catalog + 0589:0CB0 __atexitcnt + 0589:0CB2 __ctype + 0589:0DB4 __exitbuf + 0589:0DB6 __exitfopen + 0589:0DB8 idle __exitopen + 0589:0DBA __streams + 0589:0F4A __nfile + 0589:0F4C __openfd + 0589:0F74 __fmode + 0589:0F76 __notUmask + 0589:0F78 __doserrno + 0589:0F7A idle __dosErrorToSV + 0589:0FDE __stklen + 0589:1048 __wscroll + 0589:104A __video + 0589:1059 _directvideo + 0589:1096 __cFlag + 0589:1097 __cChar + 0589:1098 __argc + 0589:109A __argv + 0589:10A8 _environ + 0589:10B2 __RealCvtVector + 0589:10B4 idle __ScanTodVector + 0589:10D6 idle _heaphandle + 0589:10D8 idle _finishcachebox + 0589:10DA idle _updatecachebox + 0589:10DC idle _drawcachebox + 0589:10DE _debughandle + 0589:10E0 idle _profilehandle + 0589:10E2 idle _XMSaddr + 0589:10E4 idle _aftersort + 0589:10E6 idle _beforesort + 0589:10E8 __atexittbl Program entry point at 0000:0000 diff --git a/16/exmmtest/EXMMTEST.PRJ b/16/exmmtest/EXMMTEST.PRJ index 13a00527053641a20e6501f9b8a3a231b7b2c284..752cc1cf98a5d24bdaf12de68c1b95402d65c37b 100644 GIT binary patch literal 7149 zcmeI1X>e0j6vxj?UeeN1XbW^kg$5>qCVl#^d5@kd4lg)%=O3rX}TljyLJj|lb(%~8R3 zvhnS^g6|2w&y?s(VR=mOE2fo>Ggr_Fp*bmdib>YfAbrn$tUoa5N8l_&`U%p{Bop-z z^`Y?#@GI~edMO8GrsX@~;dnNyPXH%H9;YClW-*t(VaoJ7`W+h2_=6?upJ@ICXaGqP zStN#JWsnTm06TOUjN(j2(-?-5#h`3pERX|?V@Ts6vD2Mz#l0B-{M2sr_m$dD!h1!xvZdJT)9DV9+0 z$s# znt{y>Y6Z3eZP48esRL3Mq-~J4L%Idht-x)-?Z6!jdKkD9&2C@^&;#5B+zs5rpnDtumN@;1IPpxNG`76@UK#-hty@!bQ;TJ$7FU{DTxDvp+|=S~Q;Ta%EmrWt9qr3G`peTL zW%AxxT(y{M;bwVB`BL6VL^Y$In##MlR1F5HR@^EyjrTLz`CfbMkX)NZUuRNxZO9!= zV-lO=vGz2~(l%MJb-v>8xqWlWE0)Yv9R5Iftuv@Nf}wyf7*QN5H+ zTAGx3rHxA35iX74VNL3ehzB`mM@Ou+VM{EYEO5jb_9gpnDEcyAol>^Wqm%^{$4L7g zNgU<1HJvCUNBP1xNHD*D=x#ljQwxt3TIpkN*D}Rs|~QEZ#}b2mFxJXCv~k zx6P~xhtw#qx~RY2>5s1RL?Ui~sY-+C(hEO<@+prp*mxX$#IbgBi~?@u7-E%IZCI&t z6n8ihJs9p+dS9IJ|3r!xPkA&)_I4jh-zT}-g)R6^76eu-oDa;$2OmCLR3vG#1Tb}J(`9t{$dAl5x z=gP9Y-nzoYwfe_m8vX#v`g~S8PYUA`zj&_9pGA(2#%r2?fYwNf*FF7sF*bc zf_cIwU&ylf)-ISSI6>$q3b|0oV+FGXv*=9g{+c53ZI19$ESM{(X^5iRYe*+?x{&Bh zVQNf5Pt=%-p7g+kjKfHsoL&NBikfyVvxJc(CVFlSBUMGDI&G8^*5}e#*~C=OZDVX0 zR9mm0UQK;U^*T-!Q)jIB$W~S_(7<%{MP!__!~yVrT}g>b9u+IGl1fXX`d{K}zi725 z5H@x-oT2^PMe2iY7-BZZiz4auG#2AhEx*J~reTvNA0q$iHm`$<0h*gRz21OoZsxmS zmpZkG$CpM>HQ@II%!9i6&!q8AGH`A1O?ptJ+J6-pA015BQjO}5c+K+^W8r^e@SQ2u zX4AKpe*EaCrGDP%r=or!=?{+@j?(1wAFdBa!x3i$nWdhNa3tjM*QR6V;_8~)ZSb%5 zih`sLyTM=M@rrd|V&`(#h|QYXEF5v^%f)!(FixaOi)kG{6Y#&GQeG?hN%C4+MPBle cp8^!5>nKEFiqL9WLu;vy>Io-8;)PlH8zSIcmH+?% delta 174 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 z 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 - if(length>0xfffflu) - { - printf("File is a fat bakapee\n"); - segm=(length%0xfffflu)-1; - fat=segm*0xfffflu; + if(length>0xfffflu) + { + printf("File is a fat bakapee\n"); + segm=(length%0xfffflu)-1; + fat=segm*0xfffflu; length-=fat; // printf("CA_FarRead doesn't support 64K reads yet!\n"); - } - - if(!fat&&!segm) + } + + if(!fat&&!segm) {*/ - __asm - { + __asm { push ds mov bx,[handle] mov cx,[WORD PTR length] @@ -246,17 +245,34 @@ boolean CA_FarRead(int handle, byte huge *dest, dword length, mminfo_t *mm) mov errno,ax mov flag,0 jmp End +#ifdef __BORLANDC__ + } +#endif good: +#ifdef __BORLANDC__ + __asm { +#endif cmp ax,[WORD PTR length] je done // errno = EINVFMT; // user manager knows this is bad read mov flag,0 jmp End +#ifdef __BORLANDC__ + } +#endif done: +#ifdef __BORLANDC__ + __asm { +#endif mov flag,1 +#ifdef __BORLANDC__ + } +#endif End: +#ifdef __WATCOMC__ } - return flag; +#endif + return flag; //}else return 0;//todo: EXPAND!!! } @@ -274,22 +290,21 @@ End: boolean CA_FarWrite(int handle, byte huge *source, dword length, mminfo_t *mm) { boolean flag; - /*dword fat=0; - word segm=0; + /*dword fat=0; + word segm=0; //if(mm->EMSVer<0x40) - if(length>0xfffflu) - { - printf("File is a fat bakapee\n"); - segm=(length%0xfffflu)-1; - fat=segm*0xfffflu; + if(length>0xfffflu) + { + printf("File is a fat bakapee\n"); + segm=(length%0xfffflu)-1; + fat=segm*0xfffflu; length-=fat; // printf("CA_FarRead doesn't support 64K reads yet!\n"); } - - if(!fat&&!segm) + + if(!fat&&!segm) {*/ - __asm - { + __asm { push ds mov bx,[handle] mov cx,[WORD PTR length] @@ -302,17 +317,34 @@ boolean CA_FarWrite(int handle, byte huge *source, dword length, mminfo_t *mm) mov errno,ax mov flag,0 jmp End +#ifdef __BORLANDC__ + } +#endif good: +#ifdef __BORLANDC__ + __asm { +#endif cmp ax,[WORD PTR length] je done //errno = ENOMEM; // user manager knows this is bad write mov flag,0 jmp End +#ifdef __BORLANDC__ + } +#endif done: +#ifdef __BORLANDC__ + __asm { +#endif mov flag,1 +#ifdef __BORLANDC__ + } +#endif End: +#ifdef __WATCOMC__ } - return flag; +#endif + return flag; //}else return 0; } @@ -330,7 +362,7 @@ End: boolean CA_ReadFile(char *filename, memptr *ptr, mminfo_t *mm) { int handle; - dword size; + dword size; //long size; if((handle = open(filename,O_RDONLY | O_BINARY, S_IREAD)) == -1) @@ -361,7 +393,7 @@ boolean CA_ReadFile(char *filename, memptr *ptr, mminfo_t *mm) boolean CA_LoadFile(char *filename, memptr *ptr, mminfo_t *mm, mminfotype *mmi) { int handle; - dword size; + dword size; //long size; if((handle = open(filename,O_RDONLY | O_BINARY, S_IREAD)) == -1) diff --git a/16/exmmtest/src/lib/16_hc.c b/16/exmmtest/src/lib/16_hc.c index f9f4948c..df9602d8 100644 --- a/16/exmmtest/src/lib/16_hc.c +++ b/16/exmmtest/src/lib/16_hc.c @@ -33,23 +33,48 @@ void __near* LargestFreeBlock(size_t* Size) void __near* p; s0 = ~(size_t)0 ^ (~(size_t)0 >> 1); +#ifdef __BORLANDC__ + while (s0 && (p = malloc(s0)) == NULL) +#endif +#ifdef __WATCOMC__ while (s0 && (p = _nmalloc(s0)) == NULL) +#endif s0 >>= 1; if (p) +#ifdef __BORLANDC__ + free(p); +#endif +#ifdef __WATCOMC__ _nfree(p); +#endif s1 = s0 >> 1; while (s1) { +#ifdef __BORLANDC__ + if ((p = malloc(s0 + s1)) != NULL) +#endif +#ifdef __WATCOMC__ if ((p = _nmalloc(s0 + s1)) != NULL) +#endif { s0 += s1; +#ifdef __BORLANDC__ + free(p); +#endif +#ifdef __WATCOMC__ _nfree(p); +#endif } s1 >>= 1; } +#ifdef __BORLANDC__ + while (s0 && (p = malloc(s0)) == NULL) +#endif +#ifdef __WATCOMC__ while (s0 && (p = _nmalloc(s0)) == NULL) +#endif s0 ^= s0 & -s0; *Size = s0; @@ -68,7 +93,12 @@ size_t _coreleft(void) if (largest < sizeof(void __near*)) { if (p != NULL) +#ifdef __BORLANDC__ + free(p); +#endif +#ifdef __WATCOMC__ _nfree(p); +#endif break; } *(void __near* __near*)p = NULL; @@ -84,7 +114,12 @@ size_t _coreleft(void) while (pFirst != NULL) { void __near* p = *(void __near* __near*)pFirst; +#ifdef __BORLANDC__ + free(pFirst); +#endif +#ifdef __WATCOMC__ _nfree(pFirst); +#endif pFirst = p; } return total; @@ -153,6 +188,7 @@ size_t _farcoreleft(void) return total; } +#ifdef __WATCOMC__ void huge* LargestHugeFreeBlock(size_t* Size) { size_t s0, s1; @@ -367,7 +403,7 @@ void heapdump(void) write(heaphandle,scratch,strlen(scratch)); } heapstat(heap_status, &scratch); - + //near strcpy(scratch,"\n == near ==\n\n"); write(heaphandle,scratch,strlen(scratch)); @@ -432,7 +468,7 @@ void heapstat(int heap_status, byte *str) break; case _HEAPEMPTY: strcpy((str),"OK - heap is empty\n"); - + break; case _HEAPBADBEGIN: strcpy((str),"ERROR - heap is damaged\n"); @@ -454,7 +490,7 @@ void heapstat0(int heap_status) break; case _HEAPEMPTY: //printf("OK - heap is empty\n"); - + break; case _HEAPBADBEGIN: printf("ERROR - heap is damaged\n"); @@ -466,7 +502,7 @@ void heapstat0(int heap_status) printf("ERROR - bad node in heap\n"); } } - +#endif /* ============================ = diff --git a/16/exmmtest/src/lib/16_head.c b/16/exmmtest/src/lib/16_head.c index df0b31c7..7dd53866 100644 --- a/16/exmmtest/src/lib/16_head.c +++ b/16/exmmtest/src/lib/16_head.c @@ -1,27 +1,27 @@ -/* Project 16 Source Code~ - * Copyright (C) 2012-2015 sparky4 & pngwen & andrius4669 - * - * This file is part of Project 16. - * - * Project 16 is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * Project 16 is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see , or - * write to the Free Software Foundation, Inc., 51 Franklin Street, - * Fifth Floor, Boston, MA 02110-1301 USA. - * - */ - -#include "src/lib/16_head.h" - +/* Project 16 Source Code~ + * Copyright (C) 2012-2015 sparky4 & pngwen & andrius4669 + * + * This file is part of Project 16. + * + * Project 16 is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Project 16 is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see , or + * write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301 USA. + * + */ + +#include "src/lib/16_head.h" + /* Function: Wait ********************************************************** * * Parameters: wait - time in microseconds @@ -36,9 +36,9 @@ void wait(clock_t wait){ goal = wait + clock(); while((goal > clock()) && !kbhit()) ; -} /* End of wait */ - -long int +} /* End of wait */ + +long int filesize(FILE *fp) { long int save_pos, size_of_file; @@ -48,63 +48,15 @@ filesize(FILE *fp) size_of_file = ftell(fp); fseek(fp, save_pos, SEEK_SET); return(size_of_file); -} - -void printmeminfoline(byte *strc, const byte *pee, size_t h_total, size_t h_used, size_t h_free) -{ - byte str[64]; - strcat(strc,pee); strcat(strc," "); ultoa((dword)h_total,str,10); strcat(strc,str); strcat(strc," "); ultoa((dword)h_used,str,10); strcat(strc,str); strcat(strc," "); ultoa((dword)h_free,str,10); strcat(strc,str); - strcat(strc,"\n"); -} - -void print_normal_entry(char *text, dword total, dword used, dword free, byte *str) -{ - printf("%-17s", text); - convert("%8sB ", total); - convert("%9sB ", used); - convert("%9sB\n", free); -} - -/* - * As for printf(), but format may only contain a single format specifier, - * which must be "%s" and is replaced with the string form of num with commas - * separating groups of three digits. - * - * e.g. convert("%s bytes", 1234567) -> "1,234,567 bytes" - */ -void convert(const char *format, dword num) -{ - int c, i, j, n; - char des[4*sizeof(dword)+3]; - union REGS regs; - struct SREGS sregs; - char mycountry[48]; /* probably 34 bytes are enough... */ - char ksep = ','; /* or . */ - - regs.x.ax = 0x3800; - sregs.ds = FP_SEG(&mycountry); - regs.x.dx = FP_OFF(&mycountry); - intdosx(®s,®s,&sregs); - if (regs.x.cflag == 0) { - ksep = mycountry[7]; /* 1000's separator */ - /* dsep = mycountry[9]; ** decimal separator */ - } - - n = sprintf(des, "%lu", num); - /* insert commas in the string */ - c = 3; - for (i = n - 3; i > 0; i--) { - if (c%3==0) { - for (j = n; j >= i; j--) - des[j+1] = des[j]; - des[i]=ksep; /* ',' */ - n++; - } - c++; - } - printf(format, des); -} - +} + +void printmeminfoline(byte *strc, const byte *pee, size_t h_total, size_t h_used, size_t h_free) +{ + byte str[64]; + strcat(strc,pee); strcat(strc," "); ultoa((dword)h_total,str,10); strcat(strc,str); strcat(strc," "); ultoa((dword)h_used,str,10); strcat(strc,str); strcat(strc," "); ultoa((dword)h_free,str,10); strcat(strc,str); + strcat(strc,"\n"); +} + /////////////////////////////////////////////////////////////////////////// // // US_CheckParm() - checks to see if a string matches one of a set of @@ -138,8 +90,8 @@ US_CheckParm(char *parm,char **strings) } } return(-1); -} - +} + /* ========================== = @@ -201,4 +153,4 @@ US_CheckParm(char *parm,char **strings) #endif exit(exit_code); -}*/ +}*/ diff --git a/16/exmmtest/src/lib/16_head.h b/16/exmmtest/src/lib/16_head.h index f74e8823..e6e590b4 100644 --- a/16/exmmtest/src/lib/16_head.h +++ b/16/exmmtest/src/lib/16_head.h @@ -32,27 +32,29 @@ #define _LIBHEAD_H_ #include #include +#include #include // just for wait #include // just for wait -#include #include #include #include +#include #include #include +#include #ifdef __WATCOMC__ #include #include #include -#include "src/lib/nyan/kitten.h" #endif +#include "src/lib/nyan/kitten.h" #include "src/lib/types.h" //0000 test type def wwww -struct list { +/*struct list { struct list __based(__self) *next; int value; -}; +};*/ /* Control codes for all keys on the keyboard */ //here temperarly @@ -186,8 +188,6 @@ void wait(clock_t wait); long int filesize(FILE *fp); void printmeminfoline(byte *strc, const byte *pee, size_t h_total, size_t h_used, size_t h_free); -void print_normal_entry(char *text, dword total, dword used, dword free, byte *str); -void convert(const char *format, dword num); int US_CheckParm(char *parm,char **strings); extern void CA_OpenDebug (void); diff --git a/16/exmmtest/src/lib/16_mm.c b/16/exmmtest/src/lib/16_mm.c index ba0b8bfe..90439b1d 100644 --- a/16/exmmtest/src/lib/16_mm.c +++ b/16/exmmtest/src/lib/16_mm.c @@ -120,13 +120,24 @@ boolean MML_CheckForEMS(void) // mov emmcfems,1 jmp End +#ifdef __BORLANDC__ + } +#endif error: +#ifdef __BORLANDC__ + __asm { +#endif // // EMS is bad // mov emmcfems,0 +#ifdef __BORLANDC__ + } +#endif End: +#ifdef __WATCOMC__ } +#endif return(emmcfems); } @@ -150,8 +161,7 @@ byte MML_SetupEMS(mminfo_t *mm) unsigned totalEMSpages,freeEMSpages,EMSpageframe,EMSpagesmapped,EMShandle; totalEMSpages = freeEMSpages = EMSpageframe = EMSpagesmapped = 0; - __asm - { + __asm { mov ah,EMS_STATUS int EMS_INT // make sure EMS hardware is present or ah,ah @@ -187,13 +197,23 @@ byte MML_SetupEMS(mminfo_t *mm) jle getpages mov bx,[freeEMSpages] jmp getpages - -low: +#ifdef __BORLANDC__ + } +#endif + low: +#ifdef __BORLANDC__ + __asm { +#endif cmp bx,4 jle getpages // there is only 1,2,3,or 4 pages mov bx,4 // we can't use more than 4 pages - -getpages: +#ifdef __BORLANDC__ + } +#endif + getpages: +#ifdef __BORLANDC__ + __asm { +#endif mov [EMSpagesmapped],bx mov ah,EMS_ALLOCPAGES // allocate up to 64k of EMS int EMS_INT @@ -201,19 +221,30 @@ getpages: jnz error mov [EMShandle],dx jmp End -error: +#ifdef __BORLANDC__ + } +#endif + error: +#ifdef __BORLANDC__ + __asm { +#endif mov err,ah mov errorflag,1 jmp End +#ifdef __BORLANDC__ + } +#endif noEMS: End: +#ifdef __WATCOMC__ } +#endif if(errorflag==true) { //err = CPURegs.h.ah; strcpy(str,"MM_SetupEMS: EMS error "); //itoa(err,str2,16); - MM_EMSerr(&str, err); + MM_EMSerr(str, err); printf("%s\n",str); return err; } @@ -242,16 +273,20 @@ void MML_ShutdownEMS(mminfo_t *mm) if(!EMShandle) return; - __asm - { + __asm { mov ah,EMS_FREEPAGES mov dx,[EMShandle] int EMS_INT or ah,ah jz ok mov errorflag,1 +#ifdef __BORLANDC__ + } +#endif ok: +#ifdef __WATCOMC__ } +#endif if(errorflag==true) printf("MML_ShutdownEMS: Error freeing EMS!\n"); //++++ add something } @@ -278,8 +313,7 @@ byte MM_MapEMS(mminfo_t *mm, mminfotype *mmi) for (i=0;i<4/*MAPPAGES*/;i++) { - __asm - { + __asm { mov ah,EMS_MAPPAGE mov bx,[i] // logical page mov al,bl // physical page @@ -288,11 +322,22 @@ byte MM_MapEMS(mminfo_t *mm, mminfotype *mmi) or ah,ah jnz error jmp End +#ifdef __BORLANDC__ + } +#endif error: +#ifdef __BORLANDC__ + __asm { +#endif mov err,ah mov errorflag,1 +#ifdef __BORLANDC__ + } +#endif End: +#ifdef __WATCOMC__ } +#endif if(errorflag==true) { //err = CPURegs.h.ah; @@ -344,8 +389,7 @@ byte MM_MapXEMS(mminfo_t *mm, mminfotype *mmi) for (i=0;inumUMBs = 0; - __asm - { + __asm { mov ax,0x4300 int 0x2f // query status of installed diver cmp al,0x80 je good mov errorflag,1 +#ifdef __BORLANDC__ + } +#endif good: +#ifdef __WATCOMC__ } +#endif if(errorflag==true) return false; else return true; } @@ -422,8 +481,7 @@ void MML_SetupXMS(mminfo_t *mm, mminfotype *mmi) unsigned base,size; getmemory: - __asm - { + __asm { mov ax,0x4310 int 0x2f mov [WORD PTR XMSaddr],bx @@ -443,12 +501,22 @@ getmemory: call [DWORD PTR XMSaddr] // DX holds largest available UMB or ax,ax jz done // another error... - -gotone: +#ifdef __BORLANDC__ + } +#endif + gotone: +#ifdef __BORLANDC__ + __asm { +#endif mov [base],bx mov [size],dx -done: +#ifdef __BORLANDC__ } +#endif + done: +#ifdef __WATCOMC__ + } +#endif printf("base=%u ", base); printf("size=%u\n", size); MML_UseSpace(base,size, mm); mmi->XMSmem += size*16; @@ -475,8 +543,7 @@ void MML_ShutdownXMS(mminfo_t *mm) for (i=0;inumUMBs;i++) { base = mm->UMBbase[i]; - __asm - { + __asm { mov ah,XMS_FREEUMB mov dx,[base] call [DWORD PTR XMSaddr] @@ -672,27 +739,36 @@ void MM_Startup(mminfo_t *mm, mminfotype *mmi) // // get all available near conventional memory segments // -//---- length=coreleft(); - printf(" nearheap making!\n"); +// printf(" nearheap making!\n"); +#ifdef __WATCOMC__ _nheapgrow(); length=(dword)_memmax();//(dword)GetFreeSize(); start = (void huge *)(mm->nearheap = _nmalloc(length)); +#endif +#ifdef __BORLANDC__ + length=coreleft(); + start = (void huge *)(mm->nearheap = malloc(length)); +#endif length -= 16-(FP_OFF(start)&15); length -= SAVENEARHEAP; seglength = length / 16; // now in paragraphs segstart = FP_SEG(start)+(FP_OFF(start)+15)/16; MML_UseSpace(segstart,seglength, mm); mmi->nearheap = length; - printf("start=%FP segstart=%X seglen=%lu len=%lu\n", start, segstart, seglength, length); + printf("start=%Fp segstart=%x seglen=%l len=%l\n", start, segstart, seglength, length); //heapdump(); // // get all available far conventional memory segments // -//---- length=farcoreleft(); - printf(" farheap making!\n"); +// printf(" farheap making!\n"); +#ifdef __WATCOMC__ _fheapgrow(); length=(dword)GetFarFreeSize();//0xffffUL*4UL; +#endif +#ifdef __BORLANDC__ + length=farcoreleft(); +#endif //start = mm->farheap = halloc(length, 1); start = mm->farheap = _fmalloc(length); length -= 16-(FP_OFF(start)&15); @@ -701,7 +777,7 @@ void MM_Startup(mminfo_t *mm, mminfotype *mmi) segstart = FP_SEG(start)+(FP_OFF(start)+15)/16; MML_UseSpace(segstart,seglength, mm); mmi->farheap = length; - printf("start=%FP segstart=%X seglen=%lu len=%lu\n", start, segstart, seglength, length); + printf("start=%Fp segstart=%x seglen=%l len=%l\n", start, segstart, seglength, length); //heapdump(); mmi->mainmem = mmi->nearheap + mmi->farheap; @@ -716,9 +792,23 @@ void MM_Startup(mminfo_t *mm, mminfotype *mmi) //printf(" EMS1\n"); //printf("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"); //bug! mmi->EMSmem = 0; - for(i = 1;i < __argc;i++) + for(i = 1;i < +#ifdef __WATCOMC__ + __argc +#endif +#ifdef __BORLANDC__ + _argc +#endif + ;i++) { - if(US_CheckParm(__argv[i],ParmStringsexmm) == 0) + if(US_CheckParm( +#ifdef __WATCOMC__ + __argv[i] +#endif +#ifdef __BORLANDC__ + _argv[i] +#endif + ,ParmStringsexmm) == 0) goto emsskip; // param NOEMS } //printf("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"); //bug! @@ -747,9 +837,23 @@ goto xmsskip; // emsskip: mmi->XMSmem = 0; - for(i = 1;i < __argc;i++) + for(i = 1;i < +#ifdef __WATCOMC__ + __argc +#endif +#ifdef __BORLANDC__ + _argc +#endif + ;i++) { - if(US_CheckParm(__argv[i],ParmStringsexmm) == 0) + if(US_CheckParm( +#ifdef __WATCOMC__ + __argv[i] +#endif +#ifdef __BORLANDC__ + _argv[i] +#endif + ,ParmStringsexmm) == 0) goto xmsskip; // param NOXMS } //printf("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"); //bug! @@ -787,7 +891,12 @@ void MM_Shutdown(mminfo_t *mm) return; _ffree(mm->farheap); printf(" far freed\n"); +#ifdef __WATCOMC__ _nfree(mm->nearheap); printf(" near freed\n"); +#endif +#ifdef __BORLANDC__ + free(mm->nearheap); printf(" near freed\n"); +#endif if(MML_CheckForEMS()){ MML_ShutdownEMS(mm); printf(" EMS freed\n"); } if(MML_CheckForXMS(mm)){ MML_ShutdownXMS(mm); printf(" XMS freed\n"); } } @@ -898,7 +1007,9 @@ printf("\n"); if (mm->bombonerror) { +#ifdef __WATCOMC__ heapdump(); +#endif printf(OUT_OF_MEM_MSG,(size-mmi->nearheap)); printf("for stability reasons the program will shut down! wwww\n"); printf(" endid=%u\n",(mm->endid)); @@ -1151,9 +1262,10 @@ void MM_SortMem(mminfo_t *mm) void MM_ShowMemory(/*page_t *page, */mminfo_t *mm) { mmblocktype huge *scan; - word color,temp; +//++++ word color; + word temp; long end,owner; - word chx,chy; +//++++ word chx,chy; byte scratch[160],str[16]; //**** VW_SetDefaultColors(); @@ -1168,17 +1280,17 @@ void MM_ShowMemory(/*page_t *page, */mminfo_t *mm) CA_OpenDebug (); - chx=0; - chy=0; +//++++ chx=0; +//++++ chy=0; while(scan) { - if(scan->attributes & PURGEBITS) +/*++++ if(scan->attributes & PURGEBITS) color = 5; // dark purple = purgable else color = 9; // medium blue = non purgable if(scan->attributes & LOCKBIT) - color = 12; // red = locked + color = 12; // red = locked*/ if(scan->start<=end) { //printf("); @@ -1187,8 +1299,8 @@ CA_OpenDebug (); return; } end = scan->start+scan->length-1; - chy = scan->start/320; - chx = scan->start%320; +//++++ chy = scan->start/320; +//++++ chx = scan->start%320; //modexhlin(page, scan->start, (unsigned)end, chy, color); //for(chx=scan->start;chx+4>=(word)end;chx+=4) //{ diff --git a/16/exmmtest/src/lib/nyan/kitten.c b/16/exmmtest/src/lib/nyan/kitten.c new file mode 100644 index 00000000..4e501dec --- /dev/null +++ b/16/exmmtest/src/lib/nyan/kitten.c @@ -0,0 +1,615 @@ + +/* Functions that emulate UNIX catgets */ + +/* Copyright (C) 1999,2000,2001 Jim Hall */ + +/* + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ + +#include /* sprintf */ +#include /* getenv */ +#include /* strchr */ +#include +#include +#include + +#include "src/lib/nyan/kitten.h" + + +/* DB stuff */ + +struct db_list{ + struct db_list *next; + char *key; + char *value; +}; + +typedef struct db_list db_t; + +db_t *db_insert (char *key, char *value); +db_t *db_fetch (char *key); + + +/* External functions */ + +int get_line (int file, char *buffer, int size); + + +/* Local prototypes */ + +int catread (char *catfile); /* Reads a catfile into the hash */ +char *processEscChars(char *line); /* Converts c escape sequences to chars */ + +/* Globals */ + +nl_catd _kitten_catalog = 0; /* _kitten_catalog descriptor, either 0 or 1 */ + + + +#if defined(__SMALL__) /* it's not very portable ;) */ + +#include +/* assert we are running in small model */ +/* else pointer below has to be done correctly */ +char verify_small_pointers[sizeof(void*) == 2 ? 1 : -1]; + + +int dos_open(char *filename, int mode); +#define open(filename,mode) dos_open(filename,mode) + +int dos_read(int file, void *ptr, unsigned count); +#define read(file, ptr, count) dos_read(file,ptr,count) + +void dos_close(int file); +#define close(file) dos_close(file) + +#ifdef __WATCOMC__ + +#pragma aux dos_open = \ +"mov ax, 0x3d00" \ +"int 0x21" \ +"jnc noerror" \ +"mov ax, 0xffff" \ +"noerror:" \ +parm [dx] [ax] value [ax]; + +#pragma aux dos_read = \ +"mov ah, 0x3f" \ +"int 0x21" \ +"jnc noerror" \ +"xor ax, ax" \ +"noerror:" \ +parm [bx] [dx] [cx] value [ax]; + +#pragma aux dos_close = \ +"mov ah, 0x3e" \ +"int 0x21" \ +parm [bx]; + +#else + +int dos_open(char *filename, int mode) +{ + union REGS r; + + if (mode); /* mode ignored - readonly supported */ + + r.h.ah = 0x3d; + r.h.al = 0; /* read mode only supoported now !! */ + r.x.dx = (unsigned)filename; + intdos(&r,&r); + + if (r.x.cflag) + return -1; + return r.x.ax; +} + +int dos_read(int file, void *ptr, unsigned count) +{ + union REGS r; + + r.h.ah = 0x3f; + r.x.bx = file; + r.x.cx = count; + r.x.dx = (unsigned)ptr; + intdos(&r,&r); + + if (r.x.cflag) + return 0; + return r.x.ax; +} + +void dos_close(int file) +{ + union REGS r; + + r.h.ah = 0x3e; + r.x.bx = file; + intdos(&r,&r); +} + +#endif +#endif + +#ifndef NOCATS + +/* Functions */ + +char * +pascal kittengets(int set_number, int message_number, char *message) +{ + /* get message from a message _kitten_catalog */ + + /* 'message' should really be const, but not when it is returned */ + + /* On success, catgets() returns a pointer to an internal buffer + area containing the null-terminated message string. On failure, + catgets() returns the value 'message'. */ + + char key[10]; + db_t *ptr; + + + /* fetch the message that goes with the set/message number */ + + sprintf (key, "%d.%d", set_number, message_number); + ptr = db_fetch (key); + + /* printf("\ncatgets %s\n",message); */ + + if (ptr) + { + /* printf("------> %s\n",ptr->value); */ + + return (ptr->value); + } + + /* else */ + + return (message); +} + +nl_catd +kittenopen(char *name) +{ + /* catopen() returns a message _kitten_catalog descriptor of type nl_catd on + success. On failure, it returns -1. */ + + /* 'flag' is completely ignored here. */ + + char catfile[256]; /* full path to the msg _kitten_catalog */ + char *nlsptr; /* ptr to NLSPATH */ + char *lang; /* ptr to LANG */ + + + + /* Open the _kitten_catalog file */ + + /* The value of `_kitten_catalog' will be set based on catread */ + + if (_kitten_catalog) + { + /* Already one open */ + + printf("cat already open\n"); + return (-1); + } + + /* If the message _kitten_catalog file name contains a directory separator, + assume that this is a real path to the _kitten_catalog file. Note that + catread will return a true or false value based on its ability + to read the catfile. */ + + if (strchr (name, '\\')) + { + /* first approximation: 'name' is a filename */ + + printf("found \\\n"); + + _kitten_catalog = catread (name); + return (_kitten_catalog); + } + + /* If the message _kitten_catalog file name does not contain a directory + separator, then we need to try to locate the message _kitten_catalog on + our own. We will use several methods to find it. */ + + /* We will need the value of LANG, and may need a 2-letter abbrev of + LANG later on, so get it now. */ + + lang = getenv ("LANG"); + + if (lang == NULL) + { + /* printf("no lang= found\n"); */ + + /* Return failure - we won't be able to locate the cat file */ + return (-1); + } + + + /* step through NLSPATH */ + + nlsptr = getenv ("NLSPATH"); + + + if (nlsptr == NULL) + { + /* printf("no NLSPATH= found\n"); */ + + /* Return failure - we won't be able to locate the cat file */ + return (-1); + } + + /* printf("nlsptr:%s\n",nlsptr); */ + + while (*nlsptr) + { + char *tok = strchr(nlsptr, ';'); + int toklen; + + + if (tok == NULL) tok = nlsptr + strlen(nlsptr); + toklen=tok-nlsptr; + /* Try to find the _kitten_catalog file in each path from NLSPATH */ + + /* Rule #1: %NLSPATH%\%LANG%\cat */ + + memcpy(catfile,nlsptr,toklen); + sprintf(catfile+toklen,"\\%s\\%s",lang,name); + + _kitten_catalog = catread (catfile); + if (_kitten_catalog) + { + return (_kitten_catalog); + } + + /* Rule #2: %NLSPATH%\cat.%LANG% */ + + sprintf(catfile+toklen,"\\%s.%s",name, lang); + + _kitten_catalog = catread (catfile); + + if (_kitten_catalog) + { + return (_kitten_catalog); + } + + /* Rule #3: if LANG looks to be in format "en-UK" then + %NLSPATH%\cat.EN */ + + if (lang[2] == '-') + { + lang[2] = 0; + sprintf(catfile+toklen,"\\%s.%s",name,lang); + lang[2] = '-'; + + _kitten_catalog = catread (catfile); + if (_kitten_catalog) + { + return (_kitten_catalog); + } + } + + /* Grab next tok for the next while iteration */ + nlsptr = tok; + if (*nlsptr) nlsptr++; + + } /* while tok */ + + /* We could not find it. Return failure. */ + + return (0); +} + +int +catread (char *catfile) +{ + int file; /* pointer to the catfile */ + char *key; /* part of key-value for hash */ + char *value; /* part of key-value for hash */ + char inBuffer[256]; /* the string read from the file */ + + /* Open the catfile for reading */ + + /*printf("catread %s\n",catfile); */ + + file = open (catfile, O_RDONLY | O_TEXT); + if (file < 0) + { + /* Cannot open the file. Return failure */ + /* printf("catread: cant read %s\n",catfile); */ + return (0); + } + + /*printf("catread %s success\n",catfile);*/ + + /* Read the file into memory */ + + while (get_line (file, inBuffer, sizeof(inBuffer))) + { + /* Break into parts. Entries should be of the form: + "1.2:This is a message" */ + + /* A line that starts with '#' is considered a comment, and will + be thrown away without reading it. */ + + if (inBuffer[0] == '#') /* comment */ + continue; + + if ((key = strchr (inBuffer, ':')) != NULL) + { + *key = 0; + + value = processEscChars(key+1); + + db_insert (inBuffer, value); + } + + } /* while */ + + close (file); + + /* Return success */ + + return (1); +} + +void +kittenclose (void) +{ + /* close a message _kitten_catalog */ + + _kitten_catalog = 0; +} + + + +/** + * Process strings, converting \n, \t, \v, \b, \r, \f, \\, \ddd, \xdd and \x0dd + * to actual chars. (Note: \x is an extension to support hexadecimal) + * This method is used to allow the message _kitten_catalog to use c escape sequences. + * Modifies the line in-place (always same size or shorter). + * Returns a pointer to input string. + */ + +int mystrtoul(char *src, int base, int size, int *error) +{ + int ret = 0; + + *error = 1; + + for (; size > 0; size--) + { + int digit; + int ch = *src++; + + if (ch >= '0' && ch <= '9') digit = ch - '0'; + else if (ch >= 'A' && ch <= 'Z') digit = ch - 'A' + 10; + else if (ch >= 'a' && ch <= 'z') digit = ch - 'a' + 10; + else + { + return 0; + } + + if (digit >= base) + { + return 0; + } + + ret = ret * base + digit; + } + + *error = 0; + + return ret; +} + + +char *processEscChars(char *line) +{ + register char *src = line, *dst = line; + + /* used when converting \xdd and \ddd (hex or octal) characters */ + char ch; + + if (line == NULL) return NULL; + + /* cycle through copying characters, except when a \ is encountered. */ + for ( ; *src != '\0'; src++, dst++) + { + ch = *src; + + if (ch == '\\') + { + src++; /* point to char following slash */ + switch (ch = *src) + { + case '\\': /* a single slash */ + ch = '\\'; + break; + case 'n': /* a newline (linefeed) */ + ch = '\n'; + break; + case 'r': /* a carriage return */ + ch = '\r'; + break; + case 't': /* a horizontal tab */ + ch = '\t'; + break; + case 'v': /* a vertical tab */ + ch = '\v'; + break; + case 'b': /* a backspace */ + ch = '\b'; + break; + case 'a': /* alert */ + ch = '\a'; + break; + case 'f': /* formfeed */ + ch = '\f'; + break; + case 'x': /* extension supporting hex numbers \xdd or \x0dd */ + { + int error; + ch = mystrtoul(src+1,16,2, &error); /* get value */ + if (!error) /* store character */ + { + src += 2; + } + else /* error so just store x (loose slash) */ + { + ch = *src; + } + } + + break; + default: /* just store letter (loose slash) or handle octal */ + + { + int error; + ch = mystrtoul(src,8,3, &error); /* get value */ + if (!error) /* store character */ + { + src += 3; + } + else + ch = *src; + } + + break; + } + } + + *dst = ch; + } + + /* ensure '\0' terminated */ + *dst = '\0'; + + return line; +} + + + +int +get_line (int file, char *str, int size) +{ + int success = 0; + + /* now, read the string */ + + for ( ; size > 0; ) + { + if (read(file,str,1) <= 0) + break; + + success = 1; + + if (*str == '\r') + continue; + + if (*str == '\n') + break; + + str++; + size--; + + } /* while */ + + *str = 0; + + return success; +} + +/* Function prototypes */ + + +/* Global variables */ + +static db_t *hashtab[1]; + + +/* Functions */ + + +/* db_fetch() - Query the hash and return a struct that contains the + key and the pointer. The calling function should not look beyond + that. */ + +db_t * +db_fetch (char *s) +{ + db_t *db_ptr; + + for (db_ptr = hashtab[0]; db_ptr != NULL; db_ptr = db_ptr->next) + { + if (strcmp (s, db_ptr->key) == 0) + { + break; + + } + } + + + return (db_ptr); +} + +/* db_insert() - Inserts a key,value pair into the hash. If the key + already exists in the hash, the new value is NOT inserted. */ + +db_t * +db_insert (char *key, char *value) +{ + db_t *db_ptr; + + if ((db_ptr = db_fetch (key)) == NULL) + { + /* not found */ + + db_ptr = (db_t *) malloc (sizeof (*db_ptr)); + + if (db_ptr == NULL || (db_ptr->key = strdup (key)) == NULL) + { + return (NULL); + } + + /* insert the key,value into the hash. */ + + db_ptr->next = hashtab[0]; + hashtab[0] = db_ptr; + } + + else + { + /* already there */ + + free ((void *) db_ptr->value); + } + + if ((db_ptr ->value = strdup (value)) == NULL) + { + return (NULL); + } + + /* else */ + + return (db_ptr); +} + + + +#endif /* NOCATS */ diff --git a/16/exmmtest/src/lib/nyan/kitten.h b/16/exmmtest/src/lib/nyan/kitten.h new file mode 100644 index 00000000..2cec22fe --- /dev/null +++ b/16/exmmtest/src/lib/nyan/kitten.h @@ -0,0 +1,73 @@ +/* $Id: kitten.h,v 1.1 2004/09/19 10:01:26 bartoldeman Exp $ */ + +/* Functions that emulate UNIX catgets */ + +/* Copyright (C) 1999,2000 Jim Hall */ + +/* + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ + + +#ifndef _CATGETS_H +#define _CATGETS_H + +#ifdef NOCATS + +/* #define NOCATS to disable that stuff completely */ +#define nl_catd int +#define catopen(x,y) 1 +#define catclose(x) +#define catgets(c,x,y,s) s + +#else + + + + +#ifdef __cplusplus +extern "C" { +#endif + + /* Data types */ + + typedef int nl_catd; + + /* Symbolic constants */ + +#define MCLoadBySet 0 /* not implemented */ +#define MCLoadAll 0 /* not implemented */ + + + /* Functions */ + +#define catgets(catalog, set,message_number,message) kittengets(set,message_number,message) +#define catopen(name,flag) kittenopen(name) +#define catclose(catalog) kittenclose() + + + char * pascal kittengets( int set_number, int message_number,char *message); + nl_catd kittenopen(char *name); + void kittenclose (void); + + + +#ifdef __cplusplus +} +#endif + +#endif /* NOCATS */ + +#endif /* _CATGETS_H */ diff --git a/exmmtest.exe b/exmmtest.exe index f21d78761fc07db166173f1303ce113d36752a63..25791ee7792d1d9fcdb5c677846678cdd000ecb5 100644 GIT binary patch delta 13620 zcma)D30M@zwyy43SOww&3d*7^vM(a5phg{B5C>3j#U+NsxJFrw8UYctX_y$xM5D$? zFwvLAm}u@rF}R=*O6E|D4d4N4BCS*n`A>PFD_hKa>%C`u)z8>_q37H3U+dzmf zB_tNe0CIq3z=e&3OnZlrVxSsuc$bioz#G73z;_cNNx*tQ4+Lx`MI>i4AwAzC#0-qt zLWmBi1FiyDTM3y7Q~>`1jDY<%LV5$4KqJrwM7$Y8YzOuN2Y^$+1;BkWA-kp#vM7g;d(#QwW)PAOlmq8yg4rxW zz5o`yM94cp(riMSUMA!>zy#Rkf(I}NcpDfnAKI8p$WmZ4@F{S-2tQ50jCq6<0o#Fp z0+)ctz>3$<%U1|l46FtUz@!Y=2;rxTeg}G$ z5fTQ>1xkR=fuq0$Aafld3xP*KZvo@4(Ay;m82=I^>VY4De*^C2gv0;~fiu7zpg|<$ zG~iW%@dK6vn}83LehX0z$ZX6pms$kfmyB?|MhsO z1MUItZWtq=0N4qf2lhG>@()gLcMzxp7Q|uX z0V{#qK_ zXTWiwyAm!1m=3H0+LW;CM|im~fRG;1n9Wgy!~<^t<0CP7fX;A293u$v4<)2B2(uoj z15$(0U*IiZ3s4Ju5Bv)-0I4B_OzjVk0O)`{fTJ(G1F#D?2^9Jj5wg_}b_k^U!=8Z# zAR_=X50C&eFuxxm34H+{LQZ(1VJ{3oZ;Wgo2mo-P#R02;O+be`dhLP93fu#tdP0-H zL|`uP7Vr^JI|n~az|VjgaO*`#BA^8(0humPIq(1&@&c9*pcc3f4Co3$fUkg7pm#TD z4Oj*21+D>(-61pp2h^%|=eR0rXX{;5%aG^UqKwSCPayLPmE0-HWq_=ooPDkUK$&G}FQ`O>dW!dF?o3bPM3PT4cXxfGA z$Uf1#sN6Z?7c`Pyab8<9hE(R<&{i}_0bru8Tr;szdgL#)N6A8b4Cc;^=ZW6s&ZWnd z5x=C%bQjPcaevc^TOj^NC(bg`Upf(h+6Vtyko97hT#%{bb)pqIrA;*5u4hqalq`P~ zSH}@C>!IW@P%Dd|LycLep_Wr$AT=H-rJV9aO7kpLj8q&;Rh*ZuMYA5F$5K=;_EvEo zJy-R#yh@%uP`z^d#71pRBdKW8qC%0Gpk}4!q4c4b^m(MUpueBo4%7oVud))Nrd`?= zUDlpgDCfL^Hcv46^BrfSycfj(P|*8~^n5us%ImD)8v}Fidv3HhS8aMGhdqPJ+9#8#kunq(x2^pZ1r{(StjZ3XzJn+ zn#dT4nvO*ECtSg7(P=kVb~0}c*b1j2FYB6xHUT7Q#u%X<<2FvXFMKO48;jSg2laMz zse>lGPnvK{I0{N%p-tMAR(2#$VR+SCc0S(;=`CrjUY_Cr_%$2%fi3;TVL%r)f#$uu z;FY{ry%*-vw61RZlwB5c0ZZ~`F3wBx(=4)E^71Rz#8UQ-vPpjP>?{xaefdtkm2_v< zxP9twOB8k!ggZ4(MB;y=f~z-ogMQ-b$sc`4Pq_}^iyl%(H*an{4R!P3F4J*t1J%o% zw9=r5wA{^|E2AH|4dB0gK=p2({M!#`r<*^&$%dA=2h*`V{rL!${JNv3H|I=`_DtnN zZ0ONm!8D;)7k;ZPUc>3qUM~D0dq#CMxGN1Kl!ishy2B124Cb5dj4{qKR1!lCoH3(@a4FQMXNaP1oSmE+N;!9= z8oRI*|Dlac+{}o4U8&_!3?Y%4VyU;>!ljd?_`3O)>cixEe2A0GCCS1p+R_4NDN?0k z-BHwWtcQ56R9l`iS+9`Jv13oZ?h$KEQI}%PZc)=JulN_fFiylpOU)Dq&Xm!Fp>yvZPI-=*}A?Z zy6fgb-W)5J$#&FA(`4o#s?CKKml15Il~SzKd4=}oLR-0TE1HdbTG+{4=qOYD)LO~o zDYdJ)&?3)FM=hF_c$R_2v$zb4r@GTcrnj_M=u?T6-WyH+*h2s9?U~qs4u8q=D|4Sr z&%s<~lgu0wZILYzLQv$Y4W4E;6YvKc*4A_-($E$<+Q)D3!33dRcP#Rxzi8txX7iDk zrNaqu`YTDTEfLx(^pPi}O>zq^L>K3)MU=@5H!B-$0}s!&;Q zLt1GmG2Myg_=R!r(@MXdwswOm&Q;b8F;kb3KKy4+^qgN@5%YMu=8C4OWTiAKNz^

gJgQX-?p@G|KRW|16b3drbQUULXP3Q;aij0HR{h%eKv&d zL~{O#uIL}ly+Ob1@AG2z0A|Iq4NvEV)x~j8-L_S6f?j0rm!-4;dBI{%o0xW=5yXwF z;-tg@`5R^9k?gh7SGQ>Qz+k>5iVh8Q<<8TIf!^rz^8N$4<@Ad{A8rzD3iRol7WLm; zqVhM$T%0fuzq(1g2Z2i@9U3Ha3F^x`-=r&o0+QE6$^#oK7V(gS&5E_fasJ|_RdKbB zM0(Ydo6UeKbbNK7CXD@`cqkld+DaAepyO!1-{ zvhB+b;8_vrOayz^v|C2AgL#-*x-dANyGj2iIM#NW6P$}$x=N*BPp%)e3Gv}L8W`dq zr4JWaNTAbeYo<9h+8}BWbCl9_M1X2EQ(6>_ErKD3le_H#mpI}&EeYvur?Zjyd0(d= zhlFt1^g@WQM^rcl9a@(=pVjFvCJAkd!O(ydPP>Ns72OYGIq)pS@HrYDEFq<~#%KdG z)S~C}uc1YF#8Yy)KRt0LnoYkZYC462hcLY3w&Eb29$i%oe#+uACv={%2(q$RE3;r0 zkiv_xf~FHv*jSwXYWhv+h=AlU%&*lZv*w;*r74Lcd6DuGaM~nybR&8PExdn~28Q|A zy=_S?xk@v``f>YcVVHlnX-`}9yb7UV-O@6;H!L&3KU7TXlobGRW5ui%0Rm_w;epgI zG;f?NZ;Q5Ou%lJp4OisalGGYPlfuKfAL#t>pv+6%PUP5%nk&H&S?`g}TNi@2;P|?t zf@R53Imj|{S1coCE{v8%SFlw?Ewx<6Iv_Mlo}|WXmWm>2OSm^*beTFv^qKyWvt05a zjClQJ-6bYLilY=BAyauMdl@P#r9BQ%Ne`hJE?QwP=Pf{94$G5?=dfeQ`$&HM$P!&| zL4NXOx-Ozm-)JJ;)XQsjS8YaSI>xKMw1_8A`gn!KtI);>zoH~eR4LLdtX&a@g`{t^Vm!Vc~PS;pX@ zV1pP`c!W_XF`eaC?3Vpdho#Vwpdw2tiP^oFb+<7EyJe~5j@9jLS{)~@T?2`j>w^m{ zki-vG$LY4MiDTtaNO%CxxfZ21t%-vTON-=I8*R*HnbUukuq9HOwM4O{deL+BU5FHE z&BYlQlSHmBu3ZZL%OF89B!Mei6eQgY5{^kBfh=EhPe^f$xQ!0^ItSKAngjJh*8N^) z;iAxqRr5>bh1LtFA}^NQGCN0JR5_C`m9=`i3z8>SZ!VC8oT3({*A`gk_k6afxv$mb z+{zGhZf6NL=7JXZdMwHJ>%V-y>>q*Jr0ze!28hrEi?(u3Moz~3{DmXZ-zf#`>&PjSmj`p*1$(K zD&_Wmz|@CbNsE=pa|TN>?Ut4FKAQ$buzqvFt;mz+g4@pzv?m*B6wIv9*Af?L!y{|F zC$&5_eEj4uZM>;4M4BaeE{0oJgXaNk(2CUNg1cw~11+X>MPLCr4CI*%l9x)CG92dZ9YWK`S*}q}~GqxKVWEKyQBNMf%#n8{9@ZCMKTS zM$2MO@Y8>wsj&mNXj&ZGKZpB4p8rZV|7%=^oemc~qm>ov80CJKgJ!cC35O&3&c%=S z=6BuiVoB!N3fnu)!n+-2cza7!yt|85x_^O%>Y5GO80?zv?Uv9JDfpKP%f|)gYzR5-!}ER?nhV_9wHhL8NfwOh(On(Ffs^ z7KPUMaF*`B7p=t>SsEX%(?cuOgJ|m@cfRTjwNIK6HTaCIaNb9U6TxKodGc&Z( zKf{Cu^e@S5&Uc7BV(H^CxFc0K-ImllT8*$?8d_u>W=u z+N5J)&s9VEt1x;msrRI+(`ZjPdw_812MC{zmc0J1CAh}}v(5A94IJZ#bT7L6g)of!J3#@I$3+RFGoqh`IV zty@9Qw6)%%t%eYbwvy?J!M%8#7Hk^q6RNk%^GCRNvZu^75$6$k-E@~CFEf{rVy`>u z&(1Ci?IumBmp=90cW3Z%u85qnNH9bxNkRW5!L5@SHDlu0crEV#OoB1-@_1zhStJ+& z8#3V-#xm5_-`IqtgqIUy6Vel`W@S&LcTP^s9GRpfg?2)H(@$aMT`mcgMY*P@+nt$l zT4~Qo*(9IQhJ&`{KWHWKT4~LnG;4#q6TB1i6WbF;C(4!%?FF2in30v8F1HvdG&J1} zGw&=;s5=;kX@v8@qq^qoawQ!#tQS4CsXhiK9uw{8Yxhbu+DR zYwCuxw;(!bSOC=xbMSHbHZvU!mE22EO1)ULRp%UUnK*|Y>yEI)pVx==rWG2u&>>2k zx$X3dJR)em7c^%C&22%01+TSI^F0pSzO?x2Q!FyA^NFYK!y~yknmRlLzb~Z5@qPNx zF{!~wTpu3I*Y>7wjqK0G)8rAMMR66^OW^179ZO8jary8o=Qz#n(v{~){+PP5I2?${ zx#|*ASzKN+ax3c&J?1obE6zbU-I2=ehaUgA{X$%G3OazGKlU*UHq|u88H!DH&2h%9 z>}Q|MyVZD*RYDp11j4%1E&lrs50m-K?!!8KMbKOmH1`Efo1l>@HCNE#sQ#FX3d2N| zm02IgtS;&AdBw=QT6;5IKM0zO0v36M3Yv$NnjgUHvA@jg6SbAsuE&hm|1d53Q?tg= zIZn%ZEjbhDw)brVR`YGzB$J2$Q`_XlyocUNe!@?knF$hr=s-&;n zo-gjpiifC<2T2ibbjRpmR+_KdD)TN0l6JeY!d>E@b(Y!W+r9eGWn*0X%4+2-4ujeL z6WD$`j#aIv5X=yljSW}Sls#{XWj&rV#eO}W$r4a>i{#HaTozYxt;8f7q}gJSH#p7x z(v`?ef6gFbu4S^hB3BYMH!Nn^_J5dVtgGQ>2Q$lMro*tvcbHjz&IZ5-hC^434aW@m zZ0yrX^G&zsB%RXDD(Ut#HfjDt#%4~_Qo2$P8PS0{Od4wsEHWbZp{QxL$awGnka1ym z!&{Fa-BTHvpr12G#T+}r;#r3>V>3$c*+yO#avlmf?KowJ9r<{{hJ8v`c9MKo=o?{ALRpfLSo6&7rGOlNW%c0EwuI}Xd|EYdqoNvNcwSQB6Z=e59^+;_`enu@F zqt!aP_Yq7G-*`oG=|gvEU-x+Xp!HbBUYk)ziX+W9RmXnkymZ-v4oHvZcX-eR=^lJY zZz`sTy8Yo{e5a`u_Xeeg+0RN2_Mm6egZRA%=;QRy-M9l*hH9Y^n}AwUjQ!vE1N3l4 z9PfUB{+#wInL)g^hEB;GFo1M18ktYiH!5+dnD!8tKs=7s&G|~9(fEy=BdClI z@}xn2}gyC(z?F%+bnPXYCqbNHH9DPOH;D@grs4cZ88_w z3vhSr821Zb>~L2;A$eVOIVPd4c(y}lg}yk|K`D)k+P6M?HqUzBJ}H1bye8MN$92o& zgDKwpa4p|?quY=F8rjpP>)qzyf6OliLi#wpQ>Rke{FgEG1aZ8 zGK@PHicoNZNm{5d?q`d$%sleE7_(FXgNv1um8mY`)b8=$<=a1N`X|eqO(;)%P4VXn ztvS<`#%AG|@xE}5xy8T4Id*p5-rmHX*jb|x1Us(mfEt0e^PcB63y|>Sw3q$#cIz(a znj_39?Q7p7L-Lc*-ns{jAgA+eVBVia(#)J-9_JgyIXzTq*g}6!w@i=b*H54`XY{2X zq^jtn>Cwu~6X5LrJ<5k_XT&_8P|>|J!uWS5&>J%n_%A-Cy=PA4(?6xlW)AgWHYUbo zDWQSn_=ZATu{(D^{#fB;wi*nb<*FRQUfO25vU@HRTn1I;d&`z-)!XLyh5|&2*>^==bWMVA#IzLz)U0Lr2>9V zDBbyzKaO(0ducttH-t``J;rla2nO};K^#+_lguH;pR%&yolEc8Yhf``5^b2B!nsqY zmt*`FhTy~rq4D&b`WiJc{wj3_8`}&aob<{IIM+$qOO`04l3n{=dwDF!+B=Y&&i_vk zb$lg{rB=NX$&U`CU%#@_yJ6 znWhw7wMyI#M!|=Lp@(%Dw8xx9i13B(y5=fNw(gQ(BV_Z)#mvPGWQTxyf|FKhtgpci zg{NQ5*}>QSLdUw;qy zCYxiQ<+T8hxdB3R&ZK&F^eox;zkH|9#K`_l>Y0-17(=XnMVVHHX(+%yjp)q506UMgMLPV!%6 zXOJ2{-$4QnT^>rU0rcB>BRD(iG(XB&8-Pj*!$Py+vI&CHaq}1P@A}iD^Sg5~^y2)0 z?oRzgI4zu5W<3#pmlvTYed!AeLivJU>5v72-;P$H!FXKEdJ=Klu)?f6wtv)VA9M}8 zbhz{pJwN88^8vJVfg7`CjK@-iEMaL8t_Un{OH}%rxVHGVf;gdpbvI<8H|tW`!c6w4 zUO0ho+D1DU2H1Ui4hMZWa-2_t7Wwi&ZKK*nJrl!l*42sQA0b;Url`ei9H-=Cxbx~P zig2BwteT~ii?HDp+#mxw<2gfFJ&RT^3UD)TwJwdk^$G;VMb8=Z=Au{llC5;~>;1TK zbiwO`c(1MdK6`x-$KQO9wk-ZYHRL@et8R%q@ADr0WXTSfqRld+l6$yWXO}5-a$d0Q zxm>p8Th@} z4orrTScb@Ru~Kx(Q&try8`bL-#9NA_^w)xPe*F#lVqp#+af5zXI3*JYjx{eT*&3{^ z87)8A^`kQgF>xR*lB=AFixURaO^(Fj86dA|83l zYK^jbG1V^3RN=hD_!Hf|G?vfUxbNoDg`6+5)2dw5o6T%V4cEa>t{2XUU?~jxctQuzOnx?GM!gNi-2-$RdFw->&$!W@JkS__;Yk7<# z#4o#I+}NlwL8zI_-Mi}TO6r|>_^_NO%<;jm(8}c#;ZyD||C;Mbx2^E-{GbQKEONp& zw>-sRH=p+sPWaXk-6b)_Ny=Hj@5dDbnfu-6xY9<+uXUq6Rt0fW=#W*u{2@1*yGrE3 z>HSq%{5(A!UE0Fs?i;vz6UU$Fw(m^Y8$AEyg?*#eb(7t9jDA z{2IScMJI~_|G=5v5&H&yh9gQ-qvna(Y{Y$(?1{U%pb^|6_wJf>FqhaELA_aP-;QTfESSYs`z%a;LyXnPIPsRT~xY4U7Hq z)rrX)6pQ;XzEl^~AJ(wdth*enepTt=`kHbIA^;exv=+4LS7G?CDJR1UQTUE7*zRQ~ z-F0@mvw-$`%fzqjLVK+b>Air%$}&&X*e2mdW)8dk%7wMwVJn?Kow@jFVLRt?6yD<@*nW1N9NNPFRXw!wDNu=Acf53La#>tw#E2rTM8*S`l zQhJ7PRQeZhJdnxU1U zj=}QGz}jt{c1#$=t+G!LJ;%e-WU$e-D?6F5l6{i!oepH7xk4|-isN{ut`9!fT^3?2 zOpGVkGA+k5>~lMK2Jm2cw9Cd&XSg#ZzG;AVL2(^VM{U%?)`a}$r|%P?J8rO1x8fKZ z<|jgoJb`gJ#sVR$SMYp;p4;fjo0ihHjp?c-xPCi9Q{EZrI8O;()YmLv54!aoE%Q10 zrW>NCULm?RD@q>g?ef(noqH8|0Ya02n>6gT7TCf7;Zw$xt~8PS5j85@Ej@YWgGARo z3c+=eQmQG0on5dLW$x#++&$50kD_j`qUomYSay@)!AIRrKG-?k_@yN;?FoJD-2sDT zHCO~lLi@I?{ii-suaLg~L@r&eS5z&6OK(=}RaEa$Fn^yVhokh$yYB9cN1`V}lmOvU z(@m_`z6jZ4**9$aTsE!aXvAxMy<60fS~jO=LttH_MbA~Ls@3%K%_F&8w0(2m{tasB zA=}&P(f@;LNm9o*=6?g{f!)_*HTyEiBz!CAC4?;R_3Cm+g)m5fUrp z&3l0!9gmE^v78H$Cl7KYIH#l6$@ zO5igROJ(13n~2-i5@|aI^U?F^TRR3KoGocwp$t5_mm8Xb$@1Wn>C-3Gr)Okih!1dF zaZSP7@$|F z_#|gMYB{wi=|oP%&ft)S8n8m9QqWI9gd=6m5iS@XFn?*?!O4Rmx~^7Lt)gppE*u4U zuZaci)vHv<5kS`+5pd7i;a^>jIR!&7`Bzt{Dn}@bai9{Q%X!kM!V!wzu91C%t~(|) z`d6=1`B!)r)4?BwP5yPOVY)d(x@);~ty--TT~{&VbBFV?L{Oq@g{rDtg)}>obGL+H zt5wq1TV=@*V69SBuT~k)OV!UP<*Mom+W1ijrb@nA(j3BUVBeKWG5e|V<5Zs!U!%i! zi_=V;v5xgrcJ0hP!?nv2(APiqVs7@5=v1r{V^*rLRM=q$uPUuq8ZQc$f}K{WntpHk zUFTV>;?AI>c?#+MEi4+r&A)s(Z~W0X(W<#(RTUUm;ye4QRp=q4U$}+&xRkJ{>o*i*ZV_$7!EwcLS%~JZbYJ`t2tf zX?pqSB>U~`w{e8x{SO6xSVMZeG6cJ-+Xs?mAU<>eQ)I zr%qKh8)|s@dp>W>q`91d?Bf=auFf{wbXSs3$n-IU1Q7e*LlYq#-XUZnuo(CR*bkfo z8Uf8}LbSl%cL{li65_d*kZwRF@a=nq`~vXn2yq9(fy3(w8MT3s1;D!-NFFK2ODhnz zk&uzVx4^H!kWGXX0Y3ol?-Ozy_-r#F4}p{|U;vZ=nyrL90}KRK0`CI{fYX5L1443v zZNLq{a~mP`nS>;~KnMjaFXW-OAj}2wfp>t0iD=Y-M(`X9oSH<)O~49xPbQ=n&<_|3 z%mWGl5!eY-0Ox^AKqJr$BuyctdKw|CrxW5flaN5*JzzI*H}6F-n+0_OrrCsi2~3?s z$nP%^(q%4G3xoklz!czfAY&l}ewC07fEhRi+ys6H@)r>D0Z;+_0Q>>?qx|Oi7>ap> ztO0fa>p8o90e`{_kpe}2}uOf00}4s&Hz6G z%|Nt7$n(Gj-~mvlQoH&VLp#7$U=MH_xDPy2g0jFzz#(9}3GcvaFK7t3?S=98>jJ|A za)2Gc1%P;?Az%tn1ek$afR_&;LxI;k?4dX6Au74Qq-t0N>1hzBx&tAdzyM4KUISt|LI!j6g5aHZ2(Ql`RX{258E_o%6$lvvya=oS?g`MrL%i%)6Ji7|_QM414;RuG z^8k1g7#~N-TA(ckE+m$akZ6o{1R?(f{snvr90Z<^M0ubD*Z}MYP6FQnzW~oi!B2)k zNMHeA0&WN8L1Dpgp1?=I#1JSC*aSp|qUXSeKwNK_C~zFO28;>9-021MgxU5WWO4u+ z?hXeHEY!k$0bkH(0=Yn~KOx24V2Z$Lpi@_L0!WyRpHaX+;k9^{dc(^L0YJk8$x8tn~bg1D<)OL zcTLeq!-eJb*-pz3Wvdzxjka+RDn(PkB+Kk2xApg#xkFACbqNKcnz z`Vk%F@*Eby6qKVBWD0WS^zvM!1lcvQWKP>O~+{TJ`#p7~L8eXp)P`lFc9dv!VjunrHhe7EnHpyjUmmkVfHO#dwzmV;Y z^t!REUY2S<_|;nWf-ODKp>N&<@n^G!$SbVrW}d`ekWFv z%riw5Ew(eB#fPLTQ^gf`ZQ|B@w&9YYNxWF|Q_WA{9d^-FTl15oyDP4Y!LZ*GSH^*N z>onsFlOM4s#KmR7>=}#Z&YtmFz^gM}nYZAjK-ayt4wTz_prgOg$;D;PUoz>p&m{I< zoHb)n)}UaW-evLZmmG;q_CA01fWbN&$RYQr*d>4y=}3|$lDLzXs35y{=2)h&RffWd6%|% zhwy!!X+hTrI>sl2zo%ASxA_EcGCk}wnm_JD5Bo;YB;Stw02jRWp>Ozla+&myZ=_p; zpU^NuXn0Mi*x-h&!F-mhQah@vKYw1sUfmjWe8cN}!)Css$Q^_vKEER!=NHKx1@p*` zmUzp|h7!_XCKW0>{U@sTi{dPl>l&%5xZ=vn^4r{%Dk&_B@7F=0^{_u)aA(r-6%UlW z@pc~T?6qB#BHT3^=mTDA52c>Bo!5DLkuCNHW@{K1RmB!(`*Wz$XH`WK>lNs2tmAl| zS6Wk5ba3RaaH6H!#AhxxW-?>q#VXOzCZ3b~QH$0;?{#Ore6wcmEfMOK{Vtm#4Y!M`Sw9O*|<-qoWrBKb`Ws8`kYRww&AYc3t7oPRlRA zdrhzvT5Z{_lJ2%-xFhGLDq5ZHs+W_0VQa@D-=L5`(pY}k6J=SuFUs;h>%DkL@kLcc zzIcmX?itLDp?t46zDoj)?-k?!(*S6q?wFHUDLE}~S)$2~No>uD1fzba9R31g&9>E6KSoR}4~0BzRC`P&D@qEeY~S5K6?>+Y87&Gr{encOjCO%BMlLKHcx$v}b5U zpZ312X-U^84rDRZaK7QV)#m;DlTm#N-DL!6?Xm=Ua^LK=ij}KhvezhVb~}O1b?OxcHgWXXFojK6PrmPU zx+E+#<-=HIWCuujJOp9WVr70ph_rrLLb)4}SJ`tX@{&`s;cm7%S$8k%Ib>jkZ-ZIP zqd$gq?=&+OGsx3H6LVVSBsZMW>_o#M45F{A|x$vsVs6jJ@ zdHqPPs=>%9-EMHx%k!?%f{1P|;m!)b;aBO05s_Rjy%-VXpWX+f4z(+tH?)OFgTyA) zU}!)dOFKmd=XF9;raHKmd^jB)50;QpZ(ivPJJh4+?_NQRaEXo4tlSe;L*B3ImD;lG9z_R5 z_u=l*SEIu-{^)$n=q%|jM?mB{|B1X~C5V9Mi$?|fnzOHiB4cp9eWYx;{S?tJv*kr2 zyQ7>&td+IIY_rJ+<7i`a0AE%|-THK&R_LLWT#fZ&U!Ca^lOWYiUKp!T>oLY#>p+vw zc7RH{h_&$1yeS-6*Vx~66+QgMh5=29b#2)LHCcq<#R$aLl%s=+TM!7IT ztQ2b;J}M%D(RHmX5NKt&v!BlG7y-q?4%8qr@6swdF}rzyQ7EvUt z9nSbwJK1asr@xkPCh`JDiF|wYyr=4W5_y~>7rSI8iBex;t;2mN18`j}K@hzNPa;=h zCJ6GfaJe~LJR+xrvC@d0Q{7^2qI*Fev9_?vm_uQ8qTzPeYVmuq4UzTd!o@omPsV;< zaKq*i`@PyDk9;nat6eY3TCUQT(HC7Snw=ns9Hz-T2l*iOEsfIg?hPx7e$GeKUrkI-t9O503 zX6l;4E_StvSH(8bc>Ax?K{&~H_iuz7Vizvm0P!Ff1cX>(s$k1$dLo=gF8cxbG&0UN z?;uCS)J|;in&@e&O-`95EKxOFAQggrPjgIb6u4$=jg$qxd>&dt~pwwzmRv1N-cTWPgy)kV3C;<|F;DQ7)!gnshrhYhRR(MBrTs1jJ0{;6t+ zwaFLQtn6dwjJdTR8_$AK8e5Kxk-!j3shtpHKn@FeEQ1`Vws*5S)s2~+JGQv5J_;d~ zNYW8ZA(B*4sqaFKH=M-D@7DAS<-%z1egXW5@96XWu46+K(La$}LTC3s#=m%xM#lH$ zM$_r>y^ZRNiYpM9D=>QwJJUzhjuwhFX~I6w12&rti4KRdJ@Oy!$?mkz)1J(77Pq$9 z#C5GUOkjJ2T;Q&kTQ0D$UDs--=s~%8f!>Or#SgncM-Ldy->;#Y29)q#t~4wmuJhun z-X-hwwsgfR4xsRq8oD5%8;4#b6ma)x$HczjrYk6u{#2RV^Kh|6x;BTVA8l!a&(oI^ zhxJIs3haXtPX#JZLe0u^^mJmK%f}rN@gWi%Nn;WM=((hho$uD8k&#a|Qh%2ImgLK? zI7?lUm!@jYVkAwqrQ>n#5G&q(vfWi!n-MhJJd6SD{6inH3jG^ovt@UPJ!J3W z5qPHH7`kL&w|=*NwdH6`#x`4y0F$=mw2Do(oEE9O{3pT5f+tqz8-1RthV+F#^z^`P zFYG*x_QZ4h2{&#(;m4t+!GG5hyktoqG@&pTOxMz-9(piY^@#hcPq?#M?O~9YP-5_McLJ5 zpi@%1@;C^|O$m%ryJm$Tc0A#$a81ThOIByorPz8luTx!3heO!0Os>ldlPl#@fqRdo z9Od$a6LtwQ1=%_Be@Srbc)EF15*x5JVUHykm81+FVvlGXjZ9wv%~AQ7#J*Gz{^ zwG)d38aA{m-S(_!*T-8BD55U#(WzMlNu=F}2CFT5DrPv|R#XgUZ{b`LenaSjp&bIf zsx!u+se;={g4~tGUKJim_PO()ho(d9WNX~eZgl<#pQua$2Z~1nVh@SB)1vOIsJkiZ zZi%`(CA!l%O{}r|>ys=_tq4q_Z9`+ZL>f6Pl9rAPqg_XN@`JQAVpIf(2Z#0J>$}s1 zsl6eGc6d}?V)3;Cc)M)30&8tzHk`|OPIt3#=>?KKs$zK}&ij;HO@VcJViq=VnAiV# z$mwnspNDv+LnT}P^YF=j3~|oMQbpAJ+J?bab8TWnzO|w@(egg~*{krrV>!Sop*yr4 z;(Asr`ui>qQ~12CWnI23>aMcYUDqV)S)2p z9`09|IWV%Rwmc(=zU$kK4%2l?=<18bxI8Km8+@!fB`f~(5X&;!;6QIIpPZ!7@7d|M zL2vM3ZCy#Et4D`w0uvcS`uo%#^pehlzvbr`r{ACNt*YphNK;b#@H7647@Y)Sq;O3m zU#1IE!;~=%R#i+(qGO-yMdyz6;3hig3XeF(BT}8KmM{1|wgHq6V&x;%HzQ=dFU@~0 z0(_M6?wMR@JDv2rcTYvVfn6Uvgl;`c=Ct7Sm>pfR?!hD{ zjqal|FaK|&-0A(4Q4aHdEKq3P4U#?Y;PS-cs|8lYG;Ma%yw2(F7A{5RxTj1LhPzxb zT;$4V=FVzx2y+Yo9{6L{lqS-sg_O|-3N1}c=VGAbj9l_S^weX zkag)8Hi7;kWi6*`EL>U#Dba-rOdv-e>{254o}{a_OL_bMkn)`_4evaFe2=7LqJF|0 z7jyIondg*e3`oZ@b8Nk6yeAr4aG?O3dNu&|99X!tjbwX6=kUS>ZBXNlLD1qAm9f=Q zi;mM7X}(Eb$&y4luXC0ssWA$!HTG0yeEtlmO zEnPYGb^rJFJI-ue_30HPKh}o(1MGz^$Pc^G&iX|DP&b;U_vc4xksz5(tQ3-fPv)wsn}rQO4o7mphRTecupTfR|pM75<^F?g|7@{xb*NK4aw z`0u`=2hw|Y`?w>H^)1Wmv;4#w?h>vlj80+|0#miTrX#hcAJ%~N;qp)Ev5XNonCmcp z2wR88jNg&>srq1y5OHn~Y2IC!(!!B!U-PN4Wi4E>dn;GghDSSBX2pZ>eSbBd99zco z#qI)cwh{T40Qv0zw!E6^+DlTfdpfe;lbAWK`LoQdWU1Et)tKUw|B2RQ=+leOnXVo9 zd5oDGbS6-$?J-HZ+y3!DlKoIR8$n;2;2J$vGYeE43XAnI(VKP5An1&j3g_nD#WVau#wkAp8LkGx3%{97@!bW+?< zbgWhy?JCB**HySqim|1(tlUV3WDkNotC|@>NoP61{9o!zJ5P<^llsyjQ@iBl5V?z; zk5QkFp!sZ-t}U`!cY`F9=(d&^no5i}yo+nF`lgrYZs2y)&?5JbD_nYqWNV6aJ6Gx2 z3=?53dh@3Sy?2S>Z2Ep&qHT{8s|%01g`LBB#d6!yDDil?ifnxF5O;F^Qci2)gS-xD zMU&30nsh!f&-%~%*mKx)t*eHe9sBHZTi!*5jV))BEoZa*)xQz5J2oVbyN*ch#eZiy z4u@77^eoscVFk_G4RW{*CsAALOKGm=T}sl;hJf`5c6-Vne5sS(oCXd2 zn@*bAk6&k?fySORZJ{Lv;G+UIw^jE02@h3tjcwkytuoGM{*~zHItj}Eev5Vd!~7_OHUMh3&xZkpv+x| zWo<~T%5k$3V99qZ&o;~?Pce$KGx7~p>gTd{K1KF!dpkMXk&Q!)PA!TVit!8Rkm+3} zD`oA1oU`PYVP?pc8R|KG<-Vh5XU2zwN8!88WIiAz_@Z}OLsmZpYCPJZbboOlk}Ll&##**o`! zzc_|t?Y%i`96u|9o}QJ(QbT9Q^6GG!J$tF&)o{sxdtZeUws-lbIm=3R#UtOL9p_-T z96=Y)d5$@QT1h)cki6##Fv>W1`Dpa8;$`~XoY$}?61}h~wP%|yiB94~9=Y&sxQ=cW zQBQQAD_APoHSsre(M#L-t+%Py+|kd3geu;y1H7Fy+)bVlPG6tfCG^&}NFSS`sZMof zrwp#_fXmu4yn}OAN1Q=1;Y{^5@7L%jb3^?@dW*Hj7b@8uGIO(v))hfh=F;Eh4&iEO z%)F5IgBZ1$jjRBb{6Lr z+PUfOC2KxaEq<|ZX$#4o%T92)kf4F$5%#vbH(mAe2<{j?`*NIzn>{#QXltmqLQv}Q z%4__%P+IVc7xz0|_e!YOiCz-iI*u6)?cyKGGW~TgTJuU2Z@9B&z8IYUt5{_@DjC{i zZZ<5jnU3sx?o1$h2396qnMv9YIoZ^kemdWW88e3C4V5BbVID46?0#Jmf~;IqVpC3n zSjBpKdwu}xk^8F|?D68O6ZkJT(F3oBx=82nxdhH@|D=tt2JzLKsOJLTJKxJdJvnuR*@Xi-XmkCM{HoBq@WI$iE`9j$;`r?96pPx25Vh7%FfrR3c zHlLO*c!{6Ak-9GI#a*S*3kUM5jeF-W9LVv<*3;dueV`6n&ty$|-H%tVr!T+0&GW@| z3ZsJC_{xG^MNz*+5zb9>nR{{xqGJ~INIWxFFDI^(NgJ~SQmT9;lrX7IUlW#Szby~@+oZO^KV$CX##iNBHL+j zap#m3F&$~?sHrXjACXLgk=TbwyGD@Q*9xWUglf%d6$y}^d6#~cHI9Gn8s)Q%yyrDK zGkbCdPG`-N1Qw*|%`=rJyBv1rC9Nwjxx4YUcnx2=L6D<~VtQq73!?W5p>!r@{}iEY zmQc11gy}-*Bs|s%Wk#WF4fV{)P~(K@)D1c}X8<3+W^ZZELN18eY3T~odz;yk2A+eT zR4Ja9z)l`=405w+((jE(Tz;BrE8O|~kU@N_csSpE5HH}qVTmgX%UNFRp|Y2SviXAI zrdUM4E~__R7puW`A$#w)n#HSDw7`x{jc^!ZHv9BP9HW7mde0F`=fZTY;t0ibyD-zW ziYar1GLSEc^x7NoZV-QVy=85+&I+Ld-}LLGb}guM=i$PP?ac4Nt-Abzwj4at|dgY=7h13&r_buDP*TK3*ASkLiBuf3+iHxaIO+Uv5Sv*Nt9E0?nQ zyLDw`NPs6hkW)4ML-ePp(oub_6&Oor+C(CUAxU@xrR69hs#(axPi&CiMsZN z1vdL~Mw>*h0cs^ctBO`mn5pGAMHX=hFHRAb+p>mY2(VB*3o1=6 z8r+c$q?pTFzRX~hl|_nEx?H3{PP|(Rq7sy(zv^`I@;-A?#)&B_9>rLGt=@g(jDwWezmOit25O}bv20m~AkDZDgVkj87I zC9YDIv*}9fnLw>U{8`Fz#(+;n=cn-EXh9sW5$8LLOI*7inr!S*460`GGe zb(8vGThJtXunQ(DzAa#p#1VneJ1+&fnB9>nS%&>9U_P3(EIO>(~!mZmf$EI zwPvJSu>dVqnoaCMKUkwTvbj=oUDDR6B=1^P!9%rcwx*zMk18uvtPydeihXsyGbR(- z7*)8`O0q|o)kGfC{@9&L-k+*O@702QJqvT@qP-~dq-WR=kD*waUFkfUFj!H8y_rF1 z#hJD8$f?(<wX3);k96*cA|&m0b?FXz^}UhYE*iS7XYXo_e4iap)S+AD8o5D}Se^Y1 z{2R=sGwJ$u2JQ=bXI+?oP^;xW%efeP0$(yl z7+brZD6HfPYlvJ$uw?4LJOaYO0H z8~f=i?mNQhN_p&k%l(D`H8W;Yol0|)!?)s036J&#$=-LkMI*(Fp9_VR9v5-^k*&g| zouaz@ltvt8c(Q$V%qG8Q6n)?1MDLp%n_TitI(d_&>o2!6#zAWKC6&CR8FWOyRpJlw zJ9OInJ{^i%aZB1Hzu7#^NLOzTnmThmZev+60^*UYrfXbPl|by%{gHj+!cDyDu)sO+ zuk+*`D)Df^(pHS|92Vta0l^));*fQ1az{0M*;KF_F`piNKRj>GHv0-=H|t6ar_+4P zU3ufS*h8@wEDc~F8Cqpt4K`S$6$?D8ME>h7RrW^U?%EKK;`HE4duj2Md_l16%19ri zCjab$sVN>Y)z{oOrma>ftvLac@Lm~DxGq}hnrbYZdr0DG}^!Lr7-fGt(C)1Ibn~rQBu_~l!?G_rn z#h;D#s4d-50v{FGD+d)h#oTn1Sh{5}zv^Xra7%xL=LOZ9g|NeWxMx#MMLz!aJ6O=eQE2k$M2tS)eQ%|uI#2N_K!@*@%C^f`GZ*guuKxk@q?e)qh{Ol z?9sh6x=W7+C{E5l!C4O5kEsgUkTbnBBGUV7utKIF)=fslChwjjUbHkbck0-XD%zI3 zcc@FZ)2~YxJ_mWPN;xfM+ttVsK{p)|ajD-LQnnj25aVwRDf?JmGD67530kPh*j}y1 znVH(PdIbA`;fPorQnpncQmoxZ7jBQ9GeAh6q}d^=pFOPHp_bK~6v+@UZdaG>P+Km@%^M$4cB{)irVqA9Vpe5q>-zzl^YWv>Pq$-rIaby X!g7rY{kJTP7qC0B#^ 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 delta 6913 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 TQrGcGnM8%9Lx!Bix6l6rYpCIF delta 6508 zcmY+J4OkOb*2nKml9?o6pnwR15U3!6pireElKRzHzYqZf28h-A-D)i)*!8sp9kC39 z>Dx}XAKF^cZlA7wx3$H(5xW$Pg3_&uKIv08O#tZUIy8ZCMMlhE!iKEIR9{Wx>x z-gC}96PtUfJ3mnN1?D?sD*1?7Ps-F@uZ1PmgnST9h@SZWZkh>UO9&|iTfq*NV?M@b zGtib2k_es#&w*{=U2p_+fCqpsBjhl6+CqrsX+k!Eb`Z9VkY&rrJmSEYcfmpM75FE( z2SzL>WGVO%WIRL2V(=n(6U46|M6(iY;4Sa~gspn@@C1r`_10K>%AvK5!k}0W*tW6nGPS4K9P*Kv#^70r_Ax*akiV&)Sy|5(u|R08fA- zumae?|AGVHIB1tY6&%wF+QAuc9$W-n;0m|~Zi4T@9nc5*fd>o%TFEgC&;lI@0g7-X z*BGRTqU;$N-sO3NU~fzzF7oT#ye;zzi&4IameOfeoM>RD#W*3Ty*A zKpk*^7Zij9L=!Sh{IhZnZ17O9lZKr@3v?g^goBYF2E>CzkPOm52FL_cfC0<^MlcuT zf_z{CW?%u!!78v0Yyjn;5^T0ZRDo?^2dD!M@EUjn>;ikhKJWoJ06qqvfy1B)G=t-y z6|{ph;5@hpy1*514cr9ZgFB!P^aHyGVi3^SEe2?T4upVkFcQRoc#sH^K^n*anP3Vq zfEmCD=7L<14@|%eEMPfU1=fKLpd3^xxH-&be5nH4zz$Fc9N;zZ2G|AmfPLTtZ~%M^ zJ_CnA6KDqF7mS_a#Hnm7WGR~t>0lEfKWA@Dg33ecWpddp#5puP53gkX*Cgde;A!J%WIOLN7 zb9J(ky{u-!chX-6ot*e?Knyy*2$(j?r`^D6h^^FjC(htuiEV6pcX~g@MFu`G^7j$e z_kAP$YOei??()E7sChSV6y(vsvFsYAnJABNqB}4SEyIR2L7p164)QVG6A>KKam&$? z$o);JCRS=j-E3;Ycf1Q~>U32Yq6x}{EDl-**%Wj?M82=znlb79e5GtoOK=Z5_db#X zdF7GV1pkoxEV0I?cf&Z&MLRmvTlkkfEcZZZ`$5txFe^SJp%^1^XTw7beTwraY{TS7 zky{4QlF50L|8BwaTSs#q)xTQ^>K-;vV1*+3=zU6R49lU2tz<$AZ|uYHl+Y*ycrz!?4eiFf#4sN6VAui3lHnO@Sx0)y zQBM5h@R?}3G+cySA3hFpS9l#{!icF9*SLJdeJW5M+r}t06oKC5ktyhPL`Gt}IdbzY@=f6k#dzeT zI^&>khkSEht|n8bm!Fzy-gLq@k2CaRp`1#+`%uG1bxn({1H-YM{=qm0mzD3Hx_Q%^ z|1nq?rx(|c%%k~G@yn5?=?_B0x~O$N4@~dp3|Ez;Y6D++pRdG1F->_IM<-nAk?0W` zET`qZ?+%ehh8#5G!@StS-` zi(dBk-TDm3GkV!M@9Jfz)x{-1PK;Yd^8w+%NuS| z@twU=+IE?`s%CR zgWg3Z{uqBzVup!V5-fCkplC>3LT?Rhd^?e)o=Qkff4qWdGH9*+Kku8M}!8*Q; zI}tecEN>jB@m8hsr;aMf+dn_3Id6*+DhINDwg=?ana|dm&t=&MU;3%e==FPPr^@PBzf)Z^WkLc(}pk4uF0;cZ{C=|cOcDq>d&TkJKCg++U6G%cw;|r8K^(Y=iYa;@uog$ ze~@7D2*&>A>I8lS+85G-WkATiFPQo;=lLN19N+%idVDi6#P=Z6W(3Kf;wLGZOm}y2 z!6H);Opxy$Am4ppsbxt?nX8#3{@4BUwe@G4)rrtLJV?Bg63M>PU65~r8|lW$nR@;> zIn>sTi=m^s#kz3@y1PqkANM+)6)ZlTT0*}cEdDJuI`rU}Ji#>Rt<>@lyp?JMc)%m# z?bHbRqZpA%+dyaZi`utDg#k69m8$W({R?|i4^FCh$F3N{@<~hr?a;)SzH~T&j zb(vdKLQIuP&{eCvnVVG&uWO|=g7o^*c)9kHu8I%FPo`gtX`D3SdFoL)${K35Lii3X z(isC6qs=bGyfYIBl)o(Id$N31y|SY%wH&93J4*UXL`{qJYpx3C&&`_CFI{tLh_olx-Q|8x zFsgHCVqJ^l#<~jj-wIDev3A;rNk0jk5;Cnq%8I%ZgGX59VkrXk7HZsj)-ws1_jpt zP)bs;DBov~a;GUou;_%`;BembaHr{^VASRdra(E@u8$eYwK>zt7Ilu9*cB>0aW!t4 zG*gAAYMByY&to~mAr-N*P6|o*kjkHts|}4R;y=hcs|}ywd%LTR$!EWq)W#ID?UUR$ zuqj^o-L45+b6GN%d?kAl3NCrDHMZJt7;{2>O>Io2Dmk-_c~M1(*(H4v;g;k{rz0F) z`x;|a`#w|cJFJpwy^gMG!y3$r@ZH?1kak31mn*a7*nT@Z3i9)8xlp^C9R{hI`jqS` zf4=2@z0EktG47pMkfAM7eyZSI7p_yT^wS;Jp~E_L3SAf>9-Nv=Q;}lN)N}NPh{jKI z7NG=eR6L>qPe!)67@E~x1JpI@xRU<8(;ca0Zeufz3P)G~65Tx4{*8}ZzyawntquqLK= zOSiN`Hcn=(p^i)G-Eze@TkANMDBH40gPbHaiQ^WIr2jg%@u`L73VYSC^cGj|q+bda zHBkh`^=av_3Zsx-Tls%VD~HvbwllVnn(j*7ht)Q1_1~*~u_EYr4{Q-sOD!(A1%FJs zq~l$VE%-vT6XK)N5s7=hiiMh zTOSarVkRE%%au{Vza9B?FHdFPl2&`g?^h;1ZQ@&T$4()7XA$L?Me|{awXAnmpasSw zaAo_Q|H#cl;`XQQMc+GmsMb~`k#m-k_~US^!K9j5W}{rv4PWJr!c}f?5$ViLaecw- z5z~V;ZAc6Kv$Se!^vP1JrdlXMvKAu?qfjC8ck8Git%q=9~M zQK4MJZ7R%zJXJV76r;nC$hRSpZ`b1NlzldOu^e}k7bhXfOV7H7~n zkYH(pIckLL*ZdZmFICoftuuI=vZmWM9eo$f(|lDwzlnB#UVw(!68SC9T9OR;UP)4< zTqqAZIu$X+s%%i9I64SRC67kDS~5xxwOzb%P>7kp)^u9~d@jt{mBePmWf|0sDwQka zCrTe(H>F=fzEidrGRG1DdCW3GF%1E^(K14g=Pm&`p{C!aM{1QX zU~0eht*q9{Kz{>L!5#PX-sL2#b(2~Mqx!OrZ_2>*W0pv47G`WxV#3GhJ>c)H+=q#< zak>XaJg~@aFk-15a`Ms~d%N5H9e>KVEpkBNsCDlx$oJhTn=!NHs`M6YKJS7jv3RSB z*}+m51lAWuzSkPxAO&V(i0=0xU-2X4==?p6)2QcRTE|rZ3S?DVA8?F~+3K;Eveq$t z2j9iJked!MSUO~%d01v*d(x>Q(uBU>Z4<)HEFZonKnnc^W3a(*a1QKMZ}pV2zg0v#Sm~7?e9HIlU>o)Xv@zS+Qh6e(B)p;c zgTBGcX1U6P`C}+asvgI=Or4r0_2TCTxOaApnXOnbhQHMDZOwV>XgKLh@P2fh%-qgW zXR6Ok>N;?pw~i0a#C$bD!_S7eZ;AL0u+3v20{4QddHE*s6N%hH5!rcB(wEG-=0y_rneS9!keieYwlfBOKA za%=haWktjz9CL)C(pwx|U+&WGe@nZ6kLX-61E;L~!v2<)B5lkbkzFa*#!s%CFaI{v zwSNzr-m=sJFBF4T#rjLpz1Z-*SW&-2DwtxGM5FSMQ#jrs#YL+|E|67L8!V_cf^h`Z zpL1MFVazJZ)nHaRS`N+qIxeaO=UcFEWgCiBe0Z@+c66!FBWFGMdmF1F?%T3XXmqZc zO>wWSjtDHjPn}Cu6RGKjv_%}fdNd53vpR;FC9YYW5)pOFf8-D4VQd|96PZ{kezbZF z23}YlzZ4O7+|k`}?PLr#^Fse@YMNDnsHt8^O_NSNgwyu<_uAKuRy{iLP*SrOKYE?~ z+3fcp&hS2dieg%seJt&gWw5J)&6EE2y;!(r1McKna})Bw+If)uYsZIO`4O6>>eH0_ znEx$#tA`V_)-6Z(JL@8FxY-!#<~=!DQ6ES*#1rcl&~#s8=(D>SZ1yKFl+j~}hN1!( zrAnou6EMSVer<0x40) - if(length>0xfffflu) - { - printf("File is a fat bakapee\n"); - segm=(length%0xfffflu)-1; - fat=segm*0xfffflu; + if(length>0xfffflu) + { + printf("File is a fat bakapee\n"); + segm=(length%0xfffflu)-1; + fat=segm*0xfffflu; length-=fat; // printf("CA_FarRead doesn't support 64K reads yet!\n"); - } - - if(!fat&&!segm) + } + + if(!fat&&!segm) {*/ - __asm - { + __asm { push ds mov bx,[handle] mov cx,[WORD PTR length] @@ -246,17 +245,34 @@ boolean CA_FarRead(int handle, byte huge *dest, dword length, mminfo_t *mm) mov errno,ax mov flag,0 jmp End +#ifdef __BORLANDC__ + } +#endif good: +#ifdef __BORLANDC__ + __asm { +#endif cmp ax,[WORD PTR length] je done // errno = EINVFMT; // user manager knows this is bad read mov flag,0 jmp End +#ifdef __BORLANDC__ + } +#endif done: +#ifdef __BORLANDC__ + __asm { +#endif mov flag,1 +#ifdef __BORLANDC__ + } +#endif End: +#ifdef __WATCOMC__ } - return flag; +#endif + return flag; //}else return 0;//todo: EXPAND!!! } @@ -274,22 +290,21 @@ End: boolean CA_FarWrite(int handle, byte huge *source, dword length, mminfo_t *mm) { boolean flag; - /*dword fat=0; - word segm=0; + /*dword fat=0; + word segm=0; //if(mm->EMSVer<0x40) - if(length>0xfffflu) - { - printf("File is a fat bakapee\n"); - segm=(length%0xfffflu)-1; - fat=segm*0xfffflu; + if(length>0xfffflu) + { + printf("File is a fat bakapee\n"); + segm=(length%0xfffflu)-1; + fat=segm*0xfffflu; length-=fat; // printf("CA_FarRead doesn't support 64K reads yet!\n"); } - - if(!fat&&!segm) + + if(!fat&&!segm) {*/ - __asm - { + __asm { push ds mov bx,[handle] mov cx,[WORD PTR length] @@ -302,17 +317,34 @@ boolean CA_FarWrite(int handle, byte huge *source, dword length, mminfo_t *mm) mov errno,ax mov flag,0 jmp End +#ifdef __BORLANDC__ + } +#endif good: +#ifdef __BORLANDC__ + __asm { +#endif cmp ax,[WORD PTR length] je done //errno = ENOMEM; // user manager knows this is bad write mov flag,0 jmp End +#ifdef __BORLANDC__ + } +#endif done: +#ifdef __BORLANDC__ + __asm { +#endif mov flag,1 +#ifdef __BORLANDC__ + } +#endif End: +#ifdef __WATCOMC__ } - return flag; +#endif + return flag; //}else return 0; } @@ -330,7 +362,7 @@ End: boolean CA_ReadFile(char *filename, memptr *ptr, mminfo_t *mm) { int handle; - dword size; + dword size; //long size; if((handle = open(filename,O_RDONLY | O_BINARY, S_IREAD)) == -1) @@ -361,7 +393,7 @@ boolean CA_ReadFile(char *filename, memptr *ptr, mminfo_t *mm) boolean CA_LoadFile(char *filename, memptr *ptr, mminfo_t *mm, mminfotype *mmi) { int handle; - dword size; + dword size; //long size; if((handle = open(filename,O_RDONLY | O_BINARY, S_IREAD)) == -1) diff --git a/src/lib/16_hc.c b/src/lib/16_hc.c index f9f4948c..df9602d8 100644 --- a/src/lib/16_hc.c +++ b/src/lib/16_hc.c @@ -33,23 +33,48 @@ void __near* LargestFreeBlock(size_t* Size) void __near* p; s0 = ~(size_t)0 ^ (~(size_t)0 >> 1); +#ifdef __BORLANDC__ + while (s0 && (p = malloc(s0)) == NULL) +#endif +#ifdef __WATCOMC__ while (s0 && (p = _nmalloc(s0)) == NULL) +#endif s0 >>= 1; if (p) +#ifdef __BORLANDC__ + free(p); +#endif +#ifdef __WATCOMC__ _nfree(p); +#endif s1 = s0 >> 1; while (s1) { +#ifdef __BORLANDC__ + if ((p = malloc(s0 + s1)) != NULL) +#endif +#ifdef __WATCOMC__ if ((p = _nmalloc(s0 + s1)) != NULL) +#endif { s0 += s1; +#ifdef __BORLANDC__ + free(p); +#endif +#ifdef __WATCOMC__ _nfree(p); +#endif } s1 >>= 1; } +#ifdef __BORLANDC__ + while (s0 && (p = malloc(s0)) == NULL) +#endif +#ifdef __WATCOMC__ while (s0 && (p = _nmalloc(s0)) == NULL) +#endif s0 ^= s0 & -s0; *Size = s0; @@ -68,7 +93,12 @@ size_t _coreleft(void) if (largest < sizeof(void __near*)) { if (p != NULL) +#ifdef __BORLANDC__ + free(p); +#endif +#ifdef __WATCOMC__ _nfree(p); +#endif break; } *(void __near* __near*)p = NULL; @@ -84,7 +114,12 @@ size_t _coreleft(void) while (pFirst != NULL) { void __near* p = *(void __near* __near*)pFirst; +#ifdef __BORLANDC__ + free(pFirst); +#endif +#ifdef __WATCOMC__ _nfree(pFirst); +#endif pFirst = p; } return total; @@ -153,6 +188,7 @@ size_t _farcoreleft(void) return total; } +#ifdef __WATCOMC__ void huge* LargestHugeFreeBlock(size_t* Size) { size_t s0, s1; @@ -367,7 +403,7 @@ void heapdump(void) write(heaphandle,scratch,strlen(scratch)); } heapstat(heap_status, &scratch); - + //near strcpy(scratch,"\n == near ==\n\n"); write(heaphandle,scratch,strlen(scratch)); @@ -432,7 +468,7 @@ void heapstat(int heap_status, byte *str) break; case _HEAPEMPTY: strcpy((str),"OK - heap is empty\n"); - + break; case _HEAPBADBEGIN: strcpy((str),"ERROR - heap is damaged\n"); @@ -454,7 +490,7 @@ void heapstat0(int heap_status) break; case _HEAPEMPTY: //printf("OK - heap is empty\n"); - + break; case _HEAPBADBEGIN: printf("ERROR - heap is damaged\n"); @@ -466,7 +502,7 @@ void heapstat0(int heap_status) printf("ERROR - bad node in heap\n"); } } - +#endif /* ============================ = diff --git a/src/lib/16_head.c b/src/lib/16_head.c index df0b31c7..7dd53866 100644 --- a/src/lib/16_head.c +++ b/src/lib/16_head.c @@ -1,27 +1,27 @@ -/* Project 16 Source Code~ - * Copyright (C) 2012-2015 sparky4 & pngwen & andrius4669 - * - * This file is part of Project 16. - * - * Project 16 is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * Project 16 is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see , or - * write to the Free Software Foundation, Inc., 51 Franklin Street, - * Fifth Floor, Boston, MA 02110-1301 USA. - * - */ - -#include "src/lib/16_head.h" - +/* Project 16 Source Code~ + * Copyright (C) 2012-2015 sparky4 & pngwen & andrius4669 + * + * This file is part of Project 16. + * + * Project 16 is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * Project 16 is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see , or + * write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301 USA. + * + */ + +#include "src/lib/16_head.h" + /* Function: Wait ********************************************************** * * Parameters: wait - time in microseconds @@ -36,9 +36,9 @@ void wait(clock_t wait){ goal = wait + clock(); while((goal > clock()) && !kbhit()) ; -} /* End of wait */ - -long int +} /* End of wait */ + +long int filesize(FILE *fp) { long int save_pos, size_of_file; @@ -48,63 +48,15 @@ filesize(FILE *fp) size_of_file = ftell(fp); fseek(fp, save_pos, SEEK_SET); return(size_of_file); -} - -void printmeminfoline(byte *strc, const byte *pee, size_t h_total, size_t h_used, size_t h_free) -{ - byte str[64]; - strcat(strc,pee); strcat(strc," "); ultoa((dword)h_total,str,10); strcat(strc,str); strcat(strc," "); ultoa((dword)h_used,str,10); strcat(strc,str); strcat(strc," "); ultoa((dword)h_free,str,10); strcat(strc,str); - strcat(strc,"\n"); -} - -void print_normal_entry(char *text, dword total, dword used, dword free, byte *str) -{ - printf("%-17s", text); - convert("%8sB ", total); - convert("%9sB ", used); - convert("%9sB\n", free); -} - -/* - * As for printf(), but format may only contain a single format specifier, - * which must be "%s" and is replaced with the string form of num with commas - * separating groups of three digits. - * - * e.g. convert("%s bytes", 1234567) -> "1,234,567 bytes" - */ -void convert(const char *format, dword num) -{ - int c, i, j, n; - char des[4*sizeof(dword)+3]; - union REGS regs; - struct SREGS sregs; - char mycountry[48]; /* probably 34 bytes are enough... */ - char ksep = ','; /* or . */ - - regs.x.ax = 0x3800; - sregs.ds = FP_SEG(&mycountry); - regs.x.dx = FP_OFF(&mycountry); - intdosx(®s,®s,&sregs); - if (regs.x.cflag == 0) { - ksep = mycountry[7]; /* 1000's separator */ - /* dsep = mycountry[9]; ** decimal separator */ - } - - n = sprintf(des, "%lu", num); - /* insert commas in the string */ - c = 3; - for (i = n - 3; i > 0; i--) { - if (c%3==0) { - for (j = n; j >= i; j--) - des[j+1] = des[j]; - des[i]=ksep; /* ',' */ - n++; - } - c++; - } - printf(format, des); -} - +} + +void printmeminfoline(byte *strc, const byte *pee, size_t h_total, size_t h_used, size_t h_free) +{ + byte str[64]; + strcat(strc,pee); strcat(strc," "); ultoa((dword)h_total,str,10); strcat(strc,str); strcat(strc," "); ultoa((dword)h_used,str,10); strcat(strc,str); strcat(strc," "); ultoa((dword)h_free,str,10); strcat(strc,str); + strcat(strc,"\n"); +} + /////////////////////////////////////////////////////////////////////////// // // US_CheckParm() - checks to see if a string matches one of a set of @@ -138,8 +90,8 @@ US_CheckParm(char *parm,char **strings) } } return(-1); -} - +} + /* ========================== = @@ -201,4 +153,4 @@ US_CheckParm(char *parm,char **strings) #endif exit(exit_code); -}*/ +}*/ diff --git a/src/lib/16_head.h b/src/lib/16_head.h index f74e8823..e6e590b4 100644 --- a/src/lib/16_head.h +++ b/src/lib/16_head.h @@ -32,27 +32,29 @@ #define _LIBHEAD_H_ #include #include +#include #include // just for wait #include // just for wait -#include #include #include #include +#include #include #include +#include #ifdef __WATCOMC__ #include #include #include -#include "src/lib/nyan/kitten.h" #endif +#include "src/lib/nyan/kitten.h" #include "src/lib/types.h" //0000 test type def wwww -struct list { +/*struct list { struct list __based(__self) *next; int value; -}; +};*/ /* Control codes for all keys on the keyboard */ //here temperarly @@ -186,8 +188,6 @@ void wait(clock_t wait); long int filesize(FILE *fp); void printmeminfoline(byte *strc, const byte *pee, size_t h_total, size_t h_used, size_t h_free); -void print_normal_entry(char *text, dword total, dword used, dword free, byte *str); -void convert(const char *format, dword num); int US_CheckParm(char *parm,char **strings); extern void CA_OpenDebug (void); diff --git a/src/lib/16_mm.c b/src/lib/16_mm.c index ba0b8bfe..90439b1d 100644 --- a/src/lib/16_mm.c +++ b/src/lib/16_mm.c @@ -120,13 +120,24 @@ boolean MML_CheckForEMS(void) // mov emmcfems,1 jmp End +#ifdef __BORLANDC__ + } +#endif error: +#ifdef __BORLANDC__ + __asm { +#endif // // EMS is bad // mov emmcfems,0 +#ifdef __BORLANDC__ + } +#endif End: +#ifdef __WATCOMC__ } +#endif return(emmcfems); } @@ -150,8 +161,7 @@ byte MML_SetupEMS(mminfo_t *mm) unsigned totalEMSpages,freeEMSpages,EMSpageframe,EMSpagesmapped,EMShandle; totalEMSpages = freeEMSpages = EMSpageframe = EMSpagesmapped = 0; - __asm - { + __asm { mov ah,EMS_STATUS int EMS_INT // make sure EMS hardware is present or ah,ah @@ -187,13 +197,23 @@ byte MML_SetupEMS(mminfo_t *mm) jle getpages mov bx,[freeEMSpages] jmp getpages - -low: +#ifdef __BORLANDC__ + } +#endif + low: +#ifdef __BORLANDC__ + __asm { +#endif cmp bx,4 jle getpages // there is only 1,2,3,or 4 pages mov bx,4 // we can't use more than 4 pages - -getpages: +#ifdef __BORLANDC__ + } +#endif + getpages: +#ifdef __BORLANDC__ + __asm { +#endif mov [EMSpagesmapped],bx mov ah,EMS_ALLOCPAGES // allocate up to 64k of EMS int EMS_INT @@ -201,19 +221,30 @@ getpages: jnz error mov [EMShandle],dx jmp End -error: +#ifdef __BORLANDC__ + } +#endif + error: +#ifdef __BORLANDC__ + __asm { +#endif mov err,ah mov errorflag,1 jmp End +#ifdef __BORLANDC__ + } +#endif noEMS: End: +#ifdef __WATCOMC__ } +#endif if(errorflag==true) { //err = CPURegs.h.ah; strcpy(str,"MM_SetupEMS: EMS error "); //itoa(err,str2,16); - MM_EMSerr(&str, err); + MM_EMSerr(str, err); printf("%s\n",str); return err; } @@ -242,16 +273,20 @@ void MML_ShutdownEMS(mminfo_t *mm) if(!EMShandle) return; - __asm - { + __asm { mov ah,EMS_FREEPAGES mov dx,[EMShandle] int EMS_INT or ah,ah jz ok mov errorflag,1 +#ifdef __BORLANDC__ + } +#endif ok: +#ifdef __WATCOMC__ } +#endif if(errorflag==true) printf("MML_ShutdownEMS: Error freeing EMS!\n"); //++++ add something } @@ -278,8 +313,7 @@ byte MM_MapEMS(mminfo_t *mm, mminfotype *mmi) for (i=0;i<4/*MAPPAGES*/;i++) { - __asm - { + __asm { mov ah,EMS_MAPPAGE mov bx,[i] // logical page mov al,bl // physical page @@ -288,11 +322,22 @@ byte MM_MapEMS(mminfo_t *mm, mminfotype *mmi) or ah,ah jnz error jmp End +#ifdef __BORLANDC__ + } +#endif error: +#ifdef __BORLANDC__ + __asm { +#endif mov err,ah mov errorflag,1 +#ifdef __BORLANDC__ + } +#endif End: +#ifdef __WATCOMC__ } +#endif if(errorflag==true) { //err = CPURegs.h.ah; @@ -344,8 +389,7 @@ byte MM_MapXEMS(mminfo_t *mm, mminfotype *mmi) for (i=0;inumUMBs = 0; - __asm - { + __asm { mov ax,0x4300 int 0x2f // query status of installed diver cmp al,0x80 je good mov errorflag,1 +#ifdef __BORLANDC__ + } +#endif good: +#ifdef __WATCOMC__ } +#endif if(errorflag==true) return false; else return true; } @@ -422,8 +481,7 @@ void MML_SetupXMS(mminfo_t *mm, mminfotype *mmi) unsigned base,size; getmemory: - __asm - { + __asm { mov ax,0x4310 int 0x2f mov [WORD PTR XMSaddr],bx @@ -443,12 +501,22 @@ getmemory: call [DWORD PTR XMSaddr] // DX holds largest available UMB or ax,ax jz done // another error... - -gotone: +#ifdef __BORLANDC__ + } +#endif + gotone: +#ifdef __BORLANDC__ + __asm { +#endif mov [base],bx mov [size],dx -done: +#ifdef __BORLANDC__ } +#endif + done: +#ifdef __WATCOMC__ + } +#endif printf("base=%u ", base); printf("size=%u\n", size); MML_UseSpace(base,size, mm); mmi->XMSmem += size*16; @@ -475,8 +543,7 @@ void MML_ShutdownXMS(mminfo_t *mm) for (i=0;inumUMBs;i++) { base = mm->UMBbase[i]; - __asm - { + __asm { mov ah,XMS_FREEUMB mov dx,[base] call [DWORD PTR XMSaddr] @@ -672,27 +739,36 @@ void MM_Startup(mminfo_t *mm, mminfotype *mmi) // // get all available near conventional memory segments // -//---- length=coreleft(); - printf(" nearheap making!\n"); +// printf(" nearheap making!\n"); +#ifdef __WATCOMC__ _nheapgrow(); length=(dword)_memmax();//(dword)GetFreeSize(); start = (void huge *)(mm->nearheap = _nmalloc(length)); +#endif +#ifdef __BORLANDC__ + length=coreleft(); + start = (void huge *)(mm->nearheap = malloc(length)); +#endif length -= 16-(FP_OFF(start)&15); length -= SAVENEARHEAP; seglength = length / 16; // now in paragraphs segstart = FP_SEG(start)+(FP_OFF(start)+15)/16; MML_UseSpace(segstart,seglength, mm); mmi->nearheap = length; - printf("start=%FP segstart=%X seglen=%lu len=%lu\n", start, segstart, seglength, length); + printf("start=%Fp segstart=%x seglen=%l len=%l\n", start, segstart, seglength, length); //heapdump(); // // get all available far conventional memory segments // -//---- length=farcoreleft(); - printf(" farheap making!\n"); +// printf(" farheap making!\n"); +#ifdef __WATCOMC__ _fheapgrow(); length=(dword)GetFarFreeSize();//0xffffUL*4UL; +#endif +#ifdef __BORLANDC__ + length=farcoreleft(); +#endif //start = mm->farheap = halloc(length, 1); start = mm->farheap = _fmalloc(length); length -= 16-(FP_OFF(start)&15); @@ -701,7 +777,7 @@ void MM_Startup(mminfo_t *mm, mminfotype *mmi) segstart = FP_SEG(start)+(FP_OFF(start)+15)/16; MML_UseSpace(segstart,seglength, mm); mmi->farheap = length; - printf("start=%FP segstart=%X seglen=%lu len=%lu\n", start, segstart, seglength, length); + printf("start=%Fp segstart=%x seglen=%l len=%l\n", start, segstart, seglength, length); //heapdump(); mmi->mainmem = mmi->nearheap + mmi->farheap; @@ -716,9 +792,23 @@ void MM_Startup(mminfo_t *mm, mminfotype *mmi) //printf(" EMS1\n"); //printf("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"); //bug! mmi->EMSmem = 0; - for(i = 1;i < __argc;i++) + for(i = 1;i < +#ifdef __WATCOMC__ + __argc +#endif +#ifdef __BORLANDC__ + _argc +#endif + ;i++) { - if(US_CheckParm(__argv[i],ParmStringsexmm) == 0) + if(US_CheckParm( +#ifdef __WATCOMC__ + __argv[i] +#endif +#ifdef __BORLANDC__ + _argv[i] +#endif + ,ParmStringsexmm) == 0) goto emsskip; // param NOEMS } //printf("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"); //bug! @@ -747,9 +837,23 @@ goto xmsskip; // emsskip: mmi->XMSmem = 0; - for(i = 1;i < __argc;i++) + for(i = 1;i < +#ifdef __WATCOMC__ + __argc +#endif +#ifdef __BORLANDC__ + _argc +#endif + ;i++) { - if(US_CheckParm(__argv[i],ParmStringsexmm) == 0) + if(US_CheckParm( +#ifdef __WATCOMC__ + __argv[i] +#endif +#ifdef __BORLANDC__ + _argv[i] +#endif + ,ParmStringsexmm) == 0) goto xmsskip; // param NOXMS } //printf("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"); //bug! @@ -787,7 +891,12 @@ void MM_Shutdown(mminfo_t *mm) return; _ffree(mm->farheap); printf(" far freed\n"); +#ifdef __WATCOMC__ _nfree(mm->nearheap); printf(" near freed\n"); +#endif +#ifdef __BORLANDC__ + free(mm->nearheap); printf(" near freed\n"); +#endif if(MML_CheckForEMS()){ MML_ShutdownEMS(mm); printf(" EMS freed\n"); } if(MML_CheckForXMS(mm)){ MML_ShutdownXMS(mm); printf(" XMS freed\n"); } } @@ -898,7 +1007,9 @@ printf("\n"); if (mm->bombonerror) { +#ifdef __WATCOMC__ heapdump(); +#endif printf(OUT_OF_MEM_MSG,(size-mmi->nearheap)); printf("for stability reasons the program will shut down! wwww\n"); printf(" endid=%u\n",(mm->endid)); @@ -1151,9 +1262,10 @@ void MM_SortMem(mminfo_t *mm) void MM_ShowMemory(/*page_t *page, */mminfo_t *mm) { mmblocktype huge *scan; - word color,temp; +//++++ word color; + word temp; long end,owner; - word chx,chy; +//++++ word chx,chy; byte scratch[160],str[16]; //**** VW_SetDefaultColors(); @@ -1168,17 +1280,17 @@ void MM_ShowMemory(/*page_t *page, */mminfo_t *mm) CA_OpenDebug (); - chx=0; - chy=0; +//++++ chx=0; +//++++ chy=0; while(scan) { - if(scan->attributes & PURGEBITS) +/*++++ if(scan->attributes & PURGEBITS) color = 5; // dark purple = purgable else color = 9; // medium blue = non purgable if(scan->attributes & LOCKBIT) - color = 12; // red = locked + color = 12; // red = locked*/ if(scan->start<=end) { //printf("); @@ -1187,8 +1299,8 @@ CA_OpenDebug (); return; } end = scan->start+scan->length-1; - chy = scan->start/320; - chx = scan->start%320; +//++++ chy = scan->start/320; +//++++ chx = scan->start%320; //modexhlin(page, scan->start, (unsigned)end, chy, color); //for(chx=scan->start;chx+4>=(word)end;chx+=4) //{ diff --git a/src/lib/nyan/kitten.c b/src/lib/nyan/kitten.c index 49cb7474..4e501dec 100644 --- a/src/lib/nyan/kitten.c +++ b/src/lib/nyan/kitten.c @@ -22,6 +22,8 @@ #include /* sprintf */ #include /* getenv */ #include /* strchr */ +#include +#include #include #include "src/lib/nyan/kitten.h" diff --git a/src/lib/nyan/kitten.h b/src/lib/nyan/kitten.h index 62c5bc7b..2cec22fe 100644 --- a/src/lib/nyan/kitten.h +++ b/src/lib/nyan/kitten.h @@ -23,15 +23,13 @@ #ifndef _CATGETS_H #define _CATGETS_H - -#include #ifdef NOCATS /* #define NOCATS to disable that stuff completely */ #define nl_catd int #define catopen(x,y) 1 -#define catclose(x) +#define catclose(x) #define catgets(c,x,y,s) s #else -- 2.39.2