.include #system .include #os .include #misc .include #handler.h65 _value == $E0 _string1 == $E2 _hor == $E4 _ver == $E5 _tmp1 == $E6 _tmp2 == $E8 _tmp3 == $EA _screen == $EC .macro intro sta :savea txa pha jsr :intro s_print %$1 .endm .macro outro .if %0 = 2 tsx inx inx inx lda $100,X cmp #$C0 .endif pla tax lda #>:outro-1 pha lda #<:outro-1 pha .if %0 = 2 bcc njet lda osrts+1 pha lda osrts pha njet .endif lda :savea jmp (%1) .endm start: jmp install ; -------------------------------------------------------------- ; The CIO handlers that replace the old handlers ; -------------------------------------------------------------- :open intro "ΟΠΕΞ-" ; load ATARI 8-BIT font outro :xopen fix1 = * - 2 :close intro "ΓΜΟΣΕ-" outro :xclose fix2 = * - 2 :get intro "ΗΕΤ-" jsr :pr_icbll outro :xget fix3 = * - 2 :put intro "ΠΥΤ-" jsr :pr_icbll outro :xput,@special fix4 = * - 2 :status intro "ΣΤΑΤΥΣ-" outro :xstatus fix5 = * - 2 :special intro "ΣΠΕΓΙΑΜ-Cmd: $" poke _value+1,0 move iccomz,_value jsr :utoh jsr :space jsr :pr_icbll outro :xspecial fix6 = * - 2 :intro move :savex,_hor move :savey,_ver rts :outro php pha txa pha tya pha sta _value .if AFTERBUFFER s_print " Y:$" .else s_print " Ret:$" .endif dpoke _string1,:buffer jsr :clrbuf lda _value jsr utob jsr s_print .if AFTERBUFFER s_print " $" jsr :pr_icbll2 .endif ; now do the CONSOL key stuff jsr :space jsr s_return .if CONSOLKEY .if BLINKER lda COLOR4 pha eor #$F4 sta COLOR4 .endif :wait lda CONSOL eor #7 beq :wait cmp #4 bcc :over :until lda CONSOL eor #7 bne :until :over .if BLINKER pla sta COLOR4 .endif move _hor,:savex move _ver,:savey .endif pla tay pla tax pla plp :nowhere rts ; -------------------------------------------------------------- ; Print buffer address and length in HEX ; -------------------------------------------------------------- :pr_icbal dmove ICBALZ,_value jmp :utoh :pr_icbll s_print "Buf:$" :pr_icbll2 jsr :pr_icbal s_print ",$" dmove ICBLLZ,_value :utoh dpoke _string1,:buffer jsr :clrbuf jsr utoh dpoke _string1,:buffer jmp s_print :clrbuf ldx #osrts-:buffer-1 lda #0 :clr sta :buffer,x dex bne :clr rts :space dpoke _string1,:strspace jmp s_print :strspace .byte " ",0 :savea .byte 0 :savex .byte 0 :savey .byte 0 ourtab: .word :open-1,:close-1,:get-1,:put-1,:status-1,:special-1 jmp :nowhere theirtab: :xopen .ds 2 :xclose .ds 2 :xget .ds 2 :xput .ds 2 :xstatus .ds 2 :xspecial .ds 2 :xinit .ds 3 othertab .ds 15 :buffer .ds 6 osrts: .ds 2