Home » Personal collection » Acorn DFS disks » dfs_box03_disk07_forth.scp » 001-019

001-019

This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.

Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.

Tape/disk: Home » Personal collection » Acorn DFS disks » dfs_box03_disk07_forth.scp
Filename: 001-019
Read OK:
File size: 2600 bytes
Load address: 5000
Exec address: 5000
Duplicates

There is 1 duplicate copy of this file in the archive:

File contents
( CONTENTS )                                                    ( 17-19 Disk Initialise INIT40 )                                                                                                                                                                                                                                                                                                                                                                                                                                ( Empty                        )                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                : TESTIT                        OVER OVER                       R> DUP 1 = IF                        DROP OVER OVER D.               13 >R                         ELSE                              - DUP >R U/MOD DROP             R@ = IF                            TESTIT                       ELSE                               R> DROP 13 >R                ENDIF                         ENDIF ;                                                                                                                      ( The main program definition  ): INCREM13                        13. D+ ;                                                      : MAINPROG                        0. 13 >R                        BEGIN                                INCREM13                        TESTIT                     AGAIN ;                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       ( Disc Initialisation     Load )                                  decimal  018 019 thru   exit                                                                                                                                       This is the Load Block          for the Disc Initialiser                                                                                                                                                                                                                                   ( Disc Initialisation      1/2 )                                  hex variable FCB                 5000 , 0000 , 5000 , 0000 ,     5000 , 0000 , 7800 , 0000 ,  : 1-DIGIT           ( n1 __ n2 )   0A /mod swap 30 + hold ;     : 3-DIGIT             ( n __ 0 )   1-digit 1-digit 1-digit ;    : F-NAME           ( n __ addr )   <# 0D hold dup 13 + 3-digit     drop 2D hold dup 0= + 3-digit   0 #> >r dup r> cr type cr ;  : WRITE-FILE            ( n __ )   f-name fcb !  5000 fcb 0A + !   fcb 0 FFDD call drop drop ;  ( Disc Initialisation      2/2 )  hex                           : INITIALISE-MEMORY       ( __ )   5000 2800 blanks 7800 5000 do   79 74 70 6D 45 bl 28            7 0 do j i + c! loop            29 i 1F + c! 200 +loop ;     : (INIT)                ( n __ )   u0 @ 5000 < not ?error" needs   user area below &5000" cr       ." Insert disc, press a key"    key drop initialise-memory      7600 fcb 0E + ! 0 write-file    14 do 7800 fcb 0E + !           i write-file 14 +loop ;      : INIT40 0C8 (init) ;     ( __ )
00000000  28 20 43 4f 4e 54 45 4e  54 53 20 29 20 20 20 20  |( CONTENTS )    |
00000010  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00000040  28 20 31 37 2d 31 39 20  44 69 73 6b 20 49 6e 69  |( 17-19 Disk Ini|
00000050  74 69 61 6c 69 73 65 20  49 4e 49 54 34 30 20 29  |tialise INIT40 )|
00000060  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00000200  28 20 45 6d 70 74 79 20  20 20 20 20 20 20 20 20  |( Empty         |
00000210  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 29  |               )|
00000220  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00000400  3a 20 54 45 53 54 49 54  20 20 20 20 20 20 20 20  |: TESTIT        |
00000410  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000420  4f 56 45 52 20 4f 56 45  52 20 20 20 20 20 20 20  |OVER OVER       |
00000430  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000440  52 3e 20 44 55 50 20 31  20 3d 20 49 46 20 20 20  |R> DUP 1 = IF   |
00000450  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000460  20 20 20 20 20 44 52 4f  50 20 4f 56 45 52 20 4f  |     DROP OVER O|
00000470  56 45 52 20 44 2e 20 20  20 20 20 20 20 20 20 20  |VER D.          |
00000480  20 20 20 20 20 31 33 20  3e 52 20 20 20 20 20 20  |     13 >R      |
00000490  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000004a0  20 20 20 45 4c 53 45 20  20 20 20 20 20 20 20 20  |   ELSE         |
000004b0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000004c0  20 20 20 20 20 2d 20 44  55 50 20 3e 52 20 55 2f  |     - DUP >R U/|
000004d0  4d 4f 44 20 44 52 4f 50  20 20 20 20 20 20 20 20  |MOD DROP        |
000004e0  20 20 20 20 20 52 40 20  3d 20 49 46 20 20 20 20  |     R@ = IF    |
000004f0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000500  20 20 20 20 20 20 20 20  54 45 53 54 49 54 20 20  |        TESTIT  |
00000510  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000520  20 20 20 20 20 45 4c 53  45 20 20 20 20 20 20 20  |     ELSE       |
00000530  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000540  20 20 20 20 20 20 20 20  52 3e 20 44 52 4f 50 20  |        R> DROP |
00000550  31 33 20 3e 52 20 20 20  20 20 20 20 20 20 20 20  |13 >R           |
00000560  20 20 20 20 20 45 4e 44  49 46 20 20 20 20 20 20  |     ENDIF      |
00000570  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000580  20 20 20 45 4e 44 49 46  20 3b 20 20 20 20 20 20  |   ENDIF ;      |
00000590  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00000600  28 20 54 68 65 20 6d 61  69 6e 20 70 72 6f 67 72  |( The main progr|
00000610  61 6d 20 64 65 66 69 6e  69 74 69 6f 6e 20 20 29  |am definition  )|
00000620  3a 20 49 4e 43 52 45 4d  31 33 20 20 20 20 20 20  |: INCREM13      |
00000630  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000640  20 20 31 33 2e 20 44 2b  20 3b 20 20 20 20 20 20  |  13. D+ ;      |
00000650  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00000680  3a 20 4d 41 49 4e 50 52  4f 47 20 20 20 20 20 20  |: MAINPROG      |
00000690  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000006a0  20 20 30 2e 20 31 33 20  3e 52 20 20 20 20 20 20  |  0. 13 >R      |
000006b0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000006c0  20 20 42 45 47 49 4e 20  20 20 20 20 20 20 20 20  |  BEGIN         |
000006d0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000006e0  20 20 20 20 20 20 20 49  4e 43 52 45 4d 31 33 20  |       INCREM13 |
000006f0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000700  20 20 20 20 20 20 20 54  45 53 54 49 54 20 20 20  |       TESTIT   |
00000710  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000720  20 20 41 47 41 49 4e 20  3b 20 20 20 20 20 20 20  |  AGAIN ;       |
00000730  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00002000  28 20 44 69 73 63 20 49  6e 69 74 69 61 6c 69 73  |( Disc Initialis|
00002010  61 74 69 6f 6e 20 20 20  20 20 4c 6f 61 64 20 29  |ation     Load )|
00002020  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00002040  20 20 64 65 63 69 6d 61  6c 20 20 30 31 38 20 30  |  decimal  018 0|
00002050  31 39 20 74 68 72 75 20  20 20 65 78 69 74 20 20  |19 thru   exit  |
00002060  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
000020e0  20 20 20 20 20 54 68 69  73 20 69 73 20 74 68 65  |     This is the|
000020f0  20 4c 6f 61 64 20 42 6c  6f 63 6b 20 20 20 20 20  | Load Block     |
00002100  20 20 20 20 20 66 6f 72  20 74 68 65 20 44 69 73  |     for the Dis|
00002110  63 20 49 6e 69 74 69 61  6c 69 73 65 72 20 20 20  |c Initialiser   |
00002120  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00002200  28 20 44 69 73 63 20 49  6e 69 74 69 61 6c 69 73  |( Disc Initialis|
00002210  61 74 69 6f 6e 20 20 20  20 20 20 31 2f 32 20 29  |ation      1/2 )|
00002220  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00002240  20 20 68 65 78 20 76 61  72 69 61 62 6c 65 20 46  |  hex variable F|
00002250  43 42 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |CB              |
00002260  20 20 20 35 30 30 30 20  2c 20 30 30 30 30 20 2c  |   5000 , 0000 ,|
00002270  20 35 30 30 30 20 2c 20  30 30 30 30 20 2c 20 20  | 5000 , 0000 ,  |
00002280  20 20 20 35 30 30 30 20  2c 20 30 30 30 30 20 2c  |   5000 , 0000 ,|
00002290  20 37 38 30 30 20 2c 20  30 30 30 30 20 2c 20 20  | 7800 , 0000 ,  |
000022a0  3a 20 31 2d 44 49 47 49  54 20 20 20 20 20 20 20  |: 1-DIGIT       |
000022b0  20 20 20 20 28 20 6e 31  20 5f 5f 20 6e 32 20 29  |    ( n1 __ n2 )|
000022c0  20 20 20 30 41 20 2f 6d  6f 64 20 73 77 61 70 20  |   0A /mod swap |
000022d0  33 30 20 2b 20 68 6f 6c  64 20 3b 20 20 20 20 20  |30 + hold ;     |
000022e0  3a 20 33 2d 44 49 47 49  54 20 20 20 20 20 20 20  |: 3-DIGIT       |
000022f0  20 20 20 20 20 20 28 20  6e 20 5f 5f 20 30 20 29  |      ( n __ 0 )|
00002300  20 20 20 31 2d 64 69 67  69 74 20 31 2d 64 69 67  |   1-digit 1-dig|
00002310  69 74 20 31 2d 64 69 67  69 74 20 3b 20 20 20 20  |it 1-digit ;    |
00002320  3a 20 46 2d 4e 41 4d 45  20 20 20 20 20 20 20 20  |: F-NAME        |
00002330  20 20 20 28 20 6e 20 5f  5f 20 61 64 64 72 20 29  |   ( n __ addr )|
00002340  20 20 20 3c 23 20 30 44  20 68 6f 6c 64 20 64 75  |   <# 0D hold du|
00002350  70 20 31 33 20 2b 20 33  2d 64 69 67 69 74 20 20  |p 13 + 3-digit  |
00002360  20 20 20 64 72 6f 70 20  32 44 20 68 6f 6c 64 20  |   drop 2D hold |
00002370  64 75 70 20 30 3d 20 2b  20 33 2d 64 69 67 69 74  |dup 0= + 3-digit|
00002380  20 20 20 30 20 23 3e 20  3e 72 20 64 75 70 20 72  |   0 #> >r dup r|
00002390  3e 20 63 72 20 74 79 70  65 20 63 72 20 3b 20 20  |> cr type cr ;  |
000023a0  3a 20 57 52 49 54 45 2d  46 49 4c 45 20 20 20 20  |: WRITE-FILE    |
000023b0  20 20 20 20 20 20 20 20  28 20 6e 20 5f 5f 20 29  |        ( n __ )|
000023c0  20 20 20 66 2d 6e 61 6d  65 20 66 63 62 20 21 20  |   f-name fcb ! |
000023d0  20 35 30 30 30 20 66 63  62 20 30 41 20 2b 20 21  | 5000 fcb 0A + !|
000023e0  20 20 20 66 63 62 20 30  20 46 46 44 44 20 63 61  |   fcb 0 FFDD ca|
000023f0  6c 6c 20 64 72 6f 70 20  64 72 6f 70 20 3b 20 20  |ll drop drop ;  |
00002400  28 20 44 69 73 63 20 49  6e 69 74 69 61 6c 69 73  |( Disc Initialis|
00002410  61 74 69 6f 6e 20 20 20  20 20 20 32 2f 32 20 29  |ation      2/2 )|
00002420  20 20 68 65 78 20 20 20  20 20 20 20 20 20 20 20  |  hex           |
00002430  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00002440  3a 20 49 4e 49 54 49 41  4c 49 53 45 2d 4d 45 4d  |: INITIALISE-MEM|
00002450  4f 52 59 20 20 20 20 20  20 20 28 20 5f 5f 20 29  |ORY       ( __ )|
00002460  20 20 20 35 30 30 30 20  32 38 30 30 20 62 6c 61  |   5000 2800 bla|
00002470  6e 6b 73 20 37 38 30 30  20 35 30 30 30 20 64 6f  |nks 7800 5000 do|
00002480  20 20 20 37 39 20 37 34  20 37 30 20 36 44 20 34  |   79 74 70 6D 4|
00002490  35 20 62 6c 20 32 38 20  20 20 20 20 20 20 20 20  |5 bl 28         |
000024a0  20 20 20 37 20 30 20 64  6f 20 6a 20 69 20 2b 20  |   7 0 do j i + |
000024b0  63 21 20 6c 6f 6f 70 20  20 20 20 20 20 20 20 20  |c! loop         |
000024c0  20 20 20 32 39 20 69 20  31 46 20 2b 20 63 21 20  |   29 i 1F + c! |
000024d0  32 30 30 20 2b 6c 6f 6f  70 20 3b 20 20 20 20 20  |200 +loop ;     |
000024e0  3a 20 28 49 4e 49 54 29  20 20 20 20 20 20 20 20  |: (INIT)        |
000024f0  20 20 20 20 20 20 20 20  28 20 6e 20 5f 5f 20 29  |        ( n __ )|
00002500  20 20 20 75 30 20 40 20  35 30 30 30 20 3c 20 6e  |   u0 @ 5000 < n|
00002510  6f 74 20 3f 65 72 72 6f  72 22 20 6e 65 65 64 73  |ot ?error" needs|
00002520  20 20 20 75 73 65 72 20  61 72 65 61 20 62 65 6c  |   user area bel|
00002530  6f 77 20 26 35 30 30 30  22 20 63 72 20 20 20 20  |ow &5000" cr    |
00002540  20 20 20 2e 22 20 49 6e  73 65 72 74 20 64 69 73  |   ." Insert dis|
00002550  63 2c 20 70 72 65 73 73  20 61 20 6b 65 79 22 20  |c, press a key" |
00002560  20 20 20 6b 65 79 20 64  72 6f 70 20 69 6e 69 74  |   key drop init|
00002570  69 61 6c 69 73 65 2d 6d  65 6d 6f 72 79 20 20 20  |ialise-memory   |
00002580  20 20 20 37 36 30 30 20  66 63 62 20 30 45 20 2b  |   7600 fcb 0E +|
00002590  20 21 20 30 20 77 72 69  74 65 2d 66 69 6c 65 20  | ! 0 write-file |
000025a0  20 20 20 31 34 20 64 6f  20 37 38 30 30 20 66 63  |   14 do 7800 fc|
000025b0  62 20 30 45 20 2b 20 21  20 20 20 20 20 20 20 20  |b 0E + !        |
000025c0  20 20 20 69 20 77 72 69  74 65 2d 66 69 6c 65 20  |   i write-file |
000025d0  31 34 20 2b 6c 6f 6f 70  20 3b 20 20 20 20 20 20  |14 +loop ;      |
000025e0  3a 20 49 4e 49 54 34 30  20 30 43 38 20 28 69 6e  |: INIT40 0C8 (in|
000025f0  69 74 29 20 3b 20 20 20  20 20 28 20 5f 5f 20 29  |it) ;     ( __ )|
00002600
001-019.m0
001-019.m1
001-019.m2
001-019.m4
001-019.m5