6502.org Forum  Projects  Code  Documents  Tools  Forum
It is currently Tue Sep 24, 2024 3:28 am

All times are UTC




Post new topic Reply to topic  [ 59 posts ]  Go to page Previous  1, 2, 3, 4  Next
Author Message
 Post subject:
PostPosted: Sun Jul 24, 2011 10:49 am 
Offline

Joined: Sun Nov 28, 2010 6:35 am
Posts: 48
Location: Newcastle Australia
I have, here at House Harris, done more work on Symbiosys after a six month break. When I left off I needed to remake the Symbiosys File System (SFS1) format command which I completed and expanded in concept so it can create any number of filesystems on the IDE disk. These manifest themselves as being similar to CPM "user areas". These user areas can be addressed from the command line and are effectively additional directories. Though not a hierachical filesystem as such I do plan to write in some kind of pathname database that will resolve symbolic pathnames to user area numbers.

so you can now issue commands like...
Code:
# :                           <----- user area command
: 0004                     <------ tells us we are in user area 4
# ls *
ls
21-07-2011 19:21:16 2000 15C3 01 :lsof.bin.rae
21-07-2011 04:13:41 2000 13F3 02 :fclose.bin.rae
21-07-2011 04:14:17 2000 1440 03 :fgetsec.bin.rae
21-07-2011 04:15:05 2000 13C5 04 :fopen.bin.rae
21-07-2011 19:27:49 2000 1B1C 05 :cp.bin.rae
21-07-2011 18:25:49 2000 1EEA 06 :raepatch-V.rae
21-07-2011 18:28:27 F000 0269 07 *raepatch
21-07-2011 19:19:10 6000 0081 08 *lsof
21-07-2011 19:25:40 6000 01FB 09 *cp

# : 3                       <--------------change to user area 3
: 0003
# ls *
ls
05-07-2011 17:24:33 2000 25EB 02 :stdlib-V.rae
07-07-2011 00:19:26 2000 0CFB 03 :cli-V.rae
26-06-2011 01:11:07 2000 1E03 06 :raepatch-V.rae
28-06-2011 19:18:36 2000 1EE9 0A :line-editor-V.rae
05-07-2011 18:07:07 2000 2646 0B :extcommands.rae
29-06-2011 03:28:36 C003 052B 0F ^extcommands.pac
05-07-2011 15:28:57 2000 2D39 11 :excommands.ex.parsfn.rae
05-07-2011 15:55:02 2000 0183 10 :lib.parsfn.rae
06-07-2011 00:55:17 2000 24ED 13 :commands-V.rae
06-07-2011 18:20:35 2000 22F2 14 :commands-V.rae
06-07-2011 19:20:50 2000 00FB 19 :supermon.h
07-07-2011 02:09:34 9000 0FFF 0D %symbiosys.V.2011.07.07.img
20-07-2011 22:43:03 2000 32C0 1F :bdos-V.rae
21-07-2011 18:53:36 2000 20CE 1C :commands-V.rae
21-07-2011 01:38:12 2000 0460 1E :files.h
21-07-2011 21:07:48 0000 0000 01 %gort

# ls 4:*                                <----------- Listing of user area 4
ls
21-07-2011 19:21:16 2000 15C3 01 :lsof.bin.rae
21-07-2011 04:13:41 2000 13F3 02 :fclose.bin.rae
21-07-2011 04:14:17 2000 1440 03 :fgetsec.bin.rae
21-07-2011 04:15:05 2000 13C5 04 :fopen.bin.rae
21-07-2011 19:27:49 2000 1B1C 05 :cp.bin.rae
21-07-2011 18:25:49 2000 1EEA 06 :raepatch-V.rae
21-07-2011 18:28:27 F000 0269 07 *raepatch
21-07-2011 19:19:10 6000 0081 08 *lsof
21-07-2011 19:25:40 6000 01FB 09 *cp

#
# date
date 24-07-2011 19:41:17 est
#





So at that stage logical next step was to create a copy command to move files into the other user areas.......


Code:
# cp stdlib-V.rae 4:
cp
# ls 4:*
ls
21-07-2011 19:21:16 2000 15C3 01 :lsof.bin.rae
21-07-2011 04:13:41 2000 13F3 02 :fclose.bin.rae
21-07-2011 04:14:17 2000 1440 03 :fgetsec.bin.rae
21-07-2011 04:15:05 2000 13C5 04 :fopen.bin.rae
21-07-2011 19:27:49 2000 1B1C 05 :cp.bin.rae
21-07-2011 18:25:49 2000 1EEA 06 :raepatch-V.rae
21-07-2011 18:28:27 F000 0269 07 *raepatch
21-07-2011 19:19:10 6000 0081 08 *lsof
21-07-2011 19:25:40 6000 01FB 09 *cp
24-07-2011 19:44:04 2000 25EB 0A :stdlib-V.rae  <---------- copied

#

# rm 4:stdlib-V.rae
rm
rm ? 24-07-2011 19:44:04 2000 25EB 0A :stdlib-V.rae
24-07-2011 19:44:04 2000 25EB 0A :stdlib-V.rae     <---- deleted

# ls 4:*
ls
21-07-2011 19:21:16 2000 15C3 01 :lsof.bin.rae
21-07-2011 04:13:41 2000 13F3 02 :fclose.bin.rae
21-07-2011 04:14:17 2000 1440 03 :fgetsec.bin.rae
21-07-2011 04:15:05 2000 13C5 04 :fopen.bin.rae
21-07-2011 19:27:49 2000 1B1C 05 :cp.bin.rae
21-07-2011 18:25:49 2000 1EEA 06 :raepatch-V.rae
21-07-2011 18:28:27 F000 0269 07 *raepatch
21-07-2011 19:19:10 6000 0081 08 *lsof
21-07-2011 19:25:40 6000 01FB 09 *cp

#



Again Symbiosys (Kernel version V) continues to look more and more like a real operating system.


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Sun Jul 24, 2011 11:06 am 
Offline

Joined: Sun Nov 28, 2010 6:35 am
Posts: 48
Location: Newcastle Australia
Oh and I forgot to explain that to implement the copy command I Had to add the ability to open files and have a file handle returned from the open operation to the kernel. an application can open 8 files currently and the a 1 byte file handle is returned in A.

CP is the first part of Symbiosys that is an external binary which resides in a common searched user area not entirely unlike a /bin/ directory.

I'll post the code here for the complete cp command but it is not commented, I have to push ahead with ideas in my mind and comments slow me down. I know this doesnt help anyone else looking at the cde but I will go back and comment it later I promise.

Never the less I believe anyone interested will be able to get an idea of what it's doing.

P.S. There are quite a few unused macros there, it;s a bit of a standard header, don't let them panic you.


Code:

# rae
rae
2000-5FFC  1000-1FFC  0F00
3B1C  1717
>pr
 0020  ;
 0030  ; cp command binary
 0040  ;
 0050  ; For Symbiosys with B.D.O.S. Ver. V
 0060  ;
 0070  ; House Harris
 0080  ; July MMXI
 0090  ;
 0100  ;
 0110             .os
 0120  osflags    .de $39f     ;DOS control flags
 0130  cwd        .de $39d     ;2 bytes for future expansion
 0140  filenum    .de $39c
 0150  sectnum    .de $39b
 0160  bytenum    .de $39a
 0170  xfer.bytes .de $398     ; 16 bits bytes to transfer
 0180  xfer.addr  .de $396     ; 16 bits start addr for transfer
 0190  dta.ptr    .de $394     ; disk transfer buffer pointer
 0200  ilba24     .de $393
 0210  ilba16     .de $392
 0220  ilba8      .de $391
 0230  ilba0      .de $390
 0240  compacptr  .de $3fc
 0250  path.user  .de $3f8
 0260  ;
 0270  argc       .de $37f     ;$a60f
 0280  argv[0]    .de $380     ;$a610
 0290  argv[1]    .de $382     ;$a612
 0300  argv[2]    .de $384     ;$a614
 0310  argv[3]    .de $386     ;$a616
 0320  argv[4]    .de $388     ;$a618
 0330  argv[5]    .de $38a     ;$a61a
 0340  ;
 0350  zargc      .de $4f
 0360  zargv[0]   .de $50
 0370  zargv[1]   .de $52
 0380  zargv[2]   .de $54
 0390  zargv[3]   .de $56
 0400  zargv[4]   .de $58
 0410  zargv[5]   .de $5a
 0420  zargv[6]   .de $5c
 0430  zargv[7]   .de $5e
 0440  ;
 0450  ;
 0460  call.bdos  .de $9006    ; Call BDOS function held in reg x
 0470  disk.init  .de $00
 0480  load.sect  .de $02
 0490  dump.sect  .de $04
 0500  writebytes .de $06
 0510  readbytes  .de $08
 0520  writefile  .de $0a
 0530  readfile   .de $0c
 0540  wrt.dirent .de $0e
 0550  rd.dirent  .de $10
 0560  findfile   .de $12
 0570  findnext   .de $14
 0580  execfile   .de $16
 0590  delfile    .de $18      ;delete file from directory &
 0600  openfile   .de $1a
 0610  rwsectfh   .de $1c
 0620  rwdirfh    .de $1e
 0630  ;
 0640  hex.dump   .de $9f03
 0650  symbiosys  .de $9003
 0660  ;
 0670  errorhndlr .de $9010
 0680  lib.puts   .de $9013
 0690  date.prnt  .de $901c
 0700  rtc.read   .de $901f
 0710  rtc.write  .de $9022
 0720  dir.prnt   .de $9025
 0730  istr.prnt  .de $9028
 0740  lib.atoi   .de $902b
 0750  ptrn.match .de $902e
 0760  proc.flist .de $9031
 0770  verify     .de $9034
 0780  ver.prompt .de $9037
 0790  lba.prnt   .de $903a
 0800  lib.parsfn .de $903d
 0810  ;
 0820  buffer.ptr .de $a0
 0830  word.rtrn  .de $a2
 0840  genbuf.pt2 .de $a4
 0850  fsave.x    .de $a6
 0860  ztemp      .de $eb
 0870  ;
 0880  warment    .de $8003
 0890  usrent     .de $8035
 0900  outbyte    .de $82fa
 0910  ascnib     .de $8275
 0920  getchar    .de $8a58
 0930  outchar    .de $8a47
 0940  crlf       .de $834d
 0950  space      .de $8342
 0960  pshove     .de $8208
 0970  parnr      .de $a649
 0980  par3       .de $a64a
 0990  par2       .de $a64c
 1000  par1       .de $a64e
 1010  techo      .de $a653
 1020  ;
 1030  sectr.buff .de $0200
 1040  osctrlblk  .de $0300
 1050  cli.buffer .de osctrlblk        ;size 80
 1060  pattern    .de cli.buffer+80    ;size 32
 1070  date.buff  .de pattern+32       ;size 10
 1080  byte.count .de date.buff+10     ;size 2
 1090  ;
 1100  ivmp.addr  .de $37c
 1110  ;
 1120  of.bvffer  .de $3a0
 1170  ;
 1180  of.rae     .de $3ef     ;temporary open file for RAE
 1190  ;
 1200  F.Aloc.Lst .de $0400
 1210  dirnt.buff .de $0500
 1220  ;
 1230  RAE.warm   .de $b003
 1240  RAE.txtst  .de $100
 1250  RAE.tpres  .de $d3
 1260  ;
 1380  ;
 1390  ; Files Header
 1400  ;
 1470  file.color .de $00              ;size 1
 1480  file.name  .de file.color+1     ;size 30
 1490  file.ver   .de file.name+30     ;size 1
 1500  file.size  .de file.ver+1       ;size 8
 1510  file.ctime .de file.size+8      ;size 8
 1520  file.mtime .de file.ctime+8     ;size 8
 1530  file.atrib .de file.mtime+8     ;size 4
 1540  file.load  .de file.atrib+4     ;size 4
 1550  file.loc   .de file.load+4      ;size 4
 1560  file.comnt .de file.loc+4
 1570  ;
 1580  of.lba     .de $00              ;size 3
 1590  of.size    .de of.lba+3         ;size 2
 1600  of.flptr   .de of.size+2        ;size 2
 1610  of.flags   .de of.flptr+2       ;size 1
 1620  ;
 1630  of.close   .de %11111110
 1640  of.open    .de %00000001
 1650  ;
 1660  w          .de $00
 1670  r          .de $01
 1680  a          .de $02
 1690  ;
 1700  !!!fopen   .md (mode indic.zarg)
 1710             ldy #$ff
 1720  ...loop    iny
 1730             lda (indic.zarg),y
 1740             sta pattern,y
 1750             bne ...loop
 1760             ldx #openfile
 1770             lda #mode
 1780             jsr call.bdos
 1790             .me
 1800  ;
 1810  !!!parsefn .md (zarg)
 1820             lda *zarg
 1830             sta *buffer.ptr
 1840             lda *zarg+1
 1850             sta *buffer.ptr+1
 1860             jsr lib.parsfn
 1870             bcs ...exit
 1880             adc *zarg
 1890             sta *zarg
 1900             clc
 1910  ...exit    .me
 1920  ;
 1930  !!!fclose  .md
 1940             tax
 1950             lda of.bvffer+of.flags,x
 1960             and #of.close
 1970             sta of.bvffer+of.flags,x
 1980             .me
 1990  ;
 2000  ;
 2010  ; osflag values
 2020  ;
 2030  showprgrs  .de %10000000
 2040  readfrwrd  .de %00000001
 2050  verifymode .de %00000010
 2060  fullpath   .de %00000100
 2070  ;
 2080  !!!rstosfl .md (mask)
 2090             lda #mask
 2100             eor #$ff
 2110             and osflags
 2120             sta osflags
 2130             .me
 2140  !!!setosfl .md (mask)
 2150             lda #mask
 2160             ora osflags
 2170             sta osflags
 2180             .me
 2190  ;
 2200  !!!cmpdbl  .md (first second)
 2210             sec
 2220             lda first
 2230             sbc second
 2240             sta *ztemp
 2250             lda first+1
 2260             sbc second+1
 2270             ora *ztemp
 2280             .me
 2290  ;
 2300  !!!puts    .md (strng)
 2310             lda #l,strng
 2320             ldy #h,strng
 2330             jsr lib.puts
 2340             .me
 2350  ;
 2360  !!!stdbl   .md (src dst)
 2370             pha
 2380             lda #l,src
 2390             sta dst
 2400             lda #h,src
 2410             sta dst+1
 2420             pla
 2430             .me
 2440  ;
 2450  !!!dprintf .md (src)
 2460             pha
 2470             lda #l,src
 2480             sta *buffer.ptr
 2490             lda #h,src
 2500             sta *buffer.ptr+1
 2510             jsr date.prnt
 2520             pla
 2530             .me
 2540  ;
 2550  !!!getdate .md (dest)
 2560             pha
 2570             lda #l,dest
 2580             sta *buffer.ptr
 2590             lda #h,dest
 2600             sta *buffer.ptr+1
 2610             jsr rtc.read
 2620             pla
 2630             .me
 2640  ;
 2650  !!!datecpy .md (source dest)
 2660             ldx #8
 2670  ...loop    lda source-1,x
 2680             sta dest-1,x
 2690             dex
 2700             bne ...loop
 2710             .me
 2720  ;
 2730  !!!bdos    .md (funct)
 2740             ldx #funct
 2750             jsr call.bdos
 2760             .me
 2770  ;
 2780  !!!zrgatoi .md (zargv dest)
 2790             ldx #zargv-zargv[0]
 2800             lda #l,dest
 2810             ldy #h,dest
 2820             jsr lib.atoi
 2830             .me
 2840  ;
 2850  !!!zrgputs .md (indic.zarg)
 2860             ldy #$ff
 2870  ...loop    iny
 2880             lda (indic.zarg),y
 2890             jsr outchar
 2900             bne ...loop
 2910             .me
 2920  ;
 2930  !!!zargcpy .md (indic.zarg locvs.dest)
 2940             ldy #$ff
 2950  ...loop    iny
 2960             lda (indic.zarg),y
 2970             sta locvs.dest,y
 2980             bne ...loop
 2990             .me
 3000  ;
 3120  !!!xfrdbl  .md (src dst)
 3130             pha
 3140             lda src
 3150             sta dst
 3160             lda src+1
 3170             sta dst+1
 3180             pla
 3190             .me
 3200  ;
 3210  !!!decdbl  .md (loc)
 3220             lda loc
 3230             bne ...skip
 3240             dec loc+1
 3250  ...skip    dec loc
 3260             .me
 3270  ;
 3280  !!!cmpzdbl .md (loc)
 3290             lda loc
 3300             ora loc+1
 3310             .me
 3320  ;
 3330  ;
 3340  !!!phdbl   .md (locvs)
 3350             lda #h,locvs
 3360             pha
 3370             lda #l,locvs
 3380             pha
 3390             .me
 3400  ;
 3410  ;
 3420  ; .ba $9600
 3430  ; .ba $6600
 3440             .ba $6000
 3450             .es
 3460  ;
 4050  ;
 4060  cmnd.cp    lda *zargc
 4070             cmp #3
 4080             beq cp.begin
 4090  cp.err     jsr istr.prnt
 4100             .by '[usernum:]sourcefn [usernum:]destfn' $00
 4110             rts
 4120  cp.begin   parsefn (zargv[1])
 4130             bcs cp.err
 4140             fopen (r zargv[1])
 4150             bcc cp.cont  ; bcs cp.err
 4160             jsr istr.prnt
 4170             .by 'source file does not exist' $00
 4180             rts
 4190  cp.cont    sta src.flhdl
 4200             rstosfl (fullpath)
 4210             parsefn (zargv[2])
 4220             bcs cp.fnerr
 4230             lda #fullpath
 4240             bit osflags
 4250             beq cp.skip
 4260             ldy #0
 4270             lda (zargv[2]),y
 4280             bne cp.skip
 4290             fopen (w zargv[1])
 4300             bcc cp.skip2
 4310  cp.fnerr   jsr istr.prnt
 4320             .by 'dest filename error' $00
 4330             rts
 4340  cp.skip    fopen (w zargv[2])
 4350  cp.skip2   bcs cp.fnerr
 4360             sta dst.flhdl
 4370             stdbl (sectr.buff dta.ptr)
 4380             setosfl (showprgrs)
 4390             lda #0
 4400             sta ilba0
 4410  cp.loop    ldy src.flhdl
 4420             sec
 4430             bdos (rwsectfh)
 4440             ldy dst.flhdl
 4450             clc
 4460             bdos (rwsectfh)
 4470             lda ilba0
 4480             ldx src.flhdl
 4490             cmp of.bvffer+of.size+1,x
 4500             bcs cp.finish
 4510             inc ilba0
 4520             bne cp.loop
 4530  cp.finish  ldy src.flhdl
 4540             sec
 4550             bdos (rwdirfh)
 4560             stdbl (dirnt.buff dta.ptr)
 4570             ldy dst.flhdl
 4580             sec
 4590             bdos (rwdirfh)
 4600             lda sectr.buff+file.color
 4610             sta dirnt.buff+file.color
 4620             xfrdbl (sectr.buff+file.size dirnt.buff+file.size)
 4630             xfrdbl (sectr.buff+file.load dirnt.buff+file.load)
 4640             stdbl (dirnt.buff+file.mtime buffer.ptr)
 4650             jsr rtc.read
 4660             ldy dst.flhdl
 4670             clc
 4680             bdos (rwdirfh)
 4690  cp.exit    lda src.flhdl
 4691             fclose
 4692             lda dst.flhdl
 4693             fclose
 4694             lda #1
 4695             rts
 4700  ;
 4710  src.flhdl  .by $00
 4720  dst.flhdl  .by $00
 4730             .en
 4740  ;
 4750  ;
 4760  ; end of cp binary
 4770  ;
//

>


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Tue Jul 26, 2011 2:20 pm 
Offline

Joined: Sun Nov 28, 2010 6:35 am
Posts: 48
Location: Newcastle Australia
I have lately been thinking more about porting Symbiosys to some arguably more popular architectures, the kernel is almost at a stable state of development and much of the further work will be in the form of external executable binaries. Given a location where to put the 4k kernel binary, a location for the buffer&variable block, a location of the 6522 VIA to control the IDE disk and a location for the BDOS internal calls vector jump table it should work on any 6502 machinery. It is using a few of the SUPERMON rom functions on the Sym, but they are small things like converting ascii to binary and a hand full of printing & key input functions. These can be simply written into the kernel.

By necessity I have written the whole thing on the SYM itself using the resident assembler editor (RAE) and perhaps for the purposes of porting it would be better to translate it inot a more conventional 6502 cross assembler on the linux machine. Then again there's no reason I can't stamp out suitably memory mapped binaries from RAE.

Additionally I have been looking into a completely new machine with a radically different CPU to port it to and have set my sights on the Hewlett Packard HP85. It is a very nicely integrated system designed to have it's operating systems and languages in ROM, as Symbiosys is, and it has good access to IO ports for wiring up the disk unit. The availability of the hardware is good but it's in the USA, working out how to get it shipped here to AUstralia is proving to be the biggest challenge right at the moment. Any suggestions in that regard would be welcomed.

I should be able to integrate the SYM 1 into the HP85 development environmnet too, so I can easily maintain both architectures simultaneously. Also as icing on the cake the HP85 has a CP/M kit available for it so I'd get to work again with CP/M only now having access to thew extensive libraries of software that I did not have back in the 1980's. I could also recode Symbiosys for the Z80 too which might be fun in the longer term.

So this is my plan, my dream...... My nightmare.


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Mon Sep 19, 2011 12:42 pm 
Offline

Joined: Wed Apr 21, 2004 11:28 pm
Posts: 30
Location: Adelaide, Australia
Just wondering where I can download the latest code for Symbiosys.

The links previously published dont appear to be working for me.


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Wed Sep 21, 2011 5:47 am 
Offline

Joined: Sun Nov 28, 2010 6:35 am
Posts: 48
Location: Newcastle Australia
yes I can send you the binary. and we can work through it's installation and other details here. At last another sym enthusiast. this is a remarkable day.

I'm just trying to think how to do this. shoudl I just give you the binary itself or a paper tape dump of it I wonder ?


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Wed Sep 21, 2011 6:33 am 
Offline

Joined: Sun Nov 28, 2010 6:35 am
Posts: 48
Location: Newcastle Australia
here is a link you can save to give you the paper tape dump of the OS kernel. If you can successfully get this to load you should be able to run it by the g 9000 command from the supermon prompt and it will give you a startup message and a # prompt. try the command hex 9000 9fff to get it to hexdump itself. if that works then it's time to make up the ide interface cable. let me know how you go, I'll monitor closely the forum now.

http://b5.net/sym1/2011-9-21.dos.ptape

Maybe you will need the binary in a form to burn into an eprom, I myself have the Dallas DS1644 nonvolatile ram 32k with real time clock which you will need as the kernel takes it's date and time from that, that makes up the ram from 0 to 7fff. then I have another 32 k DS 1230Y which sits above that and the kenerl loads into the 9000-9fff area on that. but you might want to burn it into an eprom and sit it in the 9000-9fff window. however you get it there though thats where it sits.


let me know what happens. discuss anything you want to know.

let me know what you need to get it onto your sym.


Top
 Profile  
Reply with quote  
 Post subject: Symbiosys
PostPosted: Wed Sep 21, 2011 9:02 am 
Offline

Joined: Wed Apr 21, 2004 11:28 pm
Posts: 30
Location: Adelaide, Australia
Many thanks for the link. This is exciting.

If you have a link to a binary though, it would be preferable. I will burn it straight to EPROM.

I might have a little bit of work to get my SYM working again, before I have a chance to play with your Kernel. It hasnt been powered up for quite a number of years and has collected some dust. I intend to polish it up this weekend.

Actually, I own a couple of them. An original VIM, which was one of Synerteks early production boards, then an actual SYM.

I have just completed a 2650 based board, with USB interface and all the address decoding done by PLD. Being an Aussi, you probably remember the old EA 2650 project very well.

The intention over coming months is to do a similar project, based on the SYM. Again with USB interface, on hopefully a smaller footprint (minus the keypad and LED display maybe).

I am wondering if it is possible to substitute a hard disk drive for a Compact Flash card running in IDE mode, using your Kernel. Might make for an interesting inclusion in my board.

There are still a couple of us here in Adelaide, who were very fond Sym enthusiasts. I have mentioned your project to them and it has spurred a great deal of interest.


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Wed Sep 21, 2011 10:06 am 
Offline

Joined: Sun Nov 28, 2010 6:35 am
Posts: 48
Location: Newcastle Australia
yes the straight binary for burning to the eprom. I'm sure I can work this out somehow. I can't just copy it to the linux machine straight off the top. let me think about that one, it will happen rest assured.

I might have something to read the paper tape format into a straight binary.

you'll get the sym working, I dug mine out of the cockroach infested garage where it had sat since 1980, the 6502 chip had failed, and some of the ram chips were holding address and data lines down. replaced the 6502 and took out the ram chips till it booted up with 1k in it. Then I made the memory expansion to fit the 32k of DS nvram to replace ALL the ram on the board, just pulled the old 2114's out.

That one was a Vim , and I have since bought a Sym and another Vim of ebay ( you have to pay the same price as they were new [about 250 d's]) so they are one of the more expensive antique computers and for good reason, they are excellent!!!

I do indeed remember the EA 2650 and I have the "Electronics Australia and Phillips Electronic Components & Materials present A RECORDING OF USEFUL 2650 SYSTEM SOFTWARE", 33 1/3 rpm floppy record in my archive of madness. I bought it as a school kid with anticipation of being able to build the EA 2650 (never happened)

YES it is indeed possible to use the compact flash card with ide interface, it is entirely compatible, no changes needed anywhere. It has been done.

USB interface should be easy to incorporate into Symbiosys based system, you may have read the overall architecture of it and a suitable device driver could be written and added into the vector table as a low level driver for the USB. it has not been done, but is possible,

Your project to make a sym clone in your own image, if I understand it correctly, is a superb idea and I only hope we can cooperate to make a full hardware and software package.

Who would have thought that it would be people in Adelaide who would end up being interested in this very unusual project.


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Wed Sep 21, 2011 6:45 pm 
Offline
User avatar

Joined: Thu Dec 11, 2008 1:28 pm
Posts: 10938
Location: England
HouseHarris wrote:
yes the straight binary for burning to the eprom...
I might have something to read the paper tape format into a straight binary.
I did some fiddling on the command line, and here's the binary

Great job with symbiosys - I'm in no position to try it right now, but it must be an asset for the future. If you can make any source available, or any other goodies formerly available (there was a Forth I think?) that would be great.

One other thought - if you have really early 6502s, even broken ones, please consider checking with the visual6502 project because they might be worth reverse engineering to see what early differences between manufacturers were.

Cheers
Ed


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Thu Sep 22, 2011 8:54 am 
Offline

Joined: Sun Nov 28, 2010 6:35 am
Posts: 48
Location: Newcastle Australia
Thanks for that BigEd, I've checked that and it's a good image. I've put it on my server at http://b5.net/sym1/ as well so it is well saved.

I will put up more material for it there too, yes there is a port of FIG forth and microchess,I'd add note that cjb did those. I'll just have to adjust a few values and recompile them as the kernel has changed a bit since then.

So this will all be great when theres another installation or two running out there in the world. Really quite looking forward to that.


Top
 Profile  
Reply with quote  
PostPosted: Wed Nov 02, 2011 9:42 am 
Offline

Joined: Wed Apr 21, 2004 11:28 pm
Posts: 30
Location: Adelaide, Australia
Well, after a month or so silence, I am back.

I have spent some time getting my old Sym-1 working again and developing some new hardware to exploit Symbios to it's full potential.

I have made three PCB's to accomodate the following:

- USB interface
- AA connector IDE interface
- E Connector Header
- DS timekeeping Ram
- 27256 32Kx8 Eprom support
- PLD address decoding

All the hardware is now working nicely and I am ready to start playing with Symbios.

Do you have any further details regarding it's usage?


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Wed Nov 02, 2011 9:56 am 
Offline

Joined: Wed Apr 21, 2004 11:28 pm
Posts: 30
Location: Adelaide, Australia
Image


Image


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Wed Nov 02, 2011 9:59 am 
Offline

Joined: Wed Apr 21, 2004 11:28 pm
Posts: 30
Location: Adelaide, Australia
Image


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Wed Nov 02, 2011 5:11 pm 
Offline

Joined: Sun Nov 28, 2010 6:35 am
Posts: 48
Location: Newcastle Australia
That's totally amazing. I'm impressed to no end. ok then lets get you set up with a file system you can work with.

For a start you should know that the command line editor needs a vt100 emulator, I use the linux xterm to log in and that will work fine.


Well g 9000 will start symbiosys as you'd probably already have worked out. and you should get the # prompt.


ctrl s moves cursor left ctrl d moves it right , crtl a beginning of line ctrl f end of line. ctrl u deletes character forward and backspace deletes backwards. it inserts keystrokes at the cursor position.

try the # date command and it will tell you if your clock is where it should be. to set the date you'll have to go in with supermon to set it up I have not done a commend for that yet. The # mon command will take you out to supermon and a G command from there should take you back into symbiosys command mode.

Then will come the time to test the disk interface, and I hope that's been documented right for you, at any rate the # mkdir 0 0 0 command should create the root user area. now if that works you are truly in business. only the first parameter in mkdir is real, the other two params can be anything it was just something I did just to reduce the risk of accidentally issuing the destructive command by accident. it doesn't do much verification yet.

If that works then do # mkdir 1 0 0 then # mkdir 2 0 0.

try # ls * and it should successfully list an empty root user area. ls must have some wildcard definition I've been meaning to set the default * wild card for a no parameter ls command, I'll get around to it now if you're up and running..

you can tell ls to list another user area by prefixing the parameter with the user area and a colon. So if you ran those other mkdir's then you can do # ls 1:* and # ls 2:*


At that point you could try creating a file with the # store command, execute it with no parameters and it will give you usage instructions (read arcane clues) . store % symbiosys.image 9000 fff should then save the rom images to a file which you can list with # ls * . The first parameter is the file colour which is basically a file attribute, the % is just for general non executable binary files.

The colon by itself as a command will display the current user area and with a number parameter wil change the current user area to what you specify so you can move around your fil esystem with # : 2 and # : 3 .
I'll just stop writing at this stage and you let me know if everything's working so far. If all is good I'll go on, there are several more basic commands working. And you might want to get RAE working too I don;t know. I'll have to feed you the patch for it to access symbiosys.

Let me know how it goes, and I'll buy one of those hardware expansions from you without any hesitation if and when you can supply another.


Top
 Profile  
Reply with quote  
 Post subject: PCB's
PostPosted: Wed Nov 02, 2011 10:53 pm 
Offline

Joined: Wed Apr 21, 2004 11:28 pm
Posts: 30
Location: Adelaide, Australia
Email me your address privately and I will send you a set.


Top
 Profile  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 59 posts ]  Go to page Previous  1, 2, 3, 4  Next

All times are UTC


Who is online

Users browsing this forum: No registered users and 26 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to: