> MiniROM/src 1.00 " 1.00 05-Feb-2016 J.G.Harston C Header for a miniature SROM/Module with only a single command (: 2#assem(0)::assem(2):sm_table JSR OSNEWL:LDX #0  .Serv9Lp 0LDA RomTitle+1,X :\ Print ROM title 3BNE P%+4:LDA #" " :\ Convert &00 to )CMP #"(":BEQ Serv9Done :\ End at '(' JSR OSWRCH:INX:BNE Serv9Lp .Serv9Done JSR OSNEWL .Serv9Skip  LDA #9  .NotServ9 RTS :  .Serv4 TYA:PHA:DEY:LDX #&FF  .Serv4Lp &INX:INY:LDA (&F2),Y 0CMP #".":BEQ Serv4Dot :CMP #"!":BCC Serv4End D8CMP RomTitle+1,X:BEQ Serv4Lp :\ Match with ROM title N- #&20 :\ Change case X8CMP RomTitle+1,X:BEQ Serv4Lp :\ Match with ROM title b.Serv4Quit l-PLA:TAY :\ Restore Y v.Serv4Exit BLDA #4:RTS :\ Restore A and return unclaimed  .Serv4End "LDA RomTitle+1,X:BNE Serv4Quit DEY  .Serv4Dot 1INY:LDA (&F2),Y :\ Step past '.' 1CMP #" ":BEQ Serv4Dot :\ Skip any spaces 0PLA :\ Drop saved Y : \ (&F2),Y => any parameters : ,\ Demo code, just print the command line  .DemoLp LDA (&F2),Y:JSR OSASCI  INY:CMP #13:BNE DemoLp :  : *9LDA #0:RTS :\ Claim call and return 4]:RelocTable=P% >: H: Rݤsm_pass(pass%) \pass%=0:M%=0 fpass%=1:M%=O%-mcode% pP%=&8100-128*(pass%2) zO%=mcode%+M%*(pass%2)2 /pass%=1: O%+M%*2.125>L%:"Code overrun": ="4647",pass%+1,1) : sm_table >base80%=mcode%+M%:base81%=mcode%:byte%=0:count%=0:off%=0: Pbyte80%=base80%?off%:byte81%=base81%?off%: off%>=M%:byte80%=&80:byte81%=&80 ] ((byte81%-byte80%) &FE)<>0 "ERROR: Offset by more than one page at &";~&8000+off% M (byte80% &C0)=&80:byte%=byte%2+128*(byte81%-byte80%):count%=count%+1 1 count%=8:?O%=byte%:O%=O%+1:byte%=0:count%=0 $off%=off%+1:off%>=M% count%=0