********************************************************* cr equ $0d lf equ $0a sp equ $20 bs equ $08 putchr equ $412 pmsg equ $418 crlf equ $41E get_nw equ $448 any_in equ $454 monitor equ $460 base equ $12000 DivLow equ base+1 RxTx equ base+1 IER equ base+3 DivHi equ base+3 IID equ base+5 LineC equ base+7 ModemC equ base+9 LStat equ base+11 MStat equ base+13 org $1000 ********************************************************* init move.b #$83,LineC move.b #$00,DivLow move.b #$09,DivHi move.b #%00000100,LineC move.b #$00,ModemC move.b #$00,IER init2 move.l #1,D3 btst.b #5,LStat beq.s init2 move.b #%11111,RxTx clr.l D0 ********************************************************* begin btst.b #5,LStat beq.s begin move.b #%11111,RxTx move.l #NAME,A6 move.l #NAME,A0 jsr pmsg jsr outmsg ********************************************************* start move.l #1,D3 btst.b #5,LStat beq.s start move.b #%11111,RxTx clr.l D0 move.l #BUFFER,A5 move.l #PROMPT,A0 jsr pmsg move.l #BUFFER,A6 move.l #ascii_0,A2 ********************************************************* LOOPBK jsr GETKEY cmp.b #3,D6 beq moniter cmp.b #bs,D6 beq BACKSPC cmp.b #cr,D6 beq ENTERK move.b D6,D5 move.b D6,(A5) jsr DISP add.l #1,A5 ret1 bra LOOPBK ********************************************************* moniter jsr crlf jmp monitor ********************************************************* ENTERK jsr crlf move.b #0,(A5)+ jsr outmsg move.b #cr,D0 jsr outch move.b #lf,D0 jsr outch bra start ********************************************************* DISP move.b (A5),D0 jsr putchr rts ********************************************************* GETKEY jsr any_in beq GETKEY jsr get_nw move.b D0,D6 rts ********************************************************* BACKSPC cmpa.l A6,A5 bls LOOPBK sub.l #1,A5 move.b #bs,D0 jsr putchr move.b #sp,D0 jsr putchr move.b #bs,D0 jsr putchr bra ret1 ********************************************************* outmsg clr.l D0 move.b (A6)+,D0 beq.s out_rts bsr.s outch bra.s outmsg out_rts rts ********************************************************* outch cmp.b #96,D0 beq funshft cmp.b #64,D0 bhi chrshft bra funshft reta adda.l D0,A2 call1 btst.b #5,LStat beq.s call1 move.b (A2),RxTx move.l #ascii_0,A2 rts ********************************************************* chrshft cmp.b #1,D3 beq reta move.l #1,D3 loopa btst.b #5,LStat beq.s loopa move.b #$1f,RxTx bra reta ********************************************************* funshft cmp.b #2,D3 beq reta move.b #2,D3 loopb btst.b #5,LStat beq.s loopb move.b #$1b,RxTx bra reta ********************************************************* PROMPT dc.b 'C:\',0 BUFFER ds.b 200 NAME dc.b ' Byron Mulvogue',cr,lf,' 98511991',cr,lf,0 ********************************************************* ascii_0 dc.b %00000 NULL Unprintable dc.b %00000 SOH Unprintable dc.b %00000 STX Unprintable dc.b %00000 ETX Unprintable dc.b %00000 EOT Unprintable dc.b %00000 ENQ Unprintable dc.b %00000 ACK Unprintable dc.b %01011 Bell dc.b %00000 BS Unprintable dc.b %00000 HT Unprintable dc.b %00010 Line Feed dc.b %00000 VT Unprintable dc.b %00000 FF Unprintable dc.b %01000 Carriage Return dc.b %00000 SO Unprintable dc.b %00000 SI Unprintable dc.b %00000 DLE Unprintable dc.b %00000 DC1 Unprintable dc.b %00000 DC2 Unprintable dc.b %00000 DC3 Unprintable dc.b %00000 DC4 Unprintable dc.b %00000 NAK Unprintable dc.b %00000 SYN Unprintable dc.b %00000 ETB Unprintable dc.b %00000 CAN Unprintable dc.b %00000 EM Unprintable dc.b %00000 SUB Unprintable dc.b %00000 ESC Unprintable dc.b %00000 FS Unprintable dc.b %00000 GS Unprintable dc.b %00000 RS Unprintable dc.b %00000 US Unprintable dc.b %00100 Space dc.b %00000 ! Unprintable dc.b %00000 " Unprintable dc.b %00000 # Unprintable dc.b %11010 $ dc.b %01101 % dc.b %00000 & Unprintable dc.b %00101 ' dc.b %01111 ( dc.b %10010 ) dc.b %01001 * dc.b %10001 + dc.b %01100 , dc.b %00011 - dc.b %11100 . dc.b %11101 / dc.b %10110 0 dc.b %10111 1 dc.b %10011 2 dc.b %00001 3 dc.b %01010 4 dc.b %10000 5 dc.b %10101 6 dc.b %00111 7 dc.b %00110 8 dc.b %11000 9 dc.b %01110 : dc.b %00000 ; Unprintable dc.b %00000 < Unprintable dc.b %11110 = dc.b %00000 > Unprintable dc.b %11001 ? dc.b %00000 @ Unprintable dc.b %00011 A dc.b %11001 B dc.b %01110 C dc.b %01001 D dc.b %00001 E dc.b %01101 F dc.b %11010 G dc.b %10100 H dc.b %00110 I dc.b %01011 J dc.b %01111 K dc.b %10010 L dc.b %11100 M dc.b %01100 N dc.b %11000 O dc.b %10110 P dc.b %10111 Q dc.b %01010 R dc.b %00101 S dc.b %10000 T dc.b %00111 U dc.b %11110 V dc.b %10011 W dc.b %11101 X dc.b %10101 Y dc.b %10001 Z dc.b %00000 [ Unprintable dc.b %00000 \ Unprintable dc.b %00000 ] Unprintable dc.b %00000 ^ Unprintable dc.b %00000 _ Unprintable dc.b %00101 ' dc.b %00011 A dc.b %11001 B dc.b %01110 C dc.b %01001 D dc.b %00001 E dc.b %01101 F dc.b %11010 G dc.b %10100 H dc.b %00110 I dc.b %01011 J dc.b %01111 K dc.b %10010 L dc.b %11100 M dc.b %01100 N dc.b %11000 O dc.b %10110 P dc.b %10111 Q dc.b %01010 R dc.b %00101 S dc.b %10000 T dc.b %00111 U dc.b %11110 V dc.b %10011 W dc.b %11101 X dc.b %10101 Y dc.b %10001 Z dc.b %00000 } Unprintable dc.b %00000 | Unprintable dc.b %00000 { Unprintable dc.b %00000 ~ Unprintable dc.b %00000 DEL Unprintable ********************************************************* end