├── Config.make ├── DiskImages ├── README.md ├── boot.com ├── cf128m-full-emulator.img.gz ├── cf128m-full-z280rc.img.gz ├── cf32m-partition-z280rc.img.gz └── floppy-cpu280.img.gz ├── Docs ├── CPU280 │ └── Install.txt ├── Changelog-280.txt ├── Changelog.txt ├── GPL.txt ├── LGPL.txt ├── LICENSE.txt ├── MCR Commands.md ├── Z280RC │ ├── Install.txt │ ├── disk-layout.txt │ ├── quad-serial-resistors-1.jpg │ └── quad-serial.txt ├── manuals │ ├── kermit180.pdf │ ├── mce.pdf │ ├── syscalls.pdf │ └── zsm4.pdf └── vol180_v5_0.txt ├── LICENSE ├── Makefile ├── README.md ├── Tools ├── cpm │ ├── drlib.com │ ├── drlink.com │ ├── lbr.com │ ├── tkb.com │ └── zsm4.com └── linux │ ├── Makefile │ ├── cksboot │ ├── Makefile │ └── cksboot.c │ ├── mktask │ ├── Makefile │ └── mktask.c │ ├── sym2inc │ ├── Makefile │ └── sym2inc.c │ ├── vol180 │ ├── Makefile │ ├── bitmap.c │ ├── bitmap.h │ ├── blockio.c │ ├── blockio.h │ ├── buffer.c │ ├── buffer.h │ ├── check.c │ ├── check.h │ ├── dirio.c │ ├── dirio.h │ ├── fileio.c │ ├── fileio.h │ ├── indexf.c │ ├── indexf.h │ ├── main.c │ ├── misc.c │ ├── misc.h │ ├── mkdisk.c │ ├── mkdisk.h │ ├── mount.c │ ├── mount.h │ ├── rsx180.h │ ├── vmr.c │ └── vmr.h │ └── vtcp │ ├── Makefile │ ├── main.c │ ├── main.h │ ├── serial.c │ ├── serial.h │ ├── tcp.c │ ├── tcp.h │ ├── telnet.c │ ├── telnet.h │ ├── ttyio.c │ └── ttyio.h ├── acnt.dat ├── boot ├── Makefile ├── README.md ├── cpu280 │ ├── Makefile │ ├── cpu280.inc │ ├── fdboot.mac │ └── z280.inc └── z280rc │ ├── Makefile │ ├── README.md │ ├── cfboot.mac │ └── z280.inc ├── calc ├── Makefile ├── README.md ├── bcdflt.lib ├── c │ ├── Makefile │ ├── bcdconv.c │ ├── bcdconv.h │ ├── calc.c │ ├── calc.hlp │ ├── cpmlibc.lib │ ├── crtcpm.obj │ ├── link.cmd │ ├── ttyio.c │ ├── ttyio.h │ ├── vt100.c │ └── vt100.h ├── calc.hlp ├── calc.inc ├── calc.mac ├── cpmio.mac ├── errors.inc ├── fcb.inc ├── fcslib.inc ├── fcslib.lib ├── format.mac ├── freecalc.png ├── orig │ ├── calc.doc │ ├── calc.hlp │ ├── calc.pas │ └── calcf.sav ├── rsxio.mac ├── sysfn.inc ├── syslib.lib ├── tcb.inc ├── termdef.mac └── test │ ├── iftest.cal │ └── test.cal ├── cpm ├── LICENSE ├── Makefile ├── README.md ├── ast.inc ├── buildcpm.cmd ├── buildtest.cmd ├── cpm.cmd ├── cpm.mac ├── dcb.inc ├── docs │ └── Changelog.txt ├── errors.inc ├── fcb.inc ├── gcml.inc ├── map.mac ├── odt.lib ├── qio.inc ├── sysfn.inc ├── tcb.inc ├── test │ ├── advent.com │ ├── advent1.dat │ ├── advent2.dat │ ├── advent3.dat │ ├── advent4.dat │ ├── advent5.dat │ ├── advent6.dat │ ├── asm.com │ ├── ddt.com │ ├── ddtz.com │ ├── dir.com │ ├── dump.asm │ ├── dump.com │ ├── eadvent.com │ ├── ed.com │ ├── l80.com │ ├── lib.bin │ ├── link.com │ ├── load.com │ ├── lt31.com │ ├── m80.com │ ├── mac.com │ ├── map.com │ ├── map.mac │ ├── maze.t │ ├── mbasic.com │ ├── nulu152.com │ ├── pilotz.com │ ├── pip.com │ ├── plm.com │ ├── rmac.com │ ├── roman80.asm │ ├── saveadv.com │ ├── sdir.com │ ├── sid.com │ ├── stat.com │ ├── t3xz.com │ ├── test.pas │ ├── testcpm.mac │ ├── tinst.com │ ├── tinst.dta │ ├── tinst.msg │ ├── turbo.com │ ├── turbo.msg │ ├── turbo.ovr │ ├── ty.com │ ├── vdo.com │ ├── wm.hlp │ ├── wma.com │ ├── xd3.plm │ ├── xdir.com │ ├── z8e.com │ ├── zsid.com │ ├── zsid6.com │ └── zsm4.com ├── testcpm.cmd └── testcpm.mac ├── drivers ├── Makefile ├── cpu280 │ ├── Makefile │ ├── ast.inc │ ├── bdrates.inc │ ├── clicb.inc │ ├── cpu280.inc │ ├── dcb.inc │ ├── devco.mac │ ├── devdy.mac │ ├── devnl.mac │ ├── devtt.mac │ ├── errors.inc │ ├── iopkt.inc │ ├── pcb.inc │ ├── pseudo.mac │ ├── qio.inc │ ├── sysconf.inc │ ├── tcb.inc │ └── z280.inc └── z280rc │ ├── Makefile │ ├── README.md │ ├── ast.inc │ ├── bdrates.inc │ ├── clicb.inc │ ├── dcb.inc │ ├── devco.mac │ ├── devdu.mac │ ├── devnl.mac │ ├── devtt.mac │ ├── errors.inc │ ├── iopkt.inc │ ├── pcb.inc │ ├── pseudo.mac │ ├── qio.inc │ ├── sysconf.inc │ ├── tcb.inc │ └── z280.inc ├── extras.cmd ├── filesys ├── Makefile ├── README.md ├── ast.inc ├── bitmap.mac ├── blockio.mac ├── buffer.inc ├── buffer.mac ├── dcb.inc ├── errors.inc ├── fcb.inc ├── fileio.mac ├── indexf.mac ├── lcb.inc ├── main.mac ├── mount.mac ├── pcb.inc ├── qio.inc ├── sysconf.inc ├── sysfcp.inc ├── sysfn.inc ├── system.inc ├── tcb.inc └── vcb.inc ├── games ├── Makefile ├── README.md ├── ast.inc ├── cpmio.mac ├── dcb.inc ├── fcslib.lib ├── pacman.mac ├── qio.inc ├── rsxio.mac ├── snake.mac ├── spcinv.mac ├── sysfn.inc ├── syslib.lib ├── termdef.mac ├── tetris.mac ├── volcano.mac └── xonix.mac ├── hello.cmd ├── hello.mac ├── hello1.mac ├── help ├── basic.hlp ├── bro.hlp ├── calc.hlp ├── ccl.hlp ├── dmp.hlp ├── fmt.hlp ├── help.hlp ├── license.hlp ├── mac.hlp ├── mce.hlp ├── mcr.hlp ├── pip.hlp ├── sysfunc.hlp ├── syslib.hlp ├── ted.doc ├── ted.hlp ├── tkb.hlp └── vt100.hlp ├── icp ├── Makefile ├── README.md ├── clicb.inc ├── commands.mac ├── dcb.inc ├── errors.inc ├── eval.mac ├── fcb.inc ├── fcslib.inc ├── fcslib.lib ├── icp.inc ├── lcb.inc ├── main.mac ├── pcb.inc ├── qio.inc ├── spec.mac ├── subst.mac ├── sysfn.inc ├── syslib.lib ├── system.inc ├── tcb.inc ├── test │ ├── color.cmd │ ├── examp.cmd │ ├── icpifn.cmd │ ├── icpifs.cmd │ ├── icpparse.cmd │ ├── icptask.cmd │ ├── icptest.cmd │ ├── primes.cmd │ └── vt100.cmd ├── utils.mac └── vars.mac ├── inc ├── acnt.inc ├── ast.inc ├── baudrates.inc ├── buffer.inc ├── clicb.inc ├── clkq.inc ├── cpu280.inc ├── dcb.inc ├── errors.inc ├── fcb.inc ├── fcslib.inc ├── gcml.inc ├── iopkt.inc ├── lcb.inc ├── pcb.inc ├── qcb.inc ├── qio.inc ├── sst.inc ├── sysconf.inc ├── sysconf.inc.cpu280 ├── sysconf.inc.z280rc ├── sysfn.inc ├── tcb.inc ├── thdr.inc ├── tkn.inc ├── vcb.inc ├── z180.inc └── z280.inc ├── kermit ├── Makefile ├── README.md ├── bdrates.inc ├── dcb.inc ├── docs │ └── ChangeLog.txt ├── errors.inc ├── fcb.inc ├── kcmd.mac ├── kcom.mac ├── kdat.mac ├── kdef.inc ├── kermit.ini ├── kmit.mac ├── kpkt.mac ├── krem.mac ├── kser.mac ├── ksys.mac ├── ktt.mac ├── kutl.mac ├── qio.inc ├── sysfn.inc ├── syslib.lib └── tcb.inc ├── kernel ├── Makefile ├── README.md ├── args.mac ├── ast.inc ├── ast.mac ├── clicb.inc ├── clkq.inc ├── clkq.mac ├── connect.mac ├── cpu280.inc ├── cpu280.mac ├── dcb.inc ├── debug.inc ├── device.mac ├── errors.inc ├── fcb.inc ├── flags.mac ├── fork.mac ├── inth.inc ├── ints.mac ├── iopkt.inc ├── kalloc.mac ├── lcb.inc ├── mmu.mac ├── pars.mac ├── pcb.inc ├── qcb.inc ├── qio.inc ├── qio.mac ├── qldr.mac ├── qmcr.mac ├── qtktn.mac ├── session.mac ├── sndrcv.mac ├── sst.inc ├── startup.mac ├── syscom.mac ├── sysconf.inc ├── sysdat.mac ├── sysfn.inc ├── sysfn.mac ├── systrap.inc ├── tcb.inc ├── tkn.inc ├── tskmgr.mac ├── z280.inc └── z280rc.mac ├── ldr ├── Makefile ├── README.md ├── dcb.inc ├── errors.inc ├── main.mac ├── pcb.inc ├── qio.inc ├── sysconf.inc ├── sysfn.inc ├── system.inc ├── tcb.inc ├── thdr.inc └── tkn.inc ├── libs ├── bcdflt │ ├── Makefile │ ├── README.md │ ├── afp.mac │ ├── atn.mac │ ├── denorm.mac │ ├── exp.mac │ ├── fabs.mac │ ├── fadd.mac │ ├── fcmp.mac │ ├── fdiv.mac │ ├── fint.mac │ ├── fmul.mac │ ├── fneg.mac │ ├── fnorm.mac │ ├── fpa.mac │ ├── fpclr.mac │ ├── fpdat.mac │ ├── fpi.mac │ ├── fpload.mac │ ├── fpmisc.mac │ ├── fpmove.mac │ ├── fpow.mac │ ├── fsgn.mac │ ├── ftrunc.mac │ ├── ifp.mac │ ├── isint.mac │ ├── log.mac │ ├── plyevl.mac │ ├── pshpop.mac │ ├── rolfr.mac │ ├── sincos.mac │ ├── sqr.mac │ └── xform.mac ├── fcslib │ ├── Makefile │ ├── README.md │ ├── dcb.inc │ ├── errors.inc │ ├── fcb.inc │ ├── fclose.mac │ ├── fcmp24.mac │ ├── fcslib.inc │ ├── fdec24.mac │ ├── fdecbk.mac │ ├── fdel.mac │ ├── fflush.mac │ ├── fgetch.mac │ ├── fgetln.mac │ ├── finc24.mac │ ├── fincbk.mac │ ├── fopen.mac │ ├── fpos.mac │ ├── fputch.mac │ ├── fputln.mac │ ├── fputstr.mac │ ├── frattr.mac │ ├── frdblk.mac │ ├── fread.mac │ ├── freload.mac │ ├── fren.mac │ ├── fseek.mac │ ├── fsize.mac │ ├── fsync.mac │ ├── fwattr.mac │ ├── fwrblk.mac │ ├── fwrite.mac │ ├── mkdir.mac │ ├── parsefn.mac │ ├── qio.inc │ ├── qioblk.mac │ └── sysfn.inc ├── odt │ ├── Makefile │ ├── dis280.mac │ ├── notes.txt │ ├── odt280.mac │ └── sysfn.inc └── syslib │ ├── Makefile │ ├── README.md │ ├── add32m.mac │ ├── adec.mac │ ├── adec2.mac │ ├── and32m.mac │ ├── ast.inc │ ├── attach.mac │ ├── bcd2bin.mac │ ├── bin2bcd.mac │ ├── clrmem.mac │ ├── cphlde.mac │ ├── cpl32m.mac │ ├── cpy32m.mac │ ├── crc16.mac │ ├── crlf.mac │ ├── crypt.mac │ ├── cvtbd.mac │ ├── cvtbd2.mac │ ├── cvtld.mac │ ├── cvtwd.mac │ ├── cvtwh.mac │ ├── cvtwo.mac │ ├── dcb.inc │ ├── detach.mac │ ├── errors.inc │ ├── errstr.mac │ ├── exit.mac │ ├── fcb.inc │ ├── gccl.mac │ ├── gcml.inc │ ├── gcml.mac │ ├── getch.mac │ ├── getln.mac │ ├── hldec.mac │ ├── hlhex.mac │ ├── ldec.mac │ ├── malloc.mac │ ├── md5.mac │ ├── or32m.mac │ ├── ovlmgr.mac │ ├── parsefn.mac │ ├── perror.mac │ ├── putch.mac │ ├── putstr.mac │ ├── qio.inc │ ├── qioblk.mac │ ├── rctrlo.mac │ ├── rlc32m.mac │ ├── saval.mac │ ├── savall.mac │ ├── savreg.mac │ ├── savrg.mac │ ├── shl32m.mac │ ├── shr32m.mac │ ├── sleep.mac │ ├── sysfn.inc │ ├── ucase.mac │ └── xor32m.mac ├── login.cmd ├── login.txt ├── mce ├── Makefile ├── README.md ├── ast.inc ├── clicb.inc ├── dcb.inc ├── docs │ └── mce.odt ├── errors.inc ├── fcb.inc ├── fcslib.inc ├── fcslib.lib ├── login.cmd ├── mce.mac ├── mcebld.cmd ├── mceini.cmd ├── mcepre.inc ├── qio.inc ├── sysfn.inc ├── syslib.lib └── tcb.inc ├── mcr ├── Makefile ├── README.md ├── acnt.inc ├── acnt.mac ├── acs.mac ├── ast.inc ├── bdrates.inc ├── bye.mac ├── clicb.inc ├── clkq.inc ├── cot.mac ├── dcb.inc ├── dmo.mac ├── errors.inc ├── fcb.inc ├── fcslib.inc ├── fcslib.lib ├── fdboot.mac ├── gcml.inc ├── hdboot.mac ├── hel.mac ├── ini.mac ├── ins.mac ├── iopkt.inc ├── lcb.inc ├── mcr.mac ├── mou.mac ├── pcb.inc ├── qio.inc ├── sav.mac ├── shutup.mac ├── sys.mac ├── sysconf.inc ├── sysfn.inc ├── syslib.lib ├── sysov1.mac ├── sysov2.mac ├── sysov3.mac ├── system.inc ├── tcb.inc ├── thdr.inc ├── tkn.inc ├── tkn.mac ├── ttputch.mac ├── ufd.mac ├── vcb.inc └── z180.inc ├── nologin.txt ├── pip ├── Makefile ├── README.md ├── attr.mac ├── copy.mac ├── dcb.inc ├── delete.mac ├── dir.mac ├── errors.inc ├── fcb.inc ├── fcslib.inc ├── fcslib.lib ├── gcml.inc ├── main.mac ├── match.mac ├── pip.inc ├── qio.inc ├── rename.mac ├── search.mac ├── sysfn.inc ├── syslib.lib ├── tcb.inc ├── unlock.mac └── vcb.inc ├── progdev ├── Makefile ├── basic11 │ ├── Makefile │ ├── ast.inc │ ├── bascli.mac │ ├── bascpm.mac │ ├── basdat.mac │ ├── basdef.inc │ ├── baserr.mac │ ├── basfp.mac │ ├── basic1.mac │ ├── basic2.mac │ ├── basic3.mac │ ├── basic4.mac │ ├── basic5.mac │ ├── basinit.mac │ ├── basmain.mac │ ├── basrsx.mac │ ├── bastkn.inc │ ├── docs │ │ ├── Changelog.txt │ │ ├── basic_tokens.txt │ │ └── if-note.txt │ ├── errors.inc │ ├── fcb.inc │ ├── programs │ │ ├── Makefile │ │ ├── acey.bas │ │ ├── actfilter.rlc │ │ ├── awari.bas │ │ ├── bagles.bas │ │ ├── bandit.bas │ │ ├── batnum.bas │ │ ├── blackjack.bas │ │ ├── bomb.bas │ │ ├── bounce.bas │ │ ├── boxing.bas │ │ ├── bug.bas │ │ ├── buzzwd.bas │ │ ├── chomp.bas │ │ ├── civilwar.bas │ │ ├── crap.bas │ │ ├── cycles.bas │ │ ├── dates.bas │ │ ├── demo.bas │ │ ├── dice.bas │ │ ├── dragrace.bas │ │ ├── example1.bas │ │ ├── example2.bas │ │ ├── football.bas │ │ ├── fruit.bas │ │ ├── geowar.bas │ │ ├── golf.bas │ │ ├── gomoko.bas │ │ ├── guess.bas │ │ ├── guess1.bas │ │ ├── guess2.bas │ │ ├── gunner.bas │ │ ├── hamurs.bas │ │ ├── hangman.bas │ │ ├── hangman2.bas │ │ ├── hiq.bas │ │ ├── hockey.bas │ │ ├── hun.bas │ │ ├── hurkle.bas │ │ ├── island.bas │ │ ├── joke.bas │ │ ├── keno.bas │ │ ├── life.bas │ │ ├── lit.bas │ │ ├── loan.bas │ │ ├── lpfilter.rlc │ │ ├── lunar.bas │ │ ├── magicsq.bas │ │ ├── mandel.bas │ │ ├── market.bas │ │ ├── mastrmnd.bas │ │ ├── match.bas │ │ ├── maze.bas │ │ ├── oregon.bas │ │ ├── othello.bas │ │ ├── pattern.bas │ │ ├── pilot.bas │ │ ├── poem.bas │ │ ├── puzzle.bas │ │ ├── reverse.bas │ │ ├── rlci.bas │ │ ├── rocket.bas │ │ ├── rocket.txt │ │ ├── roll.bas │ │ ├── rotate.bas │ │ ├── roulet.bas │ │ ├── rsp.bas │ │ ├── rusrou.bas │ │ ├── ship.bas │ │ ├── sinetest.bas │ │ ├── stock.bas │ │ ├── story.bas │ │ ├── swami.bas │ │ ├── synonym.bas │ │ ├── tictac.bas │ │ ├── tower.bas │ │ ├── trade.bas │ │ ├── trader.bas │ │ ├── trek.doc │ │ ├── trek100.bas │ │ ├── trek52.bas │ │ ├── tvshow.bas │ │ ├── vreg1.rlc │ │ ├── vreg2.rlc │ │ ├── vreg3.rlc │ │ ├── war.bas │ │ ├── waves.bas │ │ └── weekday.bas │ ├── qio.inc │ ├── sysfn.inc │ └── tcb.inc ├── debug │ ├── Makefile │ ├── README.md │ ├── dcb.inc │ ├── debug.inc │ ├── debug280.mac │ ├── dis280.mac │ ├── errors.inc │ ├── fcb.inc │ ├── gcml.inc │ ├── lcb.inc │ ├── main.mac │ ├── pcb.inc │ ├── qio.inc │ ├── sst.inc │ ├── sysfn.inc │ ├── syslib.lib │ ├── system.inc │ ├── tcb.inc │ ├── thdr.inc │ └── tkn.inc ├── lbr │ ├── Makefile │ ├── cpmio.mac │ ├── errors.inc │ ├── fcb.inc │ ├── fcslib.inc │ ├── fcslib.lib │ ├── gcml.inc │ ├── lbr.inc │ ├── lbr.mac │ ├── rsxio.mac │ ├── sysfn.inc │ ├── syslib.lib │ └── tcb.inc ├── t3xz │ ├── LICENSE │ ├── Makefile │ ├── README.md │ ├── bin │ │ └── t3xz16.com │ ├── docs │ │ ├── Changelog.txt │ │ └── orig │ │ │ ├── CHANGES │ │ │ ├── README │ │ │ ├── TODO │ │ │ └── t3xz.txt │ ├── lib │ │ ├── Makefile │ │ ├── comp.mac │ │ ├── cpmdefs.inc │ │ ├── div.mac │ │ ├── fcb.inc │ │ ├── mult.mac │ │ ├── qio.inc │ │ ├── start.mac │ │ ├── startcpm.mac │ │ ├── strip.mac │ │ ├── sysfn.inc │ │ ├── t.mac │ │ ├── tcb.inc │ │ └── tcpm.mac │ ├── t.t │ ├── t3x.cmd │ ├── tbuild.cmd │ └── test │ │ ├── ast.inc │ │ ├── fib.t3x │ │ ├── hello.t3x │ │ ├── hello2.t3x │ │ ├── mandel.t3x │ │ ├── maze.t3x │ │ ├── mkmaze.cmd │ │ ├── mkmaze.sh │ │ ├── qio.inc │ │ ├── rsxio.mac │ │ ├── sysfn.inc │ │ └── t3xz.lib ├── tkb │ ├── Makefile │ ├── errors.inc │ ├── fcb.inc │ ├── gcml.inc │ ├── link.inc │ ├── link.mac │ ├── linkcpm.mac │ ├── linkrsx.mac │ ├── qio.inc │ ├── sysfn.inc │ ├── syslib.irl │ ├── syslib.lib │ ├── tcb.inc │ └── thdr.inc └── zsm │ ├── Makefile │ ├── README.md │ ├── alloc.mac │ ├── cpmio.mac │ ├── docs │ └── Changelog.txt │ ├── errors.inc │ ├── eval.mac │ ├── fcb.inc │ ├── fcslib.inc │ ├── fcslib.lib │ ├── gcml.inc │ ├── genrel.mac │ ├── listing.mac │ ├── macros.mac │ ├── rsxio.mac │ ├── symbols.mac │ ├── sysfn.inc │ ├── syslib.lib │ ├── tcb.inc │ ├── zsm.inc │ └── zsm.mac ├── prvutl ├── Makefile ├── README.md ├── ast.inc ├── bro.mac ├── buffer.inc ├── ccl.mac ├── cpu.mac ├── dcb.inc ├── dcu.mac ├── errors.inc ├── fcb.inc ├── gcml.inc ├── lcb.inc ├── pcb.inc ├── qio.inc ├── shf.mac ├── sysfn.inc ├── syslib.lib ├── system.inc ├── tcb.inc ├── vcb.inc └── who.mac ├── rmd ├── Makefile ├── README.md ├── ast.inc ├── atd.mac ├── command.mac ├── date.mac ├── dcb.inc ├── devact.mac ├── disk.mac ├── errors.inc ├── fcb.inc ├── help.mac ├── iopkt.inc ├── main.mac ├── mem.mac ├── misc.mac ├── pcb.inc ├── pool.mac ├── qio.inc ├── rmd.inc ├── sysfn.inc ├── syslib.lib ├── system.inc ├── tcb.inc ├── tskhdr.mac ├── uptime.mac ├── vbuf.mac └── vcb.inc ├── startup.cmd.cpu280 ├── startup.cmd.z280rc ├── syscopy.cmd ├── syslogin.cmd ├── system.dat ├── system.inc ├── sysvmr.cmd.cpu280 ├── sysvmr.cmd.z280rc ├── ted ├── Makefile ├── README.md ├── ast.inc ├── cmds.mac ├── cpmio.mac ├── dcb.inc ├── docs │ ├── Changelog.txt │ ├── ted-ref.txt │ ├── ted.txt │ └── vmem.txt ├── errors.inc ├── fcb.inc ├── fileio.mac ├── main.mac ├── qio.inc ├── rsxio.mac ├── scrn.mac ├── sysfn.inc ├── syslib.lib ├── tcb.inc ├── ted.inc └── termdef.mac ├── test ├── Makefile ├── README.md ├── aboast.mac ├── ast.inc ├── bcdflt.lib ├── bcdtest.mac ├── bintest.mac ├── block0.mac ├── buffer.inc ├── ckp.mac ├── cmdprint.mac ├── dcb.inc ├── dmpres.mac ├── ds1820.mac ├── errors.inc ├── exstat.mac ├── extras │ ├── color.cmd │ ├── examp.cmd │ ├── icptest.cmd │ ├── kermit.ini │ ├── primes.cmd │ ├── testlbr.cmd │ └── vt100.cmd ├── exttest.mac ├── fcb.inc ├── fcslib.inc ├── fcslib.lib ├── fcstest.mac ├── filernd.mac ├── gcml.inc ├── gcmltest.mac ├── hello.cmd ├── hello.mac ├── hello1.mac ├── odt.lib ├── odttest.mac ├── ov1.mac ├── ov2.mac ├── ov3.mac ├── ov4.mac ├── ovltest.mac ├── qio.inc ├── qioast.mac ├── qtest.mac ├── recvtest.mac ├── rnetest.mac ├── sendtest.mac ├── sst.inc ├── sst.mac ├── sysfn.inc ├── syslib.lib ├── system.inc ├── tcb.inc ├── tecken.mac ├── test.mac ├── test1.mac ├── test2.mac ├── vcb.inc └── vfctest.mac ├── type.cmd ├── utils ├── Makefile ├── README.md ├── ast.inc ├── bad.mac ├── cal.mac ├── clock.mac ├── cookie.mac ├── dcb.inc ├── dmp.mac ├── errors.inc ├── fcb.inc ├── fcslib.inc ├── fcslib.lib ├── fdisk.mac ├── fmt.mac ├── gcml.inc ├── mbboot.mac ├── md5.mac ├── msboot.mac ├── murphy.mac ├── qio.inc ├── quote.mac ├── sysfn.inc ├── syslib.lib ├── tcb.inc ├── uptime.mac ├── vfy.mac └── view.mac ├── vdo ├── Makefile ├── ast.inc ├── dcb.inc ├── errors.inc ├── fcb.inc ├── qio.inc ├── sysfn.inc ├── syslib.lib ├── tcb.inc ├── vdo.mac ├── vdocpm.mac └── vdorsx.mac ├── vmr ├── Makefile ├── bdrates.inc ├── dcb.inc ├── devices.mac ├── errors.inc ├── fcb.inc ├── gcml.inc ├── lcb.inc ├── main.mac ├── pars.mac ├── pcb.inc ├── pool.mac ├── qio.inc ├── symbols.mac ├── sysfn.inc ├── syslib.lib ├── tasks.mac ├── tcb.inc ├── thdr.inc ├── vmem.mac └── vmr.inc ├── welcome.txt └── zap ├── Makefile ├── README.md ├── ast.inc ├── cpmio.mac ├── dcb.inc ├── errors.inc ├── fcb.inc ├── gcml.inc ├── main.mac ├── qio.inc ├── rsxio.mac ├── sysfn.inc ├── syslib.lib └── termdef.mac /DiskImages/README.md: -------------------------------------------------------------------------------- 1 | The "cf128m-full-z280rc.img.gz" file is a full CF image intended to be used 2 | in a real Z280RC machine. In addition to RSX280, the image contains CP/M 3 | 2.2 and CP/M 3 from [Tony Nicholson's distribution](https://github.com/agn453/Z280RC), 4 | and UZI280 partitions. 5 | 6 | The "cf32m-partition-z280rc.img.gz" file contains only the RSX280 partition. 7 | 8 | Note that the above Z280RC images do not have the bytes swapped so they can 9 | be accessed with the vol180 utility. Thus, when copying the image to a physical 10 | CF card you'll need to use a disk copy program that swaps bytes of words 11 | (the Linux dd command has a 'conv=swab' option that does the job.) 12 | 13 | The "cf128m-full-emulator.img.gz" image is intended to be used with [Michal 14 | Tomek's Z280 emulator](https://github.com/mtdev79/z280emu). Just gunzip it, 15 | rename it to "cf00.dsk" and copy it to the emulator's directory. 16 | 17 | -------------------------------------------------------------------------------- /DiskImages/boot.com: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hperaza/RSX280/906b9b9ea6ca2d5f3a673f756766cdcf02a6479a/DiskImages/boot.com -------------------------------------------------------------------------------- /DiskImages/cf128m-full-emulator.img.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hperaza/RSX280/906b9b9ea6ca2d5f3a673f756766cdcf02a6479a/DiskImages/cf128m-full-emulator.img.gz -------------------------------------------------------------------------------- /DiskImages/cf128m-full-z280rc.img.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hperaza/RSX280/906b9b9ea6ca2d5f3a673f756766cdcf02a6479a/DiskImages/cf128m-full-z280rc.img.gz -------------------------------------------------------------------------------- /DiskImages/cf32m-partition-z280rc.img.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hperaza/RSX280/906b9b9ea6ca2d5f3a673f756766cdcf02a6479a/DiskImages/cf32m-partition-z280rc.img.gz -------------------------------------------------------------------------------- /DiskImages/floppy-cpu280.img.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hperaza/RSX280/906b9b9ea6ca2d5f3a673f756766cdcf02a6479a/DiskImages/floppy-cpu280.img.gz -------------------------------------------------------------------------------- /Docs/LICENSE.txt: -------------------------------------------------------------------------------- 1 | The RSX180 Operating System, including device drivers and system utilities 2 | is free software; you can redistribute it and/or modify it under the terms 3 | of the GNU General Public License as published by the Free Software 4 | Foundation; either version 2 of the License, or (at your option) any later 5 | version. For more details, see the GPL.txt file. 6 | 7 | The system libraries can be redistributed and/or modified under the terms of 8 | the GNU Library General Public License as published by the Free Software 9 | Foundation; either version 2 of the License, or (at your option) any later 10 | version. For more details, see the LGPL.txt file. 11 | 12 | This software is distributed in the hope that it will be useful, but WITHOUT 13 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 14 | FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License and 15 | the GNU Library General Public License for more details. 16 | 17 | -------------------------------------------------------------------------------- /Docs/Z280RC/quad-serial-resistors-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hperaza/RSX280/906b9b9ea6ca2d5f3a673f756766cdcf02a6479a/Docs/Z280RC/quad-serial-resistors-1.jpg -------------------------------------------------------------------------------- /Docs/Z280RC/quad-serial.txt: -------------------------------------------------------------------------------- 1 | RSX280 now supports 4 additional terminals on Bill Shen's quad-serial port 2 | board (OX16C954 chip). If the quad-serial board is not detected when the 3 | system is booted up, the corresponding units will be set off-line. 4 | 5 | The current version of the driver initializes all four ports to 19200 baud, 6 | 8-N-1. 7 | 8 | Important: 9 | ---------- 10 | 11 | For the OX16C954 chip to work properly, any unused receiver input lines must 12 | *not* be left floating (unconnected), despite what the chip documentation says. 13 | The receiver inputs are very sensitive to noise and hum pickup, and thus are 14 | prone to flooding the system with spurious characters when unconnected. 15 | 16 | Thus, I'd recommend soldering a 1K..10K resistor from the receiver input lines 17 | to ground (see accompanying picture quad-serial-resistors-1.jpg). The resistors 18 | will keep the noise out by grounding the input lines when not used, and will 19 | not interfere with normal operation. 20 | 21 | -------------------------------------------------------------------------------- /Docs/manuals/kermit180.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hperaza/RSX280/906b9b9ea6ca2d5f3a673f756766cdcf02a6479a/Docs/manuals/kermit180.pdf -------------------------------------------------------------------------------- /Docs/manuals/mce.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hperaza/RSX280/906b9b9ea6ca2d5f3a673f756766cdcf02a6479a/Docs/manuals/mce.pdf -------------------------------------------------------------------------------- /Docs/manuals/syscalls.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hperaza/RSX280/906b9b9ea6ca2d5f3a673f756766cdcf02a6479a/Docs/manuals/syscalls.pdf -------------------------------------------------------------------------------- /Docs/manuals/zsm4.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hperaza/RSX280/906b9b9ea6ca2d5f3a673f756766cdcf02a6479a/Docs/manuals/zsm4.pdf -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The RSX180 Operating System, including device drivers and system utilities 2 | is free software; you can redistribute it and/or modify it under the terms 3 | of the GNU General Public License as published by the Free Software 4 | Foundation; either version 2 of the License, or (at your option) any later 5 | version. For more details, see the GPL.txt file. 6 | 7 | The system libraries can be redistributed and/or modified under the terms of 8 | the GNU Library General Public License as published by the Free Software 9 | Foundation; either version 2 of the License, or (at your option) any later 10 | version. For more details, see the LGPL.txt file. 11 | 12 | This software is distributed in the hope that it will be useful, but WITHOUT 13 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 14 | FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License and 15 | the GNU Library General Public License for more details. 16 | 17 | -------------------------------------------------------------------------------- /Tools/cpm/drlib.com: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hperaza/RSX280/906b9b9ea6ca2d5f3a673f756766cdcf02a6479a/Tools/cpm/drlib.com -------------------------------------------------------------------------------- /Tools/cpm/drlink.com: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hperaza/RSX280/906b9b9ea6ca2d5f3a673f756766cdcf02a6479a/Tools/cpm/drlink.com -------------------------------------------------------------------------------- /Tools/cpm/lbr.com: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hperaza/RSX280/906b9b9ea6ca2d5f3a673f756766cdcf02a6479a/Tools/cpm/lbr.com -------------------------------------------------------------------------------- /Tools/cpm/tkb.com: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hperaza/RSX280/906b9b9ea6ca2d5f3a673f756766cdcf02a6479a/Tools/cpm/tkb.com -------------------------------------------------------------------------------- /Tools/cpm/zsm4.com: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hperaza/RSX280/906b9b9ea6ca2d5f3a673f756766cdcf02a6479a/Tools/cpm/zsm4.com -------------------------------------------------------------------------------- /Tools/linux/Makefile: -------------------------------------------------------------------------------- 1 | SHELL=/bin/sh 2 | 3 | subdirs = cksboot mktask sym2inc vol180 vtcp 4 | 5 | all: 6 | @for i in ${subdirs}; do \ 7 | echo Making all in $$i ; \ 8 | (cd $$i; ${MAKE} all) ; \ 9 | done 10 | 11 | clean: 12 | @for i in ${subdirs}; do \ 13 | echo Cleaning in $$i ; \ 14 | (cd $$i; ${MAKE} clean) ; \ 15 | done 16 | -------------------------------------------------------------------------------- /Tools/linux/cksboot/Makefile: -------------------------------------------------------------------------------- 1 | all: cksboot 2 | 3 | cksboot: cksboot.c 4 | cc -o cksboot cksboot.c 5 | 6 | clean: 7 | rm -f core cksboot *~ 8 | -------------------------------------------------------------------------------- /Tools/linux/mktask/Makefile: -------------------------------------------------------------------------------- 1 | SHELL=/bin/sh 2 | 3 | CC = cc 4 | CFLAGS = -g -Wall 5 | #CFLAGS = -O3 6 | #CFLAGS = -g 7 | LIBS = 8 | 9 | SRCS = mktask.c 10 | 11 | OBJS = $(SRCS:.c=.o) 12 | 13 | PROG = mktask 14 | 15 | all: $(PROG) 16 | 17 | .SUFFIX: .c .o 18 | .c.o: 19 | $(CC) $(CFLAGS) -c $< 20 | 21 | ${PROG}: ${OBJS} 22 | $(CC) -g -o $@ ${OBJS} $(LIBS) 23 | 24 | install: 25 | 26 | clean: 27 | rm -f ${OBJS} $(PROG) *~ core *.bak 28 | -------------------------------------------------------------------------------- /Tools/linux/sym2inc/Makefile: -------------------------------------------------------------------------------- 1 | all: sym2inc 2 | 3 | sym2inc: sym2inc.c 4 | cc -o sym2inc sym2inc.c 5 | 6 | clean: 7 | rm -f core sym2inc *~ 8 | -------------------------------------------------------------------------------- /Tools/linux/vol180/Makefile: -------------------------------------------------------------------------------- 1 | SHELL=/bin/sh 2 | 3 | CC = cc 4 | CFLAGS = -g -Wall 5 | #CFLAGS = -O3 6 | #CFLAGS = -g 7 | LIBS = 8 | 9 | SRCS = main.c \ 10 | mount.c \ 11 | dirio.c \ 12 | indexf.c \ 13 | fileio.c \ 14 | bitmap.c \ 15 | buffer.c \ 16 | blockio.c \ 17 | mkdisk.c \ 18 | check.c \ 19 | vmr.c \ 20 | misc.c 21 | 22 | OBJS = $(SRCS:.c=.o) 23 | 24 | OBJS_VOL180 = main.o \ 25 | mount.o \ 26 | dirio.o \ 27 | indexf.o \ 28 | fileio.o \ 29 | bitmap.o \ 30 | buffer.o \ 31 | blockio.o \ 32 | mkdisk.o \ 33 | vmr.o \ 34 | misc.o 35 | 36 | OBJS_FSCK180 = check.o \ 37 | buffer.o \ 38 | blockio.o \ 39 | indexf.o \ 40 | fileio.o \ 41 | bitmap.o \ 42 | dirio.o \ 43 | misc.o 44 | 45 | PROGS = vol180 fsck180 46 | 47 | .SUFFIX: .c .o 48 | .c.o: 49 | $(CC) $(CFLAGS) -c $< 50 | 51 | all: ${PROGS} 52 | 53 | vol180: ${OBJS_VOL180} 54 | $(CC) -g -o $@ ${OBJS_VOL180} $(LIBS) 55 | 56 | fsck180: ${OBJS_FSCK180} 57 | $(CC) -g -o $@ ${OBJS_FSCK180} $(LIBS) 58 | 59 | install: 60 | 61 | clean: 62 | rm -f ${OBJS} $(PROGS) *~ core *.bak 63 | -------------------------------------------------------------------------------- /Tools/linux/vol180/blockio.h: -------------------------------------------------------------------------------- 1 | /*********************************************************************** 2 | 3 | This file is part of vol180, an utility to handle RSX180 volumes. 4 | Copyright (C) 2008-2020, Hector Peraza. 5 | 6 | This program is free software; you can redistribute it and/or 7 | modify it under the terms of the GNU General Public License as 8 | published by the Free Software Foundation; either version 2 of 9 | the License, or (at your option) any later version. 10 | 11 | This program is distributed in the hope that it will be useful, 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | GNU General Public License for more details. 15 | 16 | You should have received a copy of the GNU General Public License 17 | along with this program; if not, write to the Free Software 18 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 19 | 20 | ***********************************************************************/ 21 | 22 | #ifndef __BLOCKIO_H 23 | #define __BLOCKIO_H 24 | 25 | int read_block(unsigned long blknum, unsigned char *buf); 26 | int write_block(unsigned long blknum, unsigned char *buf); 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /Tools/linux/vol180/check.h: -------------------------------------------------------------------------------- 1 | /*********************************************************************** 2 | 3 | This file is part of vol180, an utility to handle RSX180 volumes. 4 | Copyright (C) 2008-2020, Hector Peraza. 5 | 6 | This program is free software; you can redistribute it and/or 7 | modify it under the terms of the GNU General Public License as 8 | published by the Free Software Foundation; either version 2 of 9 | the License, or (at your option) any later version. 10 | 11 | This program is distributed in the hope that it will be useful, 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | GNU General Public License for more details. 15 | 16 | You should have received a copy of the GNU General Public License 17 | along with this program; if not, write to the Free Software 18 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 19 | 20 | ***********************************************************************/ 21 | 22 | #ifndef __CHECK_H 23 | #define __CHECK_H 24 | 25 | int check(void); 26 | int check_volume_id(void); 27 | int check_index_file(void); 28 | int check_master_dir(void); 29 | int check_directories(void); 30 | int check_alloc_map(void); 31 | int list_cluster_usage(unsigned long cluster); 32 | 33 | #endif 34 | -------------------------------------------------------------------------------- /Tools/linux/vol180/mkdisk.h: -------------------------------------------------------------------------------- 1 | /*********************************************************************** 2 | 3 | This file is part of vol180, an utility to handle RSX180 volumes. 4 | Copyright (C) 2008-2020, Hector Peraza. 5 | 6 | This program is free software; you can redistribute it and/or 7 | modify it under the terms of the GNU General Public License as 8 | published by the Free Software Foundation; either version 2 of 9 | the License, or (at your option) any later version. 10 | 11 | This program is distributed in the hope that it will be useful, 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | GNU General Public License for more details. 15 | 16 | You should have received a copy of the GNU General Public License 17 | along with this program; if not, write to the Free Software 18 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 19 | 20 | ***********************************************************************/ 21 | 22 | #ifndef __MKDISK_H 23 | #define __MKDISK_H 24 | 25 | int create_disk(char *fname, unsigned long nblocks, unsigned nfiles); 26 | 27 | #endif 28 | -------------------------------------------------------------------------------- /Tools/linux/vol180/mount.h: -------------------------------------------------------------------------------- 1 | /*********************************************************************** 2 | 3 | This file is part of vol180, an utility to handle RSX180 volumes. 4 | Copyright (C) 2008-2020, Hector Peraza. 5 | 6 | This program is free software; you can redistribute it and/or 7 | modify it under the terms of the GNU General Public License as 8 | published by the Free Software Foundation; either version 2 of 9 | the License, or (at your option) any later version. 10 | 11 | This program is distributed in the hope that it will be useful, 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | GNU General Public License for more details. 15 | 16 | You should have received a copy of the GNU General Public License 17 | along with this program; if not, write to the Free Software 18 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 19 | 20 | ***********************************************************************/ 21 | 22 | #ifndef __MOUNT_H 23 | #define __MOUNT_H 24 | 25 | int mount_disk(char *imgname); 26 | int dismount_disk(void); 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /Tools/linux/vtcp/Makefile: -------------------------------------------------------------------------------- 1 | SHELL=/bin/sh 2 | 3 | CC = cc 4 | CFLAGS = -g -Wall 5 | #CFLAGS = -O3 6 | #CFLAGS = -g 7 | LIBS = 8 | 9 | SRCS = main.c tcp.c serial.c ttyio.c telnet.c 10 | 11 | OBJS = $(SRCS:.c=.o) 12 | 13 | PROG = vtcp 14 | 15 | all: vtcp 16 | 17 | .SUFFIX: .c .o 18 | .c.o: 19 | $(CC) $(CFLAGS) -c $< 20 | 21 | ${PROG}: ${OBJS} 22 | $(CC) -g -o $@ ${OBJS} $(LIBS) 23 | 24 | install: 25 | 26 | clean: 27 | rm -f ${OBJS} $(PROG) *~ core *.bak 28 | -------------------------------------------------------------------------------- /Tools/linux/vtcp/telnet.h: -------------------------------------------------------------------------------- 1 | /*********************************************************************** 2 | 3 | This file is part of vtcp, a virtual terminal daemon for connecting 4 | to a P112 machine running RSX180 with the multiplexed terminal driver. 5 | 6 | Copyright (C) 2016-2020, Hector Peraza. 7 | 8 | This program is free software; you can redistribute it and/or 9 | modify it under the terms of the GNU General Public License as 10 | published by the Free Software Foundation; either version 2 of 11 | the License, or (at your option) any later version. 12 | 13 | This program is distributed in the hope that it will be useful, 14 | but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | GNU General Public License for more details. 17 | 18 | You should have received a copy of the GNU General Public License 19 | along with this program; if not, write to the Free Software 20 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 21 | 22 | ***********************************************************************/ 23 | 24 | #ifndef __TELNET_H 25 | #define __TELNET_H 26 | 27 | int telnet_init(int fd); 28 | int telnet_filter(char c); 29 | 30 | #endif // __TELNET_H 31 | -------------------------------------------------------------------------------- /Tools/linux/vtcp/ttyio.h: -------------------------------------------------------------------------------- 1 | /*********************************************************************** 2 | 3 | This file is part of vtcp, a virtual terminal daemon for connecting 4 | to a P112 machine running RSX180 with the multiplexed terminal driver. 5 | 6 | Copyright (C) 2016-2020, Hector Peraza. 7 | 8 | This program is free software; you can redistribute it and/or 9 | modify it under the terms of the GNU General Public License as 10 | published by the Free Software Foundation; either version 2 of 11 | the License, or (at your option) any later version. 12 | 13 | This program is distributed in the hope that it will be useful, 14 | but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | GNU General Public License for more details. 17 | 18 | You should have received a copy of the GNU General Public License 19 | along with this program; if not, write to the Free Software 20 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 21 | 22 | ***********************************************************************/ 23 | 24 | #ifndef __ttyio_h 25 | #define __ttyio_h 26 | 27 | void init_term(); 28 | void reset_term(); 29 | int get_char(); 30 | void put_char(int c); 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /acnt.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hperaza/RSX280/906b9b9ea6ca2d5f3a673f756766cdcf02a6479a/acnt.dat -------------------------------------------------------------------------------- /boot/Makefile: -------------------------------------------------------------------------------- 1 | SHELL=/bin/sh 2 | 3 | subdirs = cpu280 z280rc 4 | 5 | all: 6 | @for i in ${subdirs}; do \ 7 | echo Making all in $$i ; \ 8 | (cd $$i; ${MAKE} all) ; \ 9 | done 10 | 11 | clean: 12 | @for i in ${subdirs}; do \ 13 | echo Cleaning in $$i ; \ 14 | (cd $$i; ${MAKE} clean) ; \ 15 | done 16 | -------------------------------------------------------------------------------- /boot/README.md: -------------------------------------------------------------------------------- 1 | This directory contains the sources for the hardware bootstrap loaders. 2 | 3 | -------------------------------------------------------------------------------- /boot/cpu280/Makefile: -------------------------------------------------------------------------------- 1 | # Path to Linux utilities 2 | ZXCC = zxcc 3 | CKSBOOT = ../../Tools/linux/cksboot/cksboot 4 | 5 | # Path to CP/M utilities 6 | ZSM4 = ../../Tools/cpm/zsm4.com 7 | TKB = ../../Tools/cpm/tkb.com 8 | 9 | .PREFIX: 10 | .PREFIX: .mac .rel 11 | 12 | SRCS = fdboot.mac 13 | 14 | OBJS = $(SRCS:.mac=.rel) 15 | 16 | all: fdboot.bin 17 | 18 | $(OBJS): %.rel: %.mac *.inc 19 | $(ZXCC) $(ZSM4) -"=$ link.cmd 28 | @echo "crtcpm.obj calc.obj vt100.obj ttyio.obj bcdconv.obj \\" >> link.cmd 29 | @echo "cpmlibc.lib libf.lib" >> link.cmd 30 | zxcc link -"<" +link.cmd 31 | @rm -f link.cmd 32 | 33 | copy: calc.com 34 | cpmrm -f p112 /dev/fd0 0:calc.com 35 | cpmcp -f p112 /dev/fd0 calc.com 0: 36 | 37 | install: 38 | 39 | clean: 40 | rm -f ${OBJS} ${COBJS} calc calc.com *~ core *.bak 41 | -------------------------------------------------------------------------------- /calc/c/bcdconv.h: -------------------------------------------------------------------------------- 1 | #ifndef __bcdconv_h 2 | #define __bcdconv_h 3 | 4 | #ifndef byte 5 | typedef unsigned char byte; 6 | #endif 7 | 8 | byte *f_to_bcd(double val); 9 | double bcd_to_f(byte *bcd); 10 | 11 | #endif 12 | -------------------------------------------------------------------------------- /calc/c/cpmlibc.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hperaza/RSX280/906b9b9ea6ca2d5f3a673f756766cdcf02a6479a/calc/c/cpmlibc.lib -------------------------------------------------------------------------------- /calc/c/crtcpm.obj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hperaza/RSX280/906b9b9ea6ca2d5f3a673f756766cdcf02a6479a/calc/c/crtcpm.obj -------------------------------------------------------------------------------- /calc/c/link.cmd: -------------------------------------------------------------------------------- 1 | -Z -W3 -Ptext=0,data,bss -C100h -ocalc.com \ 2 | crtcpm.obj calc.obj vt100.obj ttyio.obj bcdconv.obj \ 3 | cpmlibc.lib libf.lib 4 | -------------------------------------------------------------------------------- /calc/c/ttyio.h: -------------------------------------------------------------------------------- 1 | #ifndef __ttyio_h 2 | #define __ttyio_h 3 | 4 | void init_term(); 5 | void reset_term(); 6 | int kb_hit(); 7 | int time_delay(int msec); 8 | int get_char(); 9 | void put_char(int c); 10 | void put_string(char *str); 11 | void get_line(char *str, int maxlen); 12 | 13 | #endif 14 | -------------------------------------------------------------------------------- /calc/c/vt100.h: -------------------------------------------------------------------------------- 1 | #ifndef __VT100_H 2 | #define __VT100_H 3 | 4 | void clear_scr(void); 5 | void clear_eos(void); 6 | void clear_eol(void); 7 | void cursor_home(void); 8 | void cursor_off(void); /* ANSI */ 9 | void cursor_on(void); /* ANSI */ 10 | void graph_mode(void); 11 | void alpha_mode(void); 12 | void bold_mode(); 13 | void underline_mode(); 14 | void reverse_mode(); 15 | void set_color(int fg, int bg); 16 | void attrib_off(); 17 | void goto_xy(int x, int y); 18 | int printf_at(int x, int y, char *str, ...); 19 | 20 | #endif /* __VT100_H */ 21 | -------------------------------------------------------------------------------- /calc/fcslib.inc: -------------------------------------------------------------------------------- 1 | ; Structure used by file I/O functions 2 | 3 | FC.FDB equ 0 ; FDB address (2 bytes) 4 | FC.MODE equ FC.FDB + 2 ; access mode and status bits (1 byte) 5 | FC.LUN equ FC.MODE + 1 ; LUN (1 byte) 6 | FC.EFN equ FC.LUN + 1 ; event flag number (1 byte) 7 | FC.BUF equ FC.EFN + 1 ; I/O buffer address (2 bytes) 8 | FC.CNT equ FC.BUF + 2 ; chars in buffer (2 bytes) 9 | FC.CUR equ FC.CNT + 2 ; index of current char in buffer (2 bytes) 10 | FC.BLK equ FC.CUR + 2 ; current block number in buffer (4 bytes) 11 | 12 | FCSIZ equ FC.BLK + 4 ; size of the above structure 13 | 14 | ; Mode bits 15 | 16 | FM.RD equ 0 ; open for read 17 | FM.WR equ 1 ; open for write 18 | FM.WA equ 2 ; open for append 19 | FM.DV equ 3 ; device mode (not a file) 20 | FM.TT equ 4 ; device is a terminal 21 | 22 | ; Status bits 23 | 24 | FS.BV equ 5 ; buffer contains valid data 25 | FS.BM equ 6 ; buffer modified (write pending) 26 | 27 | ; Macro to generate a storage region for file I/O 28 | 29 | FSR$ MACRO fdb,mode,lun,efn,buf 30 | local lfdb,lbuf 31 | ifnb 32 | dw fdb 33 | else 34 | dw lfdb 35 | endif 36 | db mode,lun,efn 37 | ifnb 38 | dw buf 39 | else 40 | dw lbuf 41 | endif 42 | dw 0,0,0,0 43 | ifb 44 | lfdb: ds FINFSZ 45 | endif 46 | ifb 47 | lbuf: ds 512 48 | endif 49 | ENDM 50 | 51 | -------------------------------------------------------------------------------- /calc/fcslib.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hperaza/RSX280/906b9b9ea6ca2d5f3a673f756766cdcf02a6479a/calc/fcslib.lib -------------------------------------------------------------------------------- /calc/freecalc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hperaza/RSX280/906b9b9ea6ca2d5f3a673f756766cdcf02a6479a/calc/freecalc.png -------------------------------------------------------------------------------- /calc/orig/calcf.sav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hperaza/RSX280/906b9b9ea6ca2d5f3a673f756766cdcf02a6479a/calc/orig/calcf.sav -------------------------------------------------------------------------------- /calc/syslib.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hperaza/RSX280/906b9b9ea6ca2d5f3a673f756766cdcf02a6479a/calc/syslib.lib -------------------------------------------------------------------------------- /calc/test/iftest.cal: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hperaza/RSX280/906b9b9ea6ca2d5f3a673f756766cdcf02a6479a/calc/test/iftest.cal -------------------------------------------------------------------------------- /calc/test/test.cal: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hperaza/RSX280/906b9b9ea6ca2d5f3a673f756766cdcf02a6479a/calc/test/test.cal -------------------------------------------------------------------------------- /cpm/Makefile: -------------------------------------------------------------------------------- 1 | # Path to Linux utilities 2 | ZXCC = zxcc 3 | 4 | # Path to CP/M utilities 5 | ZSM4 = ../Tools/cpm/zsm4.com 6 | TKB = ../Tools/cpm/tkb.com 7 | 8 | .SUFFIXES: 9 | .SUFFIXES: .mac .rel 10 | 11 | SRCS = cpm.mac map.mac 12 | 13 | OBJS = $(SRCS:.mac=.rel) 14 | XRFS = $(SRCS:.mac=.crf) 15 | 16 | all: cpm.tsk map.com 17 | 18 | # *.inc files are copied from the latest RSX280 build 19 | $(OBJS): %.rel: %.mac *.inc 20 | $(ZXCC) $(ZSM4) -"=$ 18 | dw buf 19 | db len 20 | else 21 | dw lbuf 22 | db 32 23 | endif 24 | ifnb 25 | db cli 26 | else 27 | db 0,0,0,0,0,0 28 | endif 29 | ifnb 30 | db dev,unit 31 | else 32 | db 'TI',0 33 | endif 34 | ifb 35 | lbuf: ds 32 36 | endif 37 | endm 38 | 39 | -------------------------------------------------------------------------------- /drivers/cpu280/iopkt.inc: -------------------------------------------------------------------------------- 1 | ; I/O packet structure. 2 | ; The first three fields must correspond to the first three QCB fields. 3 | 4 | I.LNK equ 0 ; (QU.LNK) link to next packet (2 bytes) 5 | I.PRI equ I.LNK + 2 ; (QU.PRI) priority (1 byte) 6 | I.SIZE equ I.PRI + 1 ; (QU.SIZ) packet size (2 bytes) 7 | I.TCB equ I.SIZE + 2 ; TCB address of requesting task (2 bytes) 8 | I.UCB equ I.TCB + 2 ; UCB address of target device (2 bytes) 9 | I.QDB equ I.UCB + 2 ; QBD (QDBSZ bytes) 10 | 11 | IOPKSZ equ I.QDB + QDBSZ ; total I/O packet size 12 | IDAT equ IOPKSZ - I.TCB ; size of data field (TCB addr + UCB addr + QDB) 13 | 14 | -------------------------------------------------------------------------------- /drivers/cpu280/sysconf.inc: -------------------------------------------------------------------------------- 1 | ; System configuration file 2 | 3 | ; Current system version 4 | 5 | SVER.H equ 6 ; major 6 | SVER.L equ 40 ; minor 7 | 8 | ; Filesystem version 9 | 10 | FVER.H equ 5 ; major 11 | FVER.L equ 0 ; minor 12 | 13 | ; Clock ticks per second 14 | 15 | TCKSEC equ 100 16 | 17 | F$CHKP equ 1 ; set this to 1 to enable checkpoint file support 18 | 19 | F$HALT equ 1 ; set this to 1 to halt CPU on idle condition 20 | 21 | F$TTMX equ 0 ; this option is only supported on the P112 22 | 23 | ; Resident device drivers 24 | ; 25 | ; - at least one terminal driver that defines TT0: should be present 26 | ; - at least one disk driver should be present for the system to boot 27 | ; - the null device driver is not mandatory, but recommended 28 | ; - any custom device drivers should be added to this table so they can 29 | ; be installed automatically on startup 30 | 31 | GENDEV MACRO 32 | dw DEVDU## ; CF disk driver 33 | dw DEVTT## ; terminal driver 34 | ;; dw DEVLP## ; printer device driver (optional) 35 | dw DEVCO## ; console driver (optional, for console logger) 36 | dw DEVNL## ; null device driver 37 | ENDM 38 | 39 | -------------------------------------------------------------------------------- /drivers/z280rc/Makefile: -------------------------------------------------------------------------------- 1 | # Path to Linux utilities 2 | ZXCC = zxcc 3 | 4 | # Path to CP/M utilities 5 | ZSM4 = ../../Tools/cpm/zsm4.com 6 | LBR = ../../Tools/cpm/lbr.com 7 | 8 | .PREFIX: 9 | .PREFIX: .mac .rel 10 | 11 | SRCS = devdu.mac \ 12 | devtt.mac \ 13 | devnl.mac \ 14 | devco.mac \ 15 | pseudo.mac 16 | 17 | OBJS = $(SRCS:.mac=.rel) 18 | 19 | all: drivers.lib 20 | 21 | $(OBJS): %.rel: %.mac *.inc 22 | $(ZXCC) $(ZSM4) -"=$ 18 | dw buf 19 | db len 20 | else 21 | dw lbuf 22 | db 32 23 | endif 24 | ifnb 25 | db cli 26 | else 27 | db 0,0,0,0,0,0 28 | endif 29 | ifnb 30 | db dev,unit 31 | else 32 | db 'TI',0 33 | endif 34 | ifb 35 | lbuf: ds 32 36 | endif 37 | endm 38 | 39 | -------------------------------------------------------------------------------- /drivers/z280rc/iopkt.inc: -------------------------------------------------------------------------------- 1 | ; I/O packet structure. 2 | ; The first three fields must correspond to the first three QCB fields. 3 | 4 | I.LNK equ 0 ; (QU.LNK) link to next packet (2 bytes) 5 | I.PRI equ I.LNK + 2 ; (QU.PRI) priority (1 byte) 6 | I.SIZE equ I.PRI + 1 ; (QU.SIZ) packet size (2 bytes) 7 | I.TCB equ I.SIZE + 2 ; TCB address of requesting task (2 bytes) 8 | I.UCB equ I.TCB + 2 ; UCB address of target device (2 bytes) 9 | I.QDB equ I.UCB + 2 ; QBD (QDBSZ bytes) 10 | 11 | IOPKSZ equ I.QDB + QDBSZ ; total I/O packet size 12 | IDAT equ IOPKSZ - I.TCB ; size of data field (TCB addr + UCB addr + QDB) 13 | 14 | -------------------------------------------------------------------------------- /drivers/z280rc/sysconf.inc: -------------------------------------------------------------------------------- 1 | ; System configuration file 2 | 3 | ; Current system version 4 | 5 | SVER.H equ 6 ; major 6 | SVER.L equ 40 ; minor 7 | 8 | ; Filesystem version 9 | 10 | FVER.H equ 5 ; major 11 | FVER.L equ 0 ; minor 12 | 13 | ; Clock ticks per second 14 | 15 | TCKSEC equ 100 16 | 17 | F$CHKP equ 1 ; set this to 1 to enable checkpoint file support 18 | 19 | F$HALT equ 1 ; set this to 1 to halt CPU on idle condition 20 | 21 | F$TTMX equ 0 ; this option is only supported on the P112 22 | 23 | ; Resident device drivers 24 | ; 25 | ; - at least one terminal driver that defines TT0: should be present 26 | ; - at least one disk driver should be present for the system to boot 27 | ; - the null device driver is not mandatory, but recommended 28 | ; - any custom device drivers should be added to this table so they can 29 | ; be installed automatically on startup 30 | 31 | GENDEV MACRO 32 | dw DEVDU## ; CF disk driver 33 | dw DEVTT## ; terminal driver 34 | ;; dw DEVLP## ; printer device driver (optional) 35 | dw DEVCO## ; console driver (optional, for console logger) 36 | dw DEVNL## ; null device driver 37 | ENDM 38 | 39 | -------------------------------------------------------------------------------- /extras.cmd: -------------------------------------------------------------------------------- 1 | ins $fdisk 2 | ins $fmt 3 | ins $bad 4 | ins $vfy 5 | ins $clock 6 | ins [test]ds1820/task=...tem 7 | ins [test]bcdtest/task=...rpn 8 | ins [games]xonix 9 | ins [games]pacman 10 | ins [games]tetris 11 | ins [games]snake 12 | ins [games]volcano 13 | ins [games]spcinv 14 | -------------------------------------------------------------------------------- /filesys/Makefile: -------------------------------------------------------------------------------- 1 | # Path to Linux utilities 2 | ZXCC = zxcc 3 | 4 | # Path to CP/M utilities 5 | ZSM4 = ../Tools/cpm/zsm4.com 6 | TKB = ../Tools/cpm/tkb.com 7 | 8 | SRCS = bitmap.mac \ 9 | buffer.mac \ 10 | blockio.mac \ 11 | mount.mac \ 12 | fileio.mac \ 13 | indexf.mac \ 14 | main.mac 15 | 16 | INC = tcb.inc \ 17 | dcb.inc \ 18 | fcb.inc \ 19 | vcb.inc \ 20 | sysfn.inc \ 21 | errors.inc \ 22 | z180.inc 23 | 24 | OBJS = $(SRCS:.mac=.rel) 25 | 26 | PROG = sysfcp.tsk 27 | 28 | all: $(PROG) 29 | 30 | .SUFFIXES: # delete the default suffixes 31 | .SUFFIXES: .mac .rel 32 | 33 | $(OBJS): %.rel: %.mac *.inc 34 | $(ZXCC) $(ZSM4) -"="$ 21 | str: db 'Hello, world!' 22 | len equ $-str 23 | 24 | dseg 25 | 26 | iosb: ds 4 27 | ds 64 ; stack space 28 | stack equ $ 29 | 30 | end HELLO 31 | -------------------------------------------------------------------------------- /help/bro.hlp: -------------------------------------------------------------------------------- 1 | 2 | Syntax: 3 | 4 | BRO ttn:message ; send message to one terminal 5 | BRO LOG:message ; send message to logged-on terminals 6 | BRO ALL:message ; send message to all terminals 7 | 8 | ALL and LOG are privileged keywords. 9 | 10 | -------------------------------------------------------------------------------- /help/dmp.hlp: -------------------------------------------------------------------------------- 1 | 2 | Syntax: 3 | 4 | DMP [outspec=]inpspec[/NH] 5 | 6 | Dumps the contents of the specified file to the terminal or to the specified 7 | file in hexadecimal and ASCII format. 8 | 9 | The /NH suppresses the output of block headers. 10 | 11 | -------------------------------------------------------------------------------- /help/fmt.hlp: -------------------------------------------------------------------------------- 1 | 2 | Syntax: 3 | 4 | FMT ddn:[/option...] 5 | 6 | Formats the disk on drive ddn:. The program accepts the following option 7 | switches: 8 | 9 | /VERIFY - enables verification of sectors after the format 10 | operation (default). 11 | /NOVERIFY or /-VERIFY - disables verification of sectors. 12 | 13 | -------------------------------------------------------------------------------- /help/help.hlp: -------------------------------------------------------------------------------- 1 | 2 | Syntax: 3 | 4 | HELP [topic] [subtopic] 5 | 6 | For help on MCR commands type HELP MCR. 7 | 8 | -------------------------------------------------------------------------------- /icp/Makefile: -------------------------------------------------------------------------------- 1 | # Path to Linux utilities 2 | ZXCC = zxcc 3 | VOL180 = ../Tools/linux/vol180/vol180 4 | 5 | # Path to CP/M utilities 6 | ZSM4 = ../Tools/cpm/zsm4.com 7 | TKB = ../Tools/cpm/tkb.com 8 | 9 | .PREFIX: 10 | .PREFIX: .mac .rel 11 | 12 | SRCS = main.mac \ 13 | commands.mac \ 14 | vars.mac \ 15 | spec.mac \ 16 | eval.mac \ 17 | subst.mac \ 18 | utils.mac 19 | 20 | OBJS = $(SRCS:.mac=.rel) 21 | 22 | PROG = icp.tsk 23 | 24 | all: $(PROG) 25 | 26 | $(OBJS): %.rel: %.mac *.inc 27 | $(ZXCC) $(ZSM4) -"=$ cpicp.cmd 37 | @echo "delete icp.tsk" >> cpicp.cmd 38 | @echo "import icp.tsk icp.tsk /c" >> cpicp.cmd 39 | @echo "bye" >> cpicp.cmd 40 | $(VOL180) /dev/fd0 < cpicp.cmd 41 | @rm cpicp.cmd 42 | -------------------------------------------------------------------------------- /icp/README.md: -------------------------------------------------------------------------------- 1 | This directory contains the sources of the Indirect Command Processor (ICP). 2 | 3 | ICP is normally installed with the task name "AT.", and is invoked 4 | automatically by MCR when a command starting with "@" is entered (command 5 | file execution). 6 | 7 | -------------------------------------------------------------------------------- /icp/clicb.inc: -------------------------------------------------------------------------------- 1 | ; CLI Control Block structure 2 | 3 | CL.LNK equ 0 ; link to next CLICB (2 bytes) 4 | CL.NAM equ CL.LNK + 2 ; CLI task name (6 bytes) 5 | CL.DPL equ CL.NAM + 6 ; length of default prompt string (1 byte) 6 | CL.CPL equ CL.DPL + 1 ; length of ctrl-c prompt string (1 byte) 7 | CL.DAT equ CL.CPL + 1 ; start of data area (prompt strings) 8 | 9 | ; CLI Control Block size (without strings) 10 | 11 | CLIBSZ equ CL.DAT 12 | 13 | ; RSX-11M style macro to get CLI information 14 | 15 | GCII$ macro buf,len,cli,dev,unit 16 | local lbuf 17 | ifnb 18 | dw buf 19 | db len 20 | else 21 | dw lbuf 22 | db 32 23 | endif 24 | ifnb 25 | db cli 26 | else 27 | db 0,0,0,0,0,0 28 | endif 29 | ifnb 30 | db dev,unit 31 | else 32 | db 'TI',0 33 | endif 34 | ifb 35 | lbuf: ds 32 36 | endif 37 | endm 38 | 39 | -------------------------------------------------------------------------------- /icp/fcslib.inc: -------------------------------------------------------------------------------- 1 | ; Structure used by file I/O functions 2 | 3 | FC.FDB equ 0 ; FDB address (2 bytes) 4 | FC.MODE equ FC.FDB + 2 ; access mode and status bits (1 byte) 5 | FC.LUN equ FC.MODE + 1 ; LUN (1 byte) 6 | FC.EFN equ FC.LUN + 1 ; event flag number (1 byte) 7 | FC.BUF equ FC.EFN + 1 ; I/O buffer address (2 bytes) 8 | FC.CNT equ FC.BUF + 2 ; chars in buffer (2 bytes) 9 | FC.CUR equ FC.CNT + 2 ; index of current char in buffer (2 bytes) 10 | FC.BLK equ FC.CUR + 2 ; current block number in buffer (4 bytes) 11 | 12 | FCSIZ equ FC.BLK + 4 ; size of the above structure 13 | 14 | ; Mode bits 15 | 16 | FM.RD equ 0 ; open for read 17 | FM.WR equ 1 ; open for write 18 | FM.WA equ 2 ; open for append 19 | FM.DV equ 3 ; device mode (not a file) 20 | FM.TT equ 4 ; device is a terminal 21 | 22 | ; Status bits 23 | 24 | FS.BV equ 5 ; buffer contains valid data 25 | FS.BM equ 6 ; buffer modified (write pending) 26 | 27 | ; Macro to generate a storage region for file I/O 28 | 29 | FSR$ MACRO fdb,mode,lun,efn,buf 30 | local lfdb,lbuf 31 | ifnb 32 | dw fdb 33 | else 34 | dw lfdb 35 | endif 36 | db mode,lun,efn 37 | ifnb 38 | dw buf 39 | else 40 | dw lbuf 41 | endif 42 | dw 0,0,0,0 43 | ifb 44 | lfdb: ds FINFSZ 45 | endif 46 | ifb 47 | lbuf: ds 512 48 | endif 49 | ENDM 50 | 51 | -------------------------------------------------------------------------------- /icp/fcslib.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hperaza/RSX280/906b9b9ea6ca2d5f3a673f756766cdcf02a6479a/icp/fcslib.lib -------------------------------------------------------------------------------- /icp/lcb.inc: -------------------------------------------------------------------------------- 1 | ; Login Control Block structure, one per logged-in terminal 2 | 3 | L.ST equ 0 ; status (1 byte) 4 | L.NAME equ L.ST + 1 ; user name (9 characters) 5 | L.USR equ L.NAME + 9 ; user number (1 byte) 6 | L.GRP equ L.USR + 1 ; group number (1 byte) 7 | L.CDIR equ L.GRP + 1 ; current dir name (9 bytes) 8 | 9 | ; LCB size 10 | 11 | LCBSZ equ L.CDIR + 9 12 | 13 | ; Status bit numbers 14 | 15 | LS.PRV equ 0 ; privileged 16 | 17 | -------------------------------------------------------------------------------- /icp/syslib.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hperaza/RSX280/906b9b9ea6ca2d5f3a673f756766cdcf02a6479a/icp/syslib.lib -------------------------------------------------------------------------------- /icp/test/color.cmd: -------------------------------------------------------------------------------- 1 | .enable substitution 2 | .setn esc 27 3 | .;'esc%V'[0;44;37m 4 | ;'esc%V'[1;44;33m 5 | -------------------------------------------------------------------------------- /icp/test/icpifn.cmd: -------------------------------------------------------------------------------- 1 | .enable substitution 2 | .start: 3 | .askn n1 Enter N1 4 | .askn n2 Enter N2 5 | .if n1 = n2 ; 'N1' = 'N2' 6 | .if n1 <> n2 ; 'N1' <> 'N2' 7 | .if n1 > n2 ; 'N1' > 'N2' 8 | .if n1 >= n2 ; 'N1' >= 'N2' 9 | .if n1 < n2 ; 'N1' < 'N2' 10 | .if n1 <= n2 ; 'N1' <= 'N2' 11 | .ask a Again 12 | .ift a .goto start 13 | -------------------------------------------------------------------------------- /icp/test/icpifs.cmd: -------------------------------------------------------------------------------- 1 | .enable substitution 2 | .start: 3 | .asks s1 Enter String 1 4 | .asks s2 Enter String 2 5 | .if s1 = s2 ; 's1' = 's2' 6 | .if s1 <> s2 ; 's1' <> 's2' 7 | .if s1 > s2 ; 's1' > 's2' 8 | .if s1 >= s2 ; 's1' >= 's2' 9 | .if s1 < s2 ; 's1' < 's2' 10 | .if s1 <= s2 ; 's1' <= 's2' 11 | .ask a Again 12 | .ift a .goto start 13 | -------------------------------------------------------------------------------- /icp/test/icpparse.cmd: -------------------------------------------------------------------------------- 1 | ; .PARSE test 2 | .enable substitution 3 | .sets command "TESTFILE IND,MCR,,LOA" 4 | .parse command " ," file a1 a2 a3 a4 a5 5 | ; "'command'" -> "'file'", "'a1'", "'a2'", "'a3'", "'a4'", "'a5'" 6 | .parse "dy:[dir]fname.ext;ver" "[].;" dev dir file ext ver 7 | ; 'dev'['dir']'file'.'ext';'ver' 8 | -------------------------------------------------------------------------------- /icp/test/icptask.cmd: -------------------------------------------------------------------------------- 1 | ; .IFINS/.IFNINS/.IFACT/.IFNACT test 2 | .enable substitution 3 | .sets null "" 4 | .loop: 5 | .asks t Enter task name 6 | .if t = null .stop 7 | .ifins 't' .goto 1 8 | ; Task not installed 9 | .1: 10 | .ifnins 't' .goto 2 11 | ; Task installed 12 | .2: 13 | .ifact 't' .goto 3 14 | ; Task not active 15 | .3: 16 | .ifnact 't' .goto 4 17 | ; Task active 18 | .4: 19 | .goto loop 20 | -------------------------------------------------------------------------------- /icp/test/primes.cmd: -------------------------------------------------------------------------------- 1 | .; 2 | .; Calculate prime numbers using the Sieve of Eratosthenes 3 | .; T. R. Wyant 4 | .; E. I. DuPont de Nemours 5 | .; P. O. Box 27001 6 | .; Richmond, VA 23261 7 | .; December 4, 1991 8 | .; Adapted for RSX180 Feb 10, 2017 9 | .; 10 | .; The upper limit on number of primes is rather arbitrary (the 11 | .; hundredth prime being only 541). On the other hand, who really 12 | .; wants to use a .CMD file as a prime number generator anyway? 13 | .; 14 | .ENABLE SUBSTITUTION 15 | .SETS MYFILE 16 | ; 'MYFILE' 17 | .SETN P$1 2 18 | .SETN NP 0 19 | .SETN NM 1 20 | .ASKN FP Number of primes to find (10 to 100) 21 | .SETS START