From 98cab31fc3659e33aef260efca55bf9f1753164c Mon Sep 17 00:00:00 2001 From: Lars-Dominik Braun Date: Mon, 11 Feb 2019 11:49:19 +0100 Subject: Add source files from Michael --- system/dos/1986/src/gen.dos | 99 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 system/dos/1986/src/gen.dos (limited to 'system/dos/1986/src/gen.dos') diff --git a/system/dos/1986/src/gen.dos b/system/dos/1986/src/gen.dos new file mode 100644 index 0000000..5493272 --- /dev/null +++ b/system/dos/1986/src/gen.dos @@ -0,0 +1,99 @@ +(* 28.02.88, DOS Inserter HD/FD *) +TASK VAR fd, hd ; +IF NOT exists ("files.dos") THEN fetch ("files.dos", archive) FI ; +IF highest entry (ALL "files.dos" - all) > 0 + THEN fetch (ALL "files.dos" - all, archive) ; +FI ; +forget ("files.dos", quiet) ; +forget ("gen.dos", quiet) ; +release (archive) ; +ins ("eumel-ebcdic + sub") ; +ins ("open") ; +ins ("name conversion") ; +begin ("FD", PROC fd start, fd) ; +begin ("HD", PROC hd start, hd) ; +globalmanager ; + +PROC ins (TEXT CONST name) : + insert (name) ; + forget (name, quiet) +ENDPROC ins ; + +PROC hd start : + command dialogue (FALSE) ; + + fetch ("eu disk descriptor.hd") ; + erase ("eu disk descriptor.hd") ; + fetch ("disk descriptor.dos.hd") ; + erase ("disk descriptor.dos.hd") ; + fetch ("cluster") ; + fetch ("block i/o") ; + fetch ("fat and dir.dos.hd") ; + erase ("fat and dir.dos.hd") ; + fetch ("fetch") ; + fetch ("save") ; + fetch ("disk manager") ; + fetch ("manager/M.dos.hd") ; + erase ("manager/M.dos.hd") ; (* fetch beendet signalieren *) + + IF NOT exists ("manager/M.dos.fd", father) (* FD auch fertig ? *) + THEN erase ("block i/o") ; + erase ("cluster") ; + erase ("fetch") ; + erase ("save") ; + erase ("disk manager") + FI ; + + ins ("eu disk descriptor.hd") ; + ins ("disk descriptor.dos.hd") ; + ins ("cluster") ; + ins ("block i/o") ; + ins ("fat and dir.dos.hd") ; + ins ("fetch") ; + ins ("save") ; + ins ("disk manager") ; + ins ("manager/M.dos.hd") ; + do ("dos manager") +ENDPROC hd start ; + +PROC fd start : + disablestop ; + command dialogue (FALSE) ; + fetch ("table thes.dos") ; + erase ("table thes.dos") ; + fetch (ALL "table thes.dos") ; + erase (ALL "table thes.dos") ; + fetch ("eu disk descriptor.fd") ; + erase ("eu disk descriptor.fd") ; + fetch ("disk descriptor.dos.fd") ; + erase ("disk descriptor.dos.fd") ; + fetch ("cluster") ; + fetch ("block i/o") ; + fetch ("fat and dir.dos.fd") ; + erase ("fat and dir.dos.fd") ; + fetch ("fetch") ; + fetch ("save") ; + fetch ("disk manager") ; + fetch ("manager/M.dos.fd") ; + erase ("manager/M.dos.fd") ; (* fetch beendet signalieren *) + + IF NOT exists ("manager/M.dos.hd", father) (* HD auch fertig ? *) + THEN erase ("block i/o") ; + erase ("cluster") ; + erase ("fetch") ; + erase ("save") ; + erase ("disk manager") + FI ; + + ins ("eu disk descriptor.fd") ; + ins ("disk descriptor.dos.fd") ; + ins ("cluster") ; + ins ("block i/o") ; + ins ("fat and dir.dos.fd") ; + ins ("fetch") ; + ins ("save") ; + ins ("disk manager") ; + ins ("manager/M.dos.fd") ; + do ("dos manager") +ENDPROC fd start ; + -- cgit v1.2.3