Source of a small tool that allows to edit several screens at basic-prompt.\\ Tried to keep it small.\\ load it, NEW and SYS 828\\ F1/F7 select between 26 screens which are all stored in georam. (you start at screen 'C')\\ F5/F3 are copy/paste for screen.\\ Code in tapebuffer.\\ Enjoy if you can :) /enthusi\\ !to "geoutil" bankblk = $dfff ;00-31($1f) / 16kb bankpag = $dffe ;00-63 /256b bankadr = $de00 ;-$deff srclo = $ae srchi = $af dir = $fc blknow = $fd pagnow = $fb ;--------------------------------------- *= $033c init sei lda #irq sta $0315 sta blknow ;thus we start at blk 3 :o) 2 bytes saved cli rts ;--------------------------------------- irq sei ; could be saved as well lda #$fe sta $dc00 lda $dc01 cmp #$ef beq f1 cmp #$f7 beq f7 cmp #$df beq f3 ;fend ;= f3 = read + ea31 cmp #$bf beq f5 irqend jmp $ea31 ;--------------------------------------- f3 ;read from buffer lda blknow pha ldx #$1e stx blknow jsr read ;jmp ret ret ;from f3/f5 (moved it here, was a call first (saved 3 bytes)) pla sta blknow jmp $ea31 f5 ;write to buffer lda blknow pha ldx #$1e stx blknow jsr write jmp ret f1 jsr write dec blknow bne fend; f1b //evil change now does a full write to inc blknow :) ;inc blknow f1b ;jmp fend f7 jsr write ldx blknow cpx #$1a beq fend inc blknow fend jsr read jmp $ea31 ;--------------------------------------- read lsr dir ;dec dir jsr trans ;here was a jsr initcurs - just moved the function in ;and saved a jsr XX + rts = 4 bytes initcurs ldy $d3 ; current cur-row lda ($d1),y ; position and #$7f ; un-invert sta ($d1),y ; store again sta $ce ; store as char beneath cursor lsr $cf; = set to 0 = char not inverted atm rts ; jump here would safe one byte ;--------------------------------------- write lda #$01 ;cant inc - might occur twice sta dir jsr initcurs ;jsr trans ;just moved it here - yay! 4 bytes saved ;rts ;--------------------------------------- trans lda blknow ;set actual block sta bankblk sta $0427 transi lda #$00 ;set src, grouped together sta srclo sta bankpag ;init page sta pagnow tay ;instead of ldy #$00 lda #$04 sta srchi tran0 ;ldy #$00 tran1 ldx dir beq g2s s2g lda (srclo),y ;screen->georam sta bankadr,y jmp next g2s lda bankadr,y ;georam->screen sta (srclo),y next iny bne tran1 inc srchi lda srchi cmp #$08 beq tranend inc pagnow ldx pagnow stx bankpag ;beware! cant read bankpag (no inc, etc) jmp tran1 tranend rts