diff --git a/msdos/AtariPortfolio/README.org b/msdos/AtariPortfolio/README.org new file mode 100644 index 0000000..9d0c5ff --- /dev/null +++ b/msdos/AtariPortfolio/README.org @@ -0,0 +1,22 @@ +#+Title: VolksForth MS-DOS for Atari Portfolio + +The Atari Portfolio is a portable, MS-DOS compatible palmtop computer +released by Atari in 1989 +(https://en.wikipedia.org/wiki/Atari_Portfolio). + +The Portfolio uses an Intel 80C88 CPU running at 4.9152 MHz and runs +"DIP Operating System 2.11" (DIP DOS), an operating system mostly +compatible to MS-DOS 2.11, but with some DOS 2.xx functionality +lacking and some internal data structures more compatible with DOS +3.xx. It has 128 KB of RAM and 256 KB of ROM which contains the OS and +built-in applications. The on-board RAM is divided between system +memory and local storage (the C: drive). The LCD is monochrome without +backlight and had 240×64 pixels or 40 characters × 8 lines. + +* Files: + + * =pofo.fb= - Atari Portfolio System Enhancements + * =pofo.vid= - Atari Portfolio Video Driver (for 40x8 line display) + * =pofo.sys= - load file to generate a full VolksForth for the Atari Portfolio + * =kernel.com= - Vanilla VolksForth Kernel + * =pofo4th.com= - VolksForth for Atari Portfolio diff --git a/msdos/AtariPortfolio/kernel.com b/msdos/AtariPortfolio/kernel.com new file mode 100644 index 0000000..f6f094f Binary files /dev/null and b/msdos/AtariPortfolio/kernel.com differ diff --git a/msdos/AtariPortfolio/pofo.fb b/msdos/AtariPortfolio/pofo.fb new file mode 100644 index 0000000..1bd84b4 --- /dev/null +++ b/msdos/AtariPortfolio/pofo.fb @@ -0,0 +1 @@ +\ Atari Portfolio Systemenhancements and Patches cas 14nov05 \ ?CR WORDS cas 14nov05.( Atari Portfolio System Enhancements ) cr : ?CR col c/row 8 - u> 0=EXIT CR ; : WORDS [COMPILE] ASCII CAPITAL >R CONTEXT @ BEGIN @ DUP STOP? 0= AND WHILE ?CR DUP 2+ R@ BL = OVER 1+ C@ R@ = OR IF .name space ELSE DROP THEN REPEAT DROP RDROP ; IMMEDIATE : POFOLOGO PAGE ." volksFORTH-83 3.81" CR ." Atari Portfolio" CR [ errorhandler ] Literal @ errorhandler ! ['] noop Is 'abort end-trace clearstack standardi/o interpret quit ; .( loaded ) CR \ No newline at end of file diff --git a/msdos/AtariPortfolio/pofo.sys b/msdos/AtariPortfolio/pofo.sys new file mode 100644 index 0000000..aa2cc40 --- /dev/null +++ b/msdos/AtariPortfolio/pofo.sys @@ -0,0 +1 @@ +\\ Startup: Load Standard System cas 14nov05 This file contains commands to create an Atari Portfolio adaptedversion of volksFORTH from KERNEL.COM The new system will be saved as "POFO4TH.COM". \ System LOAD-Screen for MS-DOS volksFORTH cas 15nov05 Onlyforth warning off &08 ' c/col >body ! &40 ' c/row >body ! cr .( creating Atari Portfolio System... ) cr include asm.fb include extend.fb include pofo.vid 0 0 AT include pofo.fb +stat include dos.fb \ include tasker.fb \ include timer.fb include tools.fb \ include editor.fb include primed.fb warning on clear status on .status ' pofologo is 'cold savesystem pofo4th.com bell .( new system saved as POFO4TH.COM ) cr \ No newline at end of file diff --git a/msdos/AtariPortfolio/pofo.vid b/msdos/AtariPortfolio/pofo.vid new file mode 100644 index 0000000..78aba4b --- /dev/null +++ b/msdos/AtariPortfolio/pofo.vid @@ -0,0 +1 @@ + This video display interface utilizes the ROM BIOS call $10. The display is fairly fast and should work on most IBM compatible computers \ BIOS display interface cas 15nov05 Onlyforth \needs Assembler 2 loadfrom asm.fb Variable dpage dpage off Variable top top off Variable status status off Code (at ( lin col -- ) A pop R push U push dpage #) R+ mov A- D+ mov 2 # A+ mov $10 int U pop R pop D pop Next end-code Code (at? ( -- lin col ) D push R push U push dpage #) R+ mov 3 # A+ mov $10 int U pop R pop D+ A- mov 0 # A+ mov A+ D+ mov A push Next end-code 1 6 +thru .( BIOS display interface active) cr \ BIOS normal invers blankline cas 15nov05 : full top off ; Variable attribut 7 attribut ! : normal ; : invers ; : underline ; : bright ; Code blankline D push R push U push dpage #) R+ mov attribut #) R- mov 3 # A+ mov $10 int ' c/row >body #) C mov D- C- sub bl # A- mov 9 # A+ mov $10 int U pop R pop D pop Next end-code | : lineerase 0 (at blankline ; \\ curshape setpage curat? cas 14nov05 Code curshape ( top bot -- ) D C mov D pop D- C+ mov 1 # A+ mov $10 int D pop Next end-code Code setpage ( n -- ) $503 # A mov D- A- and $10 int D pop Next end-code ' (at? Alias curat? \ BIOS (type (emit cas 14nov05 Code (type ( addr len -- ) W pop R push U push D U mov dpage #) R+ mov attribut #) R- mov 3 # A+ mov $10 int U inc C push $E0E # C mov 1 # A+ mov $10 int 1 # C mov [[ U dec 0= not ?[[ D- inc ' c/row >body #) D- cmp 0= not ?[[ W ) A- mov W inc 9 # A+ mov $10 int 2 # A+ mov $10 int ]]? ]? C pop 1 # A+ mov $10 int U pop R pop D pop ' pause #) jmp end-code : (emit ( char -- ) sp@ 1 (type drop ; \ BIOS (del scroll (cr (page cas 15nov05 : (del (at? ?dup IF 1- 2dup (at bl (emit (at exit THEN drop ; Code scroll D push R push U push attribut #) R+ mov top #) C+ mov 0 # C- mov ' c/row >body #) D- mov D- dec ' c/col >body #) D+ mov D+ dec status #) D+ add $601 # A mov $10 int U pop R pop D pop Next end-code : (cr (at? drop 1+ dup 2+ c/col status @ 1+ + u> IF scroll drop c/col 1- status @ + THEN lineerase ; : (page top @ c/col 2- DO I lineerase -1 +LOOP ; \ BIOS status display cas 15nov05 ' (emit ' display 2 + ! ' (cr ' display 4 + ! ' (type ' display 6 + ! ' (del ' display 8 + ! ' (page ' display &10 + ! ' (at ' display &12 + ! ' (at? ' display &14 + ! ' (at? alias curat? : .sp ( n -- ) ." s" depth swap 1+ - 2 .r ; : .base base @ decimal dup 2 .r base ! ; : (.drv ( n -- ) Ascii A + emit ." : " ; : .dr ." " drv (.drv ; : .scr blk @ IF ." Blk" blk ELSE ." Scr" scr THEN @ 5 .r ; : .space ." D" s0 @ here $100 + - 6 u.r ; \ statuszeile cas 15nov05 | : fstat ( n -- ) .base .sp .space .scr .dr file? ; : .stat output @ (at? c/col 1- 0 (at status @ IF 3 fstat THEN over c/col 1- < IF blankline THEN (at output ! ; : +stat ['] .stat Is .status .status ; : -stat ['] noop Is .status ; \ No newline at end of file diff --git a/msdos/AtariPortfolio/pofo4th.com b/msdos/AtariPortfolio/pofo4th.com new file mode 100644 index 0000000..244939d Binary files /dev/null and b/msdos/AtariPortfolio/pofo4th.com differ