ser2net port tcp,2001 device serialdev, /dev/ttyUSB0, 9600n81,local [9600N81,CLOCAL,HANGUP_WHEN_DONE] (Debian GNU/Linux) >pr 0010 ; Command Line Interface, Release I 0020 ; 0030 ; For Symbiosys with B.D.O.S. Ver.V Rel.II 0040 ; 0050 ; By House Harris - June MMXII 0060 ; Copyright (C) 2012 Michael Brown 0070 ; 0080 ; This program is free software: you can redistribute it and/or modify 0090 ; it under the terms of the GNU General Public License as published by 0100 ; the Free Software Foundation, either version 3 of the License, or 0110 ; (at your option) any later version. 0120 ; 0130 ; This program is distributed in the hope that it will be useful, but 0140 ; WITHOUT ANY WARRANTY; without even the implied warranty of 0150 ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 0160 ; General Public License for more details. 0170 ; 0180 ; You should have received a copy of the GNU General Public License 0190 ; along with this program. If not, see 0200 ; 0210 .os 0220 .es 0230 xfer.addr .de $396 0240 xfer.bytes .de $398 0250 filenum .de $39c 0260 cwd .de $39d 0270 argc .de $37f 0280 args .de $380 0290 argv[0] .de $380 0300 argv[1] .de $382 0310 argv[2] .de $384 0320 argc[3] .de $386 0330 ; 0340 zargc .de $4f 0350 zargs .de $50 0360 zargv[0] .de $50 0370 ; 0380 ;locvs.veci .de $a600 0390 ;locvs.bdos .de $9200 0400 monst.ctab .de $03fc 0410 ; 0420 init.bdos .de $9009 0430 ; 0440 call.bdos .de $9006 0450 disk.init .de $00 0460 load.sect .de $02 0470 dump.sect .de $04 0480 setup.xfer .de $08 0490 writebytes .de $0a 0500 readbytes .de $0c 0510 execfile .de $16 0520 ; 0530 hex.dumper .de $9f00 0540 hex.cmd .de $9f03 0550 RAE.warm .de $b003 0560 ; 0570 lib.puts .de $9013 0580 lib.parse .de $9016 0590 proc.cmnd .de $9019 0600 istr.prnt .de $9028 0610 ; 0620 parm1.h .de $a64f 0630 parm1 .de $a64e 0640 parm2.h .de $a64d 0650 parm2 .de $a64c 0660 parm3.h .de $a64b 0670 parm3 .de $a64a 0680 parms.num .de $a649 0690 ; 0700 techo .de $a653 0710 urcvec .de $a66c 0720 ursvec .de $a669 0730 access .de $8b86 0740 naccess .de $8b9c 0750 warm .de $8003 0760 usrent .de $8035 0770 p2scr .de $829c 0780 outbyte .de $82fa 0790 outchr .de $8a47 0800 crlf .de $834d 0810 pshove .de $8208 0820 space .de $8342 0830 ; 0840 line.edt .de $9d00 0850 line.ptr .de $0012 0860 line.bvff .de $300 0870 sectr.buff .de $200 0880 dta.ptr .de $394 0890 ; 0900 prompt .de $23 0910 ; 0920 ; 0930 locvs.cmdi .de $9620 ; change this if commands module is relocated 0940 ; 0950 osflags .de $39f 0960 showprgrs .de %10000000 0970 ; 0980 !!!rstosfl .md (mask) 0990 lda #mask 1000 eor #$ff 1010 and osflags 1020 sta osflags 1030 .me 1040 !!!setosfl .md (mask) 1050 lda #mask 1060 ora osflags 1070 sta osflags 1080 .me 1090 ; 1100 !!!stdbl .md (src dst) 1110 lda #l,src 1120 sta dst 1130 lda #h,src 1140 sta dst+1 1150 .me 1160 ; 1170 !!!xfrdbl .md (src dst) 1180 lda src 1190 sta dst 1200 lda src+1 1210 sta dst+1 1220 .me 1230 ; 1240 !!!memcpy .md (src dst num) 1250 ldx #num 1260 loop... lda src-1,x 1270 sta dst-1,x 1280 dex 1290 bne loop... 1300 .me 1310 ; 1320 !!!decdbl .md (loc) 1330 lda loc 1340 bne ...skip 1350 dec loc+1 1360 ...skip dec loc 1370 .me 1380 ; 1390 !!!phdbl .md (loc) 1400 lda #h,loc 1410 pha 1420 lda #l,loc 1430 pha 1440 .me 1450 ; 1460 !!!cmpzdbl .md (loc) 1470 lda loc 1480 ora loc+1 1490 .me 1500 ; 1510 !!!zrgputs .md (zargv) 1520 lda *zargv 1530 ldy *zargv+1 1540 jsr lib.puts 1550 .me 1560 ; 1570 !!!puts .md (strng) 1580 lda #l,strng 1590 ldy #h,strng 1600 jsr lib.puts 1610 .me 1620 ; 1630 !!!zargcmp .md (zargv monst.comp) 1640 ldy #$ff 1650 loop... iny 1660 lda (zargv),y 1670 cmp (monst.comp),y 1680 bne exit... 1690 cmp #0 1700 bne loop... 1710 exit... .me 1720 ; 1730 !!!exec .md (zargv) 1740 lda *zargv 1750 ldy *zargv+1 1760 ldx #execfile 1770 jsr call.bdos 1780 .me 1790 ; 1800 !!!bdos .md (funct) 1810 ldx #funct 1820 jsr call.bdos 1830 .me 1840 ; 1850 !!!parsarg .md (monst.line) 1860 lda *monst.line 1870 ldy *monst.line+1 1880 jsr lib.parse 1890 .me 1900 ; 1910 !!!proccmd .md (monst.cmnds) 1920 lda monst.cmnds 1930 ldy monst.cmnds+1 1940 jsr proc.cmnd 1950 .me 1960 ; 1970 .ba $9000 1980 ; .ba $6000 1990 jmp cold.entry 2000 jmp warm.entry 2010 ; 2020 ; Gap For Other Module's entry points 2030 ; 2040 .ba $9040 2050 cold.entry jsr access 2060 jsr init.bdos 2070 stdbl (locvs.cmdi monst.ctab) ;load location of command ptr 2080 jsr naccess 2090 ; 2100 puts (salvete) 2110 jsr crlf 2120 ; 2130 warm.entry ldx #$ff 2140 txs 2145 jsr access 2150 lda #$80 2160 sta techo 2160 jsr naccess 2170 stdbl (sectr.buff dta.ptr) 2180 cmd.line stdbl (line.bvff line.ptr) 2190 lda #$00 ; default OS flags#showprgrs 2200 sta osflags 2210 getcmnd lda #$0 2220 tay 2230 sta (line.ptr),y 2240 jsr crlf 2250 lda cwd 2260 jsr outbyte 2270 lda #prompt 2280 jsr outchr 2290 jsr space 2300 jsr line.edt 2310 jsr crlf 2320 ; 2330 parsarg (line.ptr) 2340 ; 2350 lda *zargc 2360 beq cmd.line 2370 ; 2380 zrgputs (zargv[0]) 2390 jsr space 2400 ; 2410 proccmd (monst.ctab) 2420 bcs cmd.line 2430 ; 2440 not.found exec (zargv[0]) 2450 bne cmd.line 2460 jsr istr.prnt 2470 .by 'not found' $00 2480 ; 2490 error.end jmp cmd.line 2500 ; 2510 salvete .by 'Symbiosys Ver.V Rel.II' $0a $0d 'Dec.MMXXV' $00 2520 .en // >