Home » Personal collection » Acorn DFS disks » dfs_box03_disk07b_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_disk07b_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:
- Personal collection » Acorn DFS disks » dfs_box03_disk07_forth.scp » 001-019
- Personal collection » Acorn DFS disks » dfs_box03_disk07b_forth.scp » 001-019
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