mirror of
https://github.com/ksherlock/host-modemworks.git
synced 2024-10-31 21:07:31 +00:00
127 lines
1.3 KiB
Plaintext
127 lines
1.3 KiB
Plaintext
|
|
machine m65816
|
|
case on
|
|
string asis
|
|
|
|
longa off
|
|
longi off
|
|
|
|
include 'OMM.equ'
|
|
|
|
macro
|
|
&l cstr &x
|
|
&l dc.b &x, 0
|
|
endm
|
|
|
|
a1 equ $3c
|
|
prmtbl equ $e0
|
|
|
|
FRMNUM equ $dd67
|
|
GETADR equ $e752
|
|
|
|
WDM_ID equ $fe
|
|
|
|
proc proc
|
|
hVERS dc.w $0000
|
|
hID dc.w 'mt'
|
|
hSIZE dc.w end-start
|
|
hORG dc.w start
|
|
hAMPC dc.w amperc
|
|
hKIND dc.w $0000
|
|
hRSRV1 dc.w $0000
|
|
hRSRV2 dc.w $0000
|
|
|
|
|
|
start
|
|
|
|
cmp #MSG_AMPR ;ampersand call?
|
|
beq do_ampr ;yes
|
|
cmp #MSG_INFO ;get info string?
|
|
beq do_info
|
|
cmp #MSG_USER
|
|
beq native_dispatch
|
|
rts
|
|
|
|
do_ampr
|
|
; & mset address.
|
|
; this is a nop.
|
|
; however we still need to grab out argument.
|
|
jsr FRMNUM
|
|
jsr GETADR
|
|
sty prmtbl
|
|
sta prmtbl+1
|
|
rts
|
|
|
|
do_info
|
|
lda a_info
|
|
sta a1
|
|
lda a_info+1
|
|
sta a1+1
|
|
rts
|
|
|
|
;do_user
|
|
; cpy #18+1
|
|
; bcc native_dispatch
|
|
; rts
|
|
|
|
; 16-bite code. NOT relocated. position independent code ONLY.
|
|
native_dispatch
|
|
; a = omm id
|
|
; y = request (if msg_user)
|
|
|
|
clc
|
|
xce
|
|
rep #$30
|
|
longa on
|
|
longi on
|
|
|
|
ldx my_id
|
|
and ff
|
|
;
|
|
; wdm inputs:
|
|
; a = OMM call number
|
|
; x = tool id
|
|
; y = user call number
|
|
;
|
|
; wdm $85
|
|
dc.b $42, WDM_ID
|
|
|
|
php
|
|
sec
|
|
xce
|
|
longa off
|
|
longi off
|
|
plp
|
|
rts
|
|
|
|
|
|
|
|
dc.b 0
|
|
*
|
|
* immediate table
|
|
*
|
|
a_info dc.w info
|
|
dc.w 0
|
|
|
|
|
|
*
|
|
* data
|
|
*
|
|
|
|
my_id dc.w 'mt'
|
|
ff dc.w $00ff
|
|
|
|
; dc.b '&SYSDATE' will not expand &SYSDATE.
|
|
msb on
|
|
info cstr '&SYSDATE Modem (KEGS) 1.0'
|
|
msb off
|
|
|
|
amperc
|
|
cstr 'MSET'
|
|
dc.b -1
|
|
|
|
end
|
|
|
|
endp
|
|
end
|