Add item to main index
Posted: Sat Mar 09, 2024 3:26 pm
What code do I put into a packs boot.opl to automatically place an item (shortcut) on the main menu ?
Dedicated to ORGII enthusiasts
https://organiser2.com/
Code: Select all
TOOLS
BOOT
ADDTOP
YORN%
XPFILES
XPMM
XPFILES
XPINFO
XPCOMMS
Code: Select all
xpTOOLS 32
BOOT BIN
BOOT OB3
ADDTOP OB3
TOOLS OB3
YORN% OB3
MDIR OB3
XPFILES OB3
XPMM OB3
XPINFO OB3
XPCOMMS OB3
Code: Select all
addtop:(item$,pos%)
LOCAL I%,A%(2)
IF LEN(item$)>8
RAISE 202 :REM Menu too big
ENDIF
POKEB $2187,LEN(item$)
I%=1
WHILE I%<=LEN(item$)
POKEB $2187+I%,ASC(MID$(item$,I%,1))
I%=I%+1
ENDWH
POKEW $2188+LEN(item$),0
A%(1)=$3F65 :REM Careful here
A%(2)=$3900 :REM Careful here
USR(ADDR(A%()), pos%)
Code: Select all
BOOT:
ADDTOP:("TOOLS",3)
Thanks Daren
Code: Select all
TEST:
Local g%,pitch,going,rise
REM Example of passing perimeters and returning values
REM Calculate pitch angle of say stairs
REM No checking of dimensions
REM Keys (Down arrow) in TEST call DMS
REM Keys (up arrow) in DMS show decimal angle
REM Keys (ON/CLEAR) Quits / Returns
REM Keys Any other key goes again
DO
CLS
PRINT "Calculate Pitch"
AT 1,2 :PRINT "Going ="; :INPUT going
AT 1,2 :PRINT "Rise ="; :INPUT rise
pitch=DEG(ATAN(rise/going))
PRNT::
REM clear line 2 (;) stops it scrolling
AT 1,2 :PRINT " ";
AT 1,2 :PRINT "Pitch "+FIX$(pitch,4,8)
g%=GET
IF g%=4 :REM Down Arrow
g%=DMS:(pitch)
ENDIF
IF g%=3 :REM Up arrow
GOTO PRNT::
ENDIF
IF g%=1 :REM ON/CLEAR
RETURN
ENDIF
UNTIL g%=1
Code: Select all
DMS:(Dd)
LOCAL g%,d,m,s
REM A routine that 'returns' a value
REM could be called a user defined function
d=INT(Dd)
m=INT((Dd-d)*60)
s=INT((((Dd-d)*60)-m)*60)
AT 1,2 :PRINT " ";
AT 1,2 :Print CHR$(15)+"Angle ";d;chr$(223);m;CHR$(39);s;CHR$(34)
g%=GET :IF g%=4 :g%=3 :ENDIF
RETURN g%