#!ipxe iseq ${netX/ip} ${} || goto ipok ifopen || iseq ${netX/ip} ${} || goto ipok dhcp || echo dhcp failed :ipok # if called with ?public=xxxx then it will be set here, but only if b800public is not already set #isset ${b800public} || set b800public xxxx || isset ${vram} || goto miss_vram params || goto miss_params clear b800id && clear b800err isset ${b800public} && param public ${b800public} || param platform ${platform} || param vram ${vram} && chain --autofree http://b800.org/?${netX/mac:hexraw}##params || echo Errorno ${errno} isset ${b800id} && echo new id b800.org/${b800id} || # chained contains: #clear b800id && clear b800err #set b800id base58key(sha1(videodata)) # if error it will instead be: set b800err 0x1-ff && echo msg goto b800done :miss_vram set b800err 1 goto miss_features :miss_params set b800err 2 goto miss_features :miss_features iseq ${platform} pcbios && goto ok_pcbios || # it is only pcbios that has vram support echo * platform ${platform} not supported ${b800err} goto b800done :ok_pcbios # this chaining is most for debugging, please make sure your version has the needed support echo * loading ipxe with needed vram and params features ${b800err} isset ${b800public} || set b800public 0 set pand:hex 26 && set pand ${pand:string} chain http://b000.org/undionly.kpxe ifopen ${pand}${pand} chain http://b800.org/?public=${b800public:uristring} :b800done