begin 644 memmap M__\``0(`QMD"`!Q``````````````````````$Q($````````$Q-$``````` M`````````````````$953$Q30U(`J1`@49!,5Q"I`$P8D*(!($*0H@=,0I"N M`A`@79`L&1&B`2`_D*('(#^0J0Z-(-"I!HTAT*``A-FI!(7:H@2I()'9R-#[ MYMK*T/:B!*G8A=JI!Y'9R-#[YMK*T/8@WA`@$I"FQO#V>""TY@8I=EI*(79D`+FVN`@T.%@."KP^TBI MH)`"J2Z1Vchar_map sta ptr+1 ldx #4 lda #" " ; clear screen - sta (ptr),y iny bne - inc ptr+1 dex bne - ldx #4 lda #>color_map sta ptr+1 lda #7 ; yellow color - sta (ptr),y iny bne - inc ptr+1 dex bne - _redraw: jsr draw_table ; now check for F8 - Key jsr break ; force rescheduling (task switch) ldx 198 beq _redraw sei jsr $e5b4 ; get character code from buffer cmp #140 ; compare with F8 beq + cmp #"q" beq leave jmp _redraw + ; F8 has been pressed, so temporary free screen and keyboard ; (init does also backups the whole screen here) ldx #1 jsr unlock ldx #7 jsr unlock jsr break ; give other processes a chance to get ; the screen ldx #1 jsr lock ldx #7 jsr lock ; ok, screen is ours again :-) jmp refresh leave: ldx #1 jsr unlock ldx #7 jsr unlock lda #0 jmp suicide draw_table: ldx #0 stx ptr lda #>char_map sta ptr+1 - ldy #0 lda $c220,x jsr put_bytemap inx lda $c220,x jsr put_bytemap inx clc lda ptr adc #40 sta ptr bcc + inc ptr+1 + cpx #32 bne - - rts put_bytemap: sec - rol a beq -- pha lda #160 bcc + lda #"." + sta (ptr),y iny pla clc bcc - .endofcode txt_go: .asc "This is a full screen application\n" .asc "Press F8 to step through them.\n\0" txt_words: .asc "press f8 to switch back" words_length equ *-txt_words