> Banner/s  Prints out banners *OSWRCH=&FFEE:OSNEWL=&FFE7:OSARGS=&FFDA (OSWORD=&FFF1:OSBYTE=&FFF4 2! mcode% &200:load%=&FFFF0900 <num=&AA:num2=&AB:tmp=&AC F P=0 1 PO%=mcode%:P%=load% Z[OPT P*3+4 d.pr_flag:BRK n .error x9BRK:EQUB 220:EQUS "Syntax: banner (-p(c)) ":BRK : .start% %LDA #1:LDX #&A8:LDY #0:JSR OSARGS 'LDA (&A8),Y:CMP #"-":BNE main_loop .INY:LDA (&A8),Y: #&DF:CMP #"P":BNE error DEC pr_flag:\ Set printer on ,INY:LDA (&A8),Y:CMP #"!":BCC printer_on  #&DF:CMP #"C":BNE error ,INY:DEC pr_flag:\ Don't turn printer off .printer_on LDA #2:JSR OSWRCH %TYA:PHA:LDA #3:LDX #10:JSR OSBYTE #PLA:TAY:\ Set output to printer .main_loop LDX #0:STX num  .skp_spc "-LDA (&A8),Y:INY:CMP #" ":BEQ skp_spc:DEY , .char1lp 6&LDA (&A8),Y:CMP #13:BEQ end_string @#STA block,X:INY:TYA:PHA:TXA:PHA JCLC:ADC #block 255:TAX T9LDY #block 256:LDA #10:JSR OSWORD:\ read definition ^PLA:TAX:LDY #8:.move_lp hLDA block+1,X:STA block,X rINX:DEY:BNE move_lp |PLA:TAY:INC num LDA num:CMP #10:BCC char1lp .end_string  TYA:PHA : \ Now print out the line :  LDX #0  .out1lp %LDA num:STA num2:BEQ all_finished  TXA:PHA  .out2lp LDA block,X:STA tmp  LDY #8  .out3lp &LDA #0:ASL tmp:PHP:ROL A:PLP:ROL A ADC #32:JSR OSWRCH &DEY:BNE out3lp 0TXA:CLC:ADC #8:TAX :DEC num2:BNE out2lp D\ one whole pixel-line done N$LDA num:CMP #10:BNE no_backspace XLDA #8:JSR OSWRCH b.no_backspace lJSR OSNEWL v!PLA:TAX:INX:CPX #8:BNE out1lp \ all lines done PLA:TAY:LDA (&A8),Y BIT &FF:BMI escape CMP #13:BEQ all_finished JMP main_loop  .escape LDA #124:JSR OSBYTE .all_finished LDA #3:LDX #0:JSR OSBYTE INC pr_flag:BNE no_vdu3 LDA #3:JSR OSWRCH  .no_vdu3 RTS  .block  0EQUS "Version 1.00, (C)1992 J.G.Harston":BRK $\ This has to be all in one page  :]:((P%+80)&FF00)<>(P%&FF00) "block overlaps pages" * 4E"*SAVE banner ";~mcode%;" ";~O%;" ";~start%&FFFF0000;" ";~load%