; C-65 interface routines to BBS Express! Professional ; ; Copyright (c) 1988 by Orion Micro Systems echo: jmp $3200 echos: jmp $3203 cr_lf: jmp $3209 .IF_REFERENCED get_string get_string: lda _parm1 sta .parms+0 lda _parm1+1 sta .parms+1 lda _parm2 sta .parms+2 lda _parm3 sta .parms+3 lda _parm4 sta $a4 lda .parms+3 sta $a3 lda .parms+2 tay lda .parms+1 tax lda .parms+0 jmp $320c .parms: ds.b 5 .ENDIF suspend: jmp $320f miosuspend: jmp $3212 resume: jmp $3215 mioresume: jmp $3218 update_status: jmp $30ed .IF_REFERENCED open_ulog open_ulog: jsr $321b lda _freslo ldx #0 rts .ENDIF close_ulog: jmp $321e .IF_REFERENCED read_user read_user: jsr $3221 lda _freslo ldx #0 rts .ENDIF .IF_REFERENCED write_user write_user: jsr $3224 lda _freslo ldx #0 rts .ENDIF ck_range: jsr $3227 lda _freslo ldx #0 rts chain: jmp $322A reset_bbs: jmp $322d get_key: jsr $3230 lda _freslo ldx #0 rts get_byte: jsr $3233 lda _freslo ldx #0 rts get_card: jsr $3236 lda _freslo ldx _freshi rts pause: jmp $3239 carrier: jmp $323C syserror: jmp $323F echose: jmp $3284 echob: jmp $3257 check_carrier: jsr $32C3 ldx #0 rts .IF_REFERENCED partial_overlay partial_overlay: lda _parm2+1 sta $a3 lda _parm2 tay lda _parm1+1 tax lda _parm1 jmp $32e7 .ENDIF .IF_REFERENCED to_ascii to_ascii: lda _parm2+1 sta $a3 lda _parm2 tay lda _parm1+1 tax lda _parm1 jmp $3251 .ENDIF .IF_REFERENCED to_str to_str: lda _parm2+1 sta $a3 lda _parm2 tay lda _parm1+1 tax lda _parm1 jmp $3254 .ENDIF echoc: jmp $325a datestamp: jmp $325d show_time: jmp $3260 show_date: jmp $3263 .IF_REFERENCED sec_lvl sec_lvl: ldy _parm2 lda _parm1+1 tax lda _parm1 jsr $3266 lda _freslo ldx #0 rts .ENDIF first_free: jsr $3269 lda _freslo ldx _freshi rts first_new: jsr $326C lda _freslo ldx _freshi rts find_handle: jsr $326f lda _freslo ldx _freshi rts find_name: jsr $3272 lda _freslo ldx _freshi rts y_or_n: jsr $3275 lda _freslo ldx #0 rts helpfile: jmp $3278 showfile: jmp $327B dumpfile: jmp $327E checktime: jmp $3281 echobe: jmp $3287 echoce: jmp $328a .IF_REFERENCED parse parse: lda _parm4 sta $a6 lda _parm4+1 sta $a7 lda _parm3 sta $a4 lda _parm3+1 sta $a5 lda _parm2+1 sta $a3 lda _parm2 tay lda _parm1+1 tax lda _parm1 jsr $328d lda _freslo ldx #0 rts .ENDIF show_chat: jmp $3290 dos_run: jmp $3293 re_answer: jmp $3296 main_loop: jmp $3299 file_stat: jmp $32a2 bytes_in: jsr $32a5 lda _freslo ldx #0 rts bytes_out: jsr $32a8 lda _freslo ldx #0 rts calc_sum: jsr $32ab lda _freslo ldx #0 rts .IF_REFERENCED calc_crc calc_crc: lda _parm2+1 sta $a3 lda _parm2 tay lda _parm1+1 tax lda _parm1 jsr $32ae lda _freslo ldx _freshi rts .ENDIF clr_lvl: ldy _parm2 lda _parm1+1 tax lda _parm1 jmp $32b1 set_lvl: ldy _parm2 lda _parm1+1 tax lda _parm1 jmp $32b4 set_date: ldy _parm3 ldx _parm2 lda _parm1 jmp $32ba set_time: ldy _parm3 ldx _parm2 lda _parm1 jmp $32bd foreground: jmp $32c6 dtroff: jmp $32c9 dtron: jmp $32cc config: jmp $32cf mdmstat: jmp $32d2 open_mdm: jmp $32d5 exit_netcall: jmp $32d8 echo3i: jmp $32db overlay: jmp $32de .IF_REFERENCED echof echof: lda _parm1 sta _pfptr lda _parm1+1 sta _pfptr+1 ldy #0 ;make our own private copy of .gstack: lda _parm2,y ; the stack parameters sta .stack,y iny cpy #18 bcc .gstack ldy #0 sty .stkidx lda (_pfptr),y ;length of mask sta .strlth iny sty .stridx .loop: ldy .stridx cpy .strlth bcc .notdone beq .notdone .exit_ef: rts .notdone: lda (_pfptr),y ;next byte of string cmp #'%' ;special lead-in? beq .special .thischar: jsr echo ;echo it .nextbyte: inc .stridx jmp .loop .special: iny sty .stridx lda (_pfptr),y cmp #'s' ;string? beq .string cmp #'d' beq .decimal cmp #'e' beq .eol cmp #'c' ;string? beq .char jmp .thischar .eol: lda #$9b jmp .thischar .string: lda .stkidx asl tay lda .stack+1,y tax lda .stack,y jsr echos inc .stkidx jmp .nextbyte .decimal: lda .stkidx asl tay lda .stack+1,y tax lda .stack,y jsr echoc inc .stkidx jmp .nextbyte .char: lda .stkidx asl tay lda .stack,y jsr echo inc .stkidx jmp .nextbyte .device: ds.b 1 .strlth: ds.b 1 .stridx: ds.b 1 .stkidx: ds.b 1 .stack: ds.b 20 .ENDIF