Tim Mann
Corrected 10-16-98
Updated 12-2-98
Updated 1-4-99
A correction to previous information in this space: Mark Fishman recently told me that "at the end Roy did update and print brand-new complete manuals for the operating system(s) and BASIC(s) -- one manual covering both LDOS and LSDOS, and one for both MI/III and M4 BASIC." I don't have copies of those manuals, but I hope to get them eventually.
What I do have is: (1) the complete manual for Model III LDOS version 5.1.x, (2) the update booklet documenting the changes between 5.1 and 5.3.1, and (3) update pages highlighting the changes between 5.3.0 and 5.3.1. Note that item (2) subsumes item (3), but I've supplied both anyway.
The same update documents cover both Model I and Model III. The base manual was slightly different for the two models. Here are some known differences between Model I and Model III LDOS:
- Model I LDOS included the FDUBL/CMD driver for double density support on machines with double density adaptors, and SOLE/CMD to support making bootable double density disks. See the online help.
- A few system files are differently named, such as MOD1/DCT vs. MOD3/DCT (floppy drivers) and RS232R/DVR vs. RS232T/DVR (serial port drivers).
- Model I LDOS has different RAM addresses for a few system functions and memory areas available to programmers. A summary of both Model I and Model III addresses follows. This data was scanned in from a paper copy of the LDOS Quarterly, volume 2 number 1, so it reflects LDOS version 5.1.3.
The LDOS way of checking for Model I vs. III is to test whether the byte at (125H) is 'I'; if so, it's a Model III. The 'I' is part of the ROM's "Model III Basic" signon message.
M E M O R Y M A P - A L P H A B E T I C L I S T I N G This memory map section is provided to allow quick lookup of a memory address corresponding to an LDOS system label. An asterisk marks those addresses which are different on the (Mod I) and [Mod III]. @ABORT----(4030),[4030] @PAUSE----(0060),[0060] JFCB$-----(4358),[4265]* @ADTSK----(4410),[403D]* @PEOF-----(4448),[4448] JLDCB$----(43C0),[42C2]* @BKSP-----(4445),[4445] @POSN-----(4442),[4442] JRET$-----(430C),[4222]* @CKDRV----(44B8),[4209]* @PRINT----(446A),[446A] KFLAG$----(4423),[429F]* @CKEOF----(444B),[4458]* @PRT------(003B),[003B] KIDCB$----(4015),[4015] @CLOSE----(4428),[4428] @PUT------(001B),[001B] KIJCL$----(43BE),[42BE]* @CMD------(4400),[4296]* @RAMDIR---(4396),[4290]* KISV$-----(43B8),[42B8]* @CMNDI----(4405),[4299]* @READ-----(4436),[4436] LDRV$-----(4308),[4427]* @CTL------(0023),[0023] @REW------(443F),[443F] MFLAG$----(442F),[ N/A]* @DATE-----(4470),[3033]* @RMTSK----(4413),[4040]* MULTEA----(4B6C),[4B6B]* @DEBUG----(440D),[440D] @RPTSK----(4416),[4043]* OSVER$----(403E),[441F]* @DIV------(44C4),[4451]* @RREAD----(4454),[445E]* OVRLY$----(430E),[4414]* @DODIR----(4463),[4419]* @RUN------(4433),[4433] PDRV$-----(4309),[4423]* @DOKEY----(44BE),[4285]* @RWRIT----(4457),[4461]* PRDCB$----(4025),[4025] @DSP------(0033),[0033] @SKIP-----(4460),[4464]* PRSV$-----(43BC),[42BC]* @DSPLY----(4467),[4467] @TIME-----(446D),[3036]* RDSECT----(4777),[4777] @DVRHK----(4033),[4033] @VER------(443C),[443C] RDSSEC----(4B45),[4B45] @ERROR----(4409),[4409] @WEOF-----(444E),[445B]* RSELCT----(4759),[4759] @EXIT-----(402D),[402D] @WHERE----(000B),[000B] S1DCB$----(43D8),[42D4]* @FEXT-----(4473),[444B]* @WRITE----(4439),[4439] S2DCB$----(43E0),[42DA]* @FNAME----(44BB),[4293]* CFCB$-----(4480),[4485]* S3DCB$----(43E8),[42E4]* @FSPEC----(441C),[441C] DATE$-----(4044),[421A]* S4DCB$----(43F0),[42E6]* @GET------(0013),[0013] DAY$------(4047),[4417]* S5DCB$----(43F8),[ N/A]* @ICNFG----(4303),[421D]* DBGSV$----(405D),[405D] SBUFF$----(4200),[4300]* @INIT-----(4420),[4420] DCT$------(4700),[4700] SEEK------(475E),[475E] @KBD------(002B),[002B] DCTBYT----(479C),[479C] SELECT----(4754),[4754] @KEY------(0049),[0049] DFLAG$----(441F),[4289]* SFCB$-----(44A0),[42A1]* @KEYIN----(0040),[0040] DRCYL-----(4B65),[4B64]* SFLAG$----(430F),[442B]* @KILL-----(442C),[442C] DIRRD-----(4B10),[4B10] SIDCB$----(43C8),[42C8]* @KITSK----(4300),[4285]* DIRWR-----(4B1F),[4B1F] SODCB$----(43D0),[42CE]* @KLTSK----(4419),[4046]* DIVEA-----(4B7B),[4B7A]* SVDAT1$---(4306),[442F]* @LOAD-----(4430),[4430] DODCB$----(401D),[401D] SVDAT2$---(4307),[4457]* @LOC------(445A),[446D]* DOSV$-----(43BA),[42BA]* TCB$------(4500),[4500] @LOF------(445D),[4470]* GETDCT----(478F),[478F] TIME$-----(4041),[4217]* @LOGER----(447E),[428D]* HIGH$-----(4049),[4411]* TIMER$----(4040),[4288]* @LOGOT----(447B),[428A]* INBUF$----(4318),[4225]* USTOR$----(4DFE),[4DFE] @MSG------(4479),[4402]* INTIM$----(404B),[4473]* VERSEC----(4772),[4772] @MULT-----(44C1),[444E]* INTMSK$---(404C),[4474]* WRPROT----(4768),[4768] @OPEN-----(4424),[4424] INTVC$----(404D),[4475]* WRSECT----(4763),[4763] @PARAM----(4476),[4454]* JDCB$-----(430A),[4220]* WRTRK (476D),[476D]