(MV - A memory viewer) :: 0LASTOWDOB! DEPTH #0<> DUP IT :: DROPDUP TYPEHSTR? ; ITE :: CK1NOLASTWD HXS># ; :: CK0NOLASTWD # 80000 ; ClrDA1IsStat RECLAIMDISP (display the menu area) { $ "ASCII" $ "ADDR" $ "-1" $ "+1" $ "-16" $ "+16" } >R ZERO BEGIN RSWAP ticR DUP IT RSWAP WHILE :: OVERSWAP Str>Menu TWENTYTWO #+ ; REPEAT DROP (set up vars) ASSEMBLE CON(5) =DOCSTR REL(5) end BSS 32 end RPL SIXTEEN ' NULLLAM THREE NDUPN DOBIND BEGIN :: SEVEN ZERO_DO 3GETLAM 1GETLAM INDEX@ #* #+DUP #>HXS hxs>$ CDR$ CDR$ BEGIN FIVE OVERLEN$ #- #0<> WHILE :: CHR_0 >H$ ; REPEAT CHR_: >T$ SWAP 2GETLAM SWAP 1GETLAM SIXTEEN #=ITE CODE * HEX code GOSBVL =POP# GOSBVL =SAVPTR D0=A A=DAT1 A D1=A D1=D1+ 10 C=0 A LC(1) 10 D=C A LC(2) #30 B=C A * D1¨str D0¨mem B=#30 D=#A - C=0 A C=DAT0 1 ?C casedrop :: DoBadKey FALSE ; ONE #=casedrop (ASCII/HEX) :: 1GETLAM SIXTEEN #=ITE :: $ "HEX" THIRTYTWO ; :: $ "ASCII" SIXTEEN ; 1PUTLAM ZEROSWAP Str>Menu FALSE ; TWO #=casedrop (ADDR) :: NULL$TEMP BEGIN :: DUP CHR_< >T$ DISPROW7 WaitForKey #1<> casedrop :: DoBadKey FALSE ; :: ONE #=casedrop :: CHR_A FalseTrue ; TWO #=casedrop :: CHR_B FalseTrue ; THREE #=casedrop :: CHR_C FalseTrue ; FOUR #=casedrop :: CHR_D FalseTrue ; FIVE #=casedrop :: CHR_E FalseTrue ; SIX #=casedrop :: CHR_F FalseTrue ; THIRTYONE #=casedrop :: CHR_7 FalseTrue ; THIRTYTWO #=casedrop :: CHR_8 FalseTrue ; THIRTYTHREE #=casedrop :: CHR_9 FalseTrue ; THIRTYSIX #=casedrop :: CHR_4 FalseTrue ; THIRTYSEVEN #=casedrop :: CHR_5 FalseTrue ; THIRTYEIGHT #=casedrop :: CHR_6 FalseTrue ; FORTYONE #=casedrop :: CHR_1 FalseTrue ; FORTYTWO #=casedrop :: CHR_2 FalseTrue ; FORTYTHREE #=casedrop :: CHR_3 FalseTrue ; FORTYSIX #=casedrop :: CHR_0 FalseTrue ; TWENTYNINE #=casedrop :: CHR_Space FalseTrue ; TWENTYFIVE #=casedrop :: TRUE TrueFalse ; FORTYFIVE #=casedrop :: FALSE TrueFalse ; DROP DoBadKey FalseFalse ; IT :: UNROTDUP CHR># THIRTYTWO #=ITE :: DROP DUPLEN$ DUP #0=case :: DROP DoBadKey ; 1_#1-SUB$ ; :: OVERLEN$ FIVE #=case :: DROP DoBadKey ; >T$ ; SWAP ; ; UNTIL ITE :: CHR_# >H$ CHR_h >T$ palparse ITE :: HXS># 3PUTLAM ; :: 2DROP DoBadKey ; ; DROP FALSE ; THREE #=casedrop (-1) :: 3GETLAM #1- 3PUTLAM FALSE ; SIXTEEN #=casedrop (-1) :: 3GETLAM #1- 3PUTLAM FALSE ; FOUR #=casedrop (+1) :: 3GETLAM #1+ 3PUTLAM FALSE ; EIGHTEEN #=casedrop (+1) :: 3GETLAM #1+ 3PUTLAM FALSE ; FIVE #=casedrop (-16) :: 3GETLAM SIXTEEN #- 3PUTLAM FALSE ; ELEVEN #=casedrop (-16) :: 3GETLAM 1GETLAM #- 3PUTLAM FALSE ; SIX #=casedrop (+16) :: 3GETLAM SIXTEEN #+ 3PUTLAM FALSE ; SEVENTEEN #=casedrop (+16) :: 3GETLAM 1GETLAM #+ 3PUTLAM FALSE ; FORTYFIVE #=casedrop (ON) TRUE DROPFALSE DoBadKey ; UNTIL ABND ClrDAsOK ;