Hi again ben123,
Unfortunately, the development team is currently unable to provide someone to read the documentation to you. Try it again yourself...
The section where you see "..start" applies to the "-f obj" output format - and only the "-f obj" output format. The "special symbol" "..start" is unique to this format, and will produce the error message you see if used in any other format. If you assemble with "-f obj" you will not get this error... but that's probably not what you want to do...
Most likely, you want to stick with "-f win32" as you've done. Read on to section 7.5 for that. Nasm doesn't know any "special" entrypoint in this format, so you will need to declare whatever symbol you use as "global" (Nasm knows that "..start" needs to be "global"... but only in "-f obj").
global myentrypoint
section .text ; (note that ".text" is case sensitive!)
; subroutines can go here, if you wish
myentrypoint:
; let the ceremony begin...
Linkers usually default to some known entrypoint - typically "start" or "_start" (or "winmain@16" ?). If you use something else, you will have to advise the linker of it - "/entry myentrypoint" or "-e myentrypoint" or some such. Check your linker's documentation.
So that's how you set an entrypoint - either use "..start" and "-f obj" (and an appropriate linker - I think most of 'em will still do OMF - Object Module Format - but may whine about doing the conversion), or, in other formats, declare a symbol "global". The command line to the linker will be simpler if you use a symbol the linker knows about - Nasm doesn't care.
Sorry you ran into this confusion. "The first days are the hardest days..." - Grateful Dead
Best,
Frank