( AssemProgs)
( Note:  Screen output MUST be via EMIT when using WIMPS)
(        WriteC may be used directly when in NOWIMPS)

: show ( low addr, top addr ..)
 SWAP  HEX DO I CR DUP . SPACE C@ DUP . SPACE EMIT LOOP CR ; 

HEX E8BD0001 CONSTANT pull
    E92D0001 CONSTANT push
DECIMAL
0 CONSTANT WriteC

CODE pushpull  ( check stack read - forcing code word)
 pull ,         ( code for LDMFD SP !, {R0} )
 R0 R0 1 #  SUB,
 push ,         ( code for STMFD SP !, {R0} )
PC R14 MOV,
END-CODE

CODE stackcode  ( check stack read - using code)
SP ! { R0 } LDMFD,
SP ! { R1 } LDMFD,
 R0 R0 1 # SUB,
 R1 R1 1 # ADD,
SP ! { R1 } STMFD,
SP ! { R0 } STMFD,
PC R14 MOV,
END-CODE

CODE pushpop   ( as above but using POP, and PUSH,)
R0 POP,
 R0 R0 1 # SUB,
R0 PUSH,
PC R14 MOV,
END-CODE

CODE doemit   ( WIMPS or NOWIMPS)
3 SWI,
3 SWI,
3 SWI,
PC R14 MOV,
END-CODE

CODE mcemit   ( NOWIMPS)
ENTER,
 R0 48 # MOV,
 WriteC  SWI,
LEAVE,
END-CODE

CODE DELAY
R0 32768 # MOV,
BEGIN,
 R0 R0 1 # S SUB,
EQ UNTIL,
PC R14 MOV,
END-CODE

