Nice! Thanks for porting it! On Sat, May 2, 2020 at 3:01 AM Jim Anderson <jim.ander...@kpu.ca> wrote:
> > -----Original Message----- > > I wrote a utility on my NEC 8201A to aid the players in a scifi RPG I > > run. If anyone is curious I've posted the code > > here: https://pastebin.com/9EJ7JbDN > > It's NEC basic, so it won't run on an M100 without a bit of porting, but > > if you have a NEC or run Virtual-T in NEC mode you can try it out. It's > > janky and far from optimized but it works. > > Catching up on old posts still. Hey, that's pretty cool! I've pasted in > a diff (below my signature) for the mods I made to make it run in M100 mode > in VirtualT (including a couple of edits, and fixing a logic error where > editing any cargo item's quantity changes your fuel quantity). One thing: > it doesn't seem happy unless CARGO.DO is present and populated with at > least dummy data, and it wasn't obvious until I read the code that the > first item in the cargo needs to be fuel. > > > > > > > > jim > > > $ diff SHPSYS.NEC.txt SHPSYS.txt > 2c2,3 > < 20 SCREEN 0,0:CLS:LOCATE 10,3:PRINT"INITIALIZING"; > --- > > 15 REM ADAPTED TO THE M100 -JRA > > 20 SCREEN 0,0:CLS:PRINT@130,"INITIALIZING"; > 44,47c45,48 > < 700 LOCATE 0,0:PRINT"SYSTEMS ONLINE" > < 710 LOCATE 0,4:PRINT"N: NAVIGATION"; > < 720 LOCATE 0,5:PRINT"C: CARGO MANAGER"; > < 730 LOCATE 0,6:PRINT"Q: QUIT"; > --- > > 700 PRINT@0,"SYSTEMS ONLINE" > > 710 PRINT@200,"N: NAVIGATION"; > > 720 PRINT@240,"C: CARGO MANAGER"; > > 730 PRINT@280,"Q: QUIT"; > 82,83c83 > < 1370 LOCATE 0,0 > < 1380 PRINT"1.Abbadon 7.Chelsea 13.Lungold" > --- > > 1380 PRINT@0,"1.Abbadon 7.Chelsea 13.Lungold" > 91,92c91 > < 1460 LOCATE 0,0 > < 1470 PRINT"14.Medusa 20.Shiva" > --- > > 1470 PRINT@0,"14.Medusa 20.Shiva" > 117c116 > < 1720 LOCATE 20,0:PRINT"DISTANCE:"; > --- > > 1720 PRINT@20,"DISTANCE:"; > 119c118 > < 1740 LOCATE 20,1:PRINT"DAYS:";:PRINT USING A$; DIST; > --- > > 1740 PRINT@60,"DAYS:";:PRINT USING A$; DIST; > 121,122c120,121 > < 1760 LOCATE 20,2:PRINT"FUEL USED:";:PRINT USING A$; DIST*2; > < 1762 LOCATE 20,4:PRINT"Execute Flight";:LOCATE 20,5:INPUT"Plan?(Y/N)";B$ > --- > > 1760 PRINT@100,"FUEL USED:";:PRINT USING A$; DIST*2; > > 1762 PRINT@180,"Execute Flight";:PRINT@220,"";:INPUT"Plan?(Y/N)";B$ > 124c123 > < 1770 LOCATE 20,5:INPUT"ANOTHER(Y/N) ";B$ > --- > > 1770 PRINT@220,"";:INPUT"ANOTHER(Y/N) ";B$ > 153c152 > < 2210 LOCATE 0,0:PRINT"NAME TON COST" > --- > > 2210 PRINT@0,"NAME TON COST" > 155,157c154,156 > < 2230 LOCATE 1,L:PRINT CN$(I);: > < 2240 LOCATE 30,L:PRINT CT%(I); > < 2250 LOCATE 35,L:PRINT CC%(I); > --- > > 2230 PRINT@1+(L*40),CN$(I);: > > 2240 PRINT@30+(L*40),CT%(I); > > 2250 PRINT@35+(L*40),CC%(I); > 160c159 > < 2280 LOCATE 0,7:PRINT"SELECT:U/D PAGE:L/R EDIT:ENT QUIT:ESC"; > --- > > 2280 PRINT@280,"SELECT:U/D PAGE:L/R EDIT:ENT QUIT:ESC"; > 173c172 > < 2410 GOSUB 2480:INPUT"TONS:";A$:CT%(SE)=VAL(A$):FUEL%=VAL(A$) > --- > > 2410 GOSUB 2480:INPUT"TONS:";A$:CT%(SE)=VAL(A$):IF SE=1 THEN > FUEL%=VAL(A$) > 175c174 > < 2430 IF SE>30 THEN SE=30!SLE IF SE<1 THE SE=1 > --- > > 2430 IF SE>30 THEN SE=30 ELSE IF SE<1 THEN SE=1 > 180,181c179,180 > < 2480 LOCATE 0,7:PRINT" "; > < 2490 LOCATE 0,7:RETURN > --- > > 2480 PRINT@280," "; > > 2490 PRINT@280,"";:RETURN > 183c182 > < 2510 IF DIST*2 > FUEL% THEN LOCATE 20,4:PRINT"INSUFFICIENT FUEL";:LOCATE > 20,5:INPUT"<PRESS A KEY>";B$ > --- > > 2510 IF DIST*2 > FUEL% THEN PRINT@180,"INSUFFICIENT > > FUEL";:PRINT@220,"";:INPUT"<PRESS > A KEY>";B$ > >