Making raw bootrom image (from bootrom.zip): There is source (bootromx.asm), and binary versions for 16kB and 32kB EPROM-s (bootromx.16k/.32k). With no options assembler will produce 16kB image; to produce other size, specify /DROMPAGES=nn, where nn is EPROM size in 512-byte units. Also, specify /ml (two case symbols) to avoid warnings. Other options available: /DDELAY - causes extra delays (needed for some weird cards) /DSAPWAIT - repeats SAP query until any answer (recommended) /DSHOWBADCALLER - more info where fatal error occured (address) /DDirectTime - get time from low mem instead using INT 1Ah The following were needed for some tests, but should not be used: /DPackedBoot /Dtrunc /DDummyDosFileIO /DFileReadExample If need debug messages, change 0 to 1 in line containing: Debugging = 0 Use TASM (1.01 and 3.1 are working) to make .OBJ from the source, then linker to make .EXE, and exe2bin to make .BIN; it is the raw bootrom image. Next step is "cooking" it by adding packet driver. Possible information/warning messages: "ROMPAGES not defined, assumed default (20h)" You produced default (16kB = 32page) bootrom image. Specify /DROMPAGES=value to change the default. "*Warning* BOOTROMX.ASM(42) Pass-dependent construction ..." You can specify /ml to avoid this warning. ------------------------------------------------------------------ Programs written in Turbo Pascal = all .PAS files - they are in: bootr-mk.zip (MKBJ - making "cooked" bootrom from raw), boot-emu.zip (BS_SETUP - emulating ROM from disk/diskette), bootprog.zip (MBOOTIMG - use ARJ to get .PAS from .EXE - making SYS:LOGIN/NET$BOOT.SYS); all these I compiled using TPC 5.5, w/o any additional options. ------------------------------------------------------------------ Assembly and C programs (other than bootrom): boot-emu.zip - I used MASM (5.1; batch files included). bootprog.zip: loadexe.bin - I used MASM; probably any TASM can be used, too. bootconf.exe - TASM 3.1, MASM, and TC 1.5 were used (a.bat to assemble .asm-s and map Y:=TC15 directory, then m.bat to compile C and make exe; sources and .obj-s made of .asm-s are in bootc-mk.arj); C0.ASM had two changes: MINSTACK is 256 (was 128), _STACK segment has 128 words (was 64); seems they were done because problems with some card were suspected to be caused by too small stack), here C0S.OBJ is made by MASM from the modified source, which cannot be included (Borland's copyright); most likely these changes were unnecessary. cleanup.zip - MASM, TASM1, TASM3 all produce identical code. option: /Dkeep65 - leaves packet vector when used to disable packet driver w/o releasing memory (old version: was planned driver uninstall, but it failed and is not in default code now). bootutls.zip: nwbcopy.sys - I used TASM 1.01, MASM or TASM 3 can be used, too. exec.sys - TASM 1.01, TC 1.5 were used (there is makefile). mkcfgfil.exe - TC 1.5 used (unzip .c, tcconfig.tc from my exe). ------------------------------------------------------------------ Using ARROWASM (MASM 3 free clone, available from simtelnet/msdos/asmutl/valarrow.zip 107kB) instead MASM/TASM: - problem with using /Dsymbol - does not work, causes assembly errors, fortunately there is a workaround - just make source containing few equ-s and include the original source... - problems with some advanced MASM features like 'label EQU <>' CLEANUP - OK (workaround needed if /Dkeep65 wanted). ASKBOOT - OK BOOTSECT - code 1 byte longer than MASM 5.1, and both produce wrong code when using EXE2BIN - seems must use DEBUG to write 200h bytes from address 7C00h in the EXE; also, the .BIN does not match .ASM - seems the .ASM preserves register DX, is the .BIN wrong? it works... conclusion: can use ARROWASM for it (and DEBUG later) EXEC-A - bug in ARROWASM: assumes symbol to be undefined! fix: change name to longer one - seems 'ro' means something to ARROWASM and is not handled as label. NWBCOPY - OK if no option used. LOADEXE - seems OK: MASM produced extra NOP, ARROWASM longer form of one AND, and total size is the same... BOOTROMX - seems cannot use ARROWASM. BOOTCONF - seems none of its .ASM sources can be handled. ------------------------------------------------------------------ Other assemblers from simtelnet/msdos/asmutl/ remaining to be tried: alabv10.zip 170259 95-07-03 Assembler Laboratory v1.0; Assembler IDE asm110.zip 27656 96-05-05 Magic Assembler version 1.10 chasm4.zip 105747 85-07-01 CHeap ASseMbler (freeware) rtools.zip 252330 93-12-05 Macro assembler/editor w/high-level structures ta980705.zip 582155 98-07-12 TMA macro assembler. Freeware wrdasm10.zip 11841 98-08-02 Weird Assembler v1.0: Tiny Assembler. Freeware xfire510.zip 272238 97-02-22 CrossFire: 80x86/680x0 Hybrid Macro Assembler All were tried (except alabv10 which was not found) and found wrong. ------------------------------------------------------------------