diff --git a/blk/001 b/blk/001 index 8518b2e..c3b0e68 100644 --- a/blk/001 +++ b/blk/001 @@ -11,6 +11,3 @@ MASTER INDEX 620 Sega Master System Recipe 650 AVR assembler 730 8086 assembler 800 8086 boot code 830 PC/AT recipe - - - diff --git a/blk/004 b/blk/004 index ec04f05..b50a1e8 100644 --- a/blk/004 +++ b/blk/004 @@ -1,16 +1,2 @@ 21 How blocks are organized 22 Addressed devices 23 Branching - - - - - - - - - - - - - - diff --git a/blk/005 b/blk/005 index e360d40..7633603 100644 --- a/blk/005 +++ b/blk/005 @@ -9,8 +9,3 @@ are hexadecimals (example "0x12ef"), "0b" prefixes indicate binary (example "0b1010"), char literals are single characters surrounded by ' (example 'X'). Char literals can't be used for whitespaces. - - - - - diff --git a/blk/006 b/blk/006 index 941d954..b56c956 100644 --- a/blk/006 +++ b/blk/006 @@ -12,5 +12,3 @@ writes that number as a literal, followed by a reference to Example: ": foo [COMPILE] bar;" is the equivalent of ": foo bar ;" if bar is not an immediate. However, ": foo COMPILE bar ;" is the equivalent of ": foo ['] bar , ;". Got it? - - diff --git a/blk/009 b/blk/009 index c75ca59..a4b2d82 100644 --- a/blk/009 +++ b/blk/009 @@ -4,13 +4,3 @@ prompt control to a RS-232 device instead of the keyboard. Interpreter output is unbuffered and only has EMIT. This word can also be overriden, mostly as a companion to the raison d'etre of your KEY override. - - - - - - - - - - diff --git a/blk/011 b/blk/011 index 93ae784..71d8a77 100644 --- a/blk/011 +++ b/blk/011 @@ -7,10 +7,3 @@ support the "-" prefix, but under the hood, it's all unsigned. This leads to some oddities. For example, "-1 0 <" is false. To compare whether something is negative, use the "0<" word which is the equivalent to "0x7fff >". - - - - - - - diff --git a/blk/017 b/blk/017 index 1930547..db24a29 100644 --- a/blk/017 +++ b/blk/017 @@ -13,4 +13,3 @@ At compile time, colon definition stops processing words when reaching the DOES>. Example: ": CONSTANT CREATE HERE @ ! DOES> @ ;" - diff --git a/blk/020 b/blk/020 index 6b8190f..07197dc 100644 --- a/blk/020 +++ b/blk/020 @@ -6,11 +6,3 @@ Although the usage of absolute LOAD calls are minimally used (relative LOADs are preferred), they are sometimes unavoidable. When you span Collapse OS over multiple disks, don't forget to adjust those absolute LOADs. - - - - - - - - diff --git a/blk/021 b/blk/021 index f35b54f..460d38f 100644 --- a/blk/021 +++ b/blk/021 @@ -11,6 +11,3 @@ try to strive towards a few goals: 4. B200-B500 are for bootstrapping 5. The rest is for recipes. 6. I'm not sure yet how I'll organize multiple arches. - - - diff --git a/blk/022 b/blk/022 index 6d8f074..11984ed 100644 --- a/blk/022 +++ b/blk/022 @@ -4,13 +4,3 @@ A@ and A! are the indirect versions of C@ and C!. Their target word is controlled through A@* and A!* and by default point to C@ and C*. There is also a AMOVE word that is the same as MOVE but using A@ and A!. - - - - - - - - - - diff --git a/blk/023 b/blk/023 index e4e3691..de7059b 100644 --- a/blk/023 +++ b/blk/023 @@ -9,8 +9,3 @@ The reasoning behind this intentional limit is that huge branches are generally a indicator that a logic ought to be simplified. So here's one more constraint for you to help you towards simplicity. - - - - - diff --git a/blk/030 b/blk/030 index debe75a..5abdfce 100644 --- a/blk/030 +++ b/blk/030 @@ -10,7 +10,3 @@ and Extra words (B150). 52 Addressed devices 54 Arithmetic / Bits 56 Logic 58 Strings 60 I/O 64 Disk - - - - diff --git a/blk/032 b/blk/032 index 544b71e..e526d37 100644 --- a/blk/032 +++ b/blk/032 @@ -7,10 +7,3 @@ Words between "()" are "support words" that aren't really meant to be used directly, but as part of another word. "*I*" in description indicates an IMMEDIATE word. - - - - - - - diff --git a/blk/035 b/blk/035 index 78b25f2..66c0e67 100644 --- a/blk/035 +++ b/blk/035 @@ -1,16 +1,3 @@ (cont.) ~ - Container for native code. Usually not an executable word. ? - Is it ...? (example: IMMED?) - - - - - - - - - - - - - diff --git a/blk/038 b/blk/038 index 5f641b5..3f4a99f 100644 --- a/blk/038 +++ b/blk/038 @@ -3,14 +3,3 @@ FORGET x -- Rewind the dictionary (both CURRENT and HERE) up to x's previous entry. PREV a -- a Return a wordref's previous entry. WORD( a -- a Get wordref's beginning addr. - - - - - - - - - - - diff --git a/blk/044 b/blk/044 index 2fa10e4..ae2cdc6 100644 --- a/blk/044 +++ b/blk/044 @@ -3,14 +3,3 @@ INTERPRET -- Get a line from stdin, compile it in tmp memory, then execute the compiled contents. LEAVE -- In a DO..LOOP, exit at the next LOOP call. QUIT -- Return to interpreter prompt immediately - - - - - - - - - - - diff --git a/blk/047 b/blk/047 index a280cff..e1c373d 100644 --- a/blk/047 +++ b/blk/047 @@ -4,13 +4,3 @@ PICK Pick nth item from stack. "0 PICK" = DUP, "1 PICK" = OVER. ROLL Rotate PSP over n items. "1 ROLL" = SWAP, "2 ROLL" = ROT. 0 is noop. - - - - - - - - - - diff --git a/blk/048 b/blk/048 index b1f1ad2..91f5d1d 100644 --- a/blk/048 +++ b/blk/048 @@ -7,10 +7,3 @@ R> R:n -- n Pops RS and push to PS I -- n Copy RS TOS to PS I' -- n Copy RS second item to PS J -- n Copy RS third item to PS - - - - - - - diff --git a/blk/051 b/blk/051 index 1fd4e81..28fbc0e 100644 --- a/blk/051 +++ b/blk/051 @@ -8,9 +8,3 @@ MOVE a1 a2 u -- Copy u bytes from a1 to a2, starting MOVE- a1 a2 u -- Copy u bytes from a1 to a2, starting with a1+u, going down. MOVE, a u -- Copy u bytes from a to HERE. - - - - - - diff --git a/blk/052 b/blk/052 index 2bb0c2d..d92bf82 100644 --- a/blk/052 +++ b/blk/052 @@ -8,9 +8,3 @@ A! c a -- Indirect C! A@* -- a Address for A@ word A!* -- a Address for A! word AMOVE src dst u -- Same as MOVE, but with A@ and A! - - - - - - diff --git a/blk/056 b/blk/056 index 75b66b7..a26ff2d 100644 --- a/blk/056 +++ b/blk/056 @@ -10,7 +10,3 @@ CMP n1 n2 -- n Compare n1 and n2 and set n to -1, 0, or 1. MIN a b -- n Returns the lowest of a and b MAX a b -- n Returns the highest of a and b NOT f -- f Push the logical opposite of f - - - - diff --git a/blk/058 b/blk/058 index 61d9a0e..62be9b8 100644 --- a/blk/058 +++ b/blk/058 @@ -5,12 +5,3 @@ LIT -- Write a LIT entry. You're expected to write LIT< x -- Read following word and write to HERE as a string literal. S= a1 a2 -- f Returns whether string a1 == a2. - - - - - - - - - diff --git a/blk/062 b/blk/062 index 55bb2cd..98ca8d5 100644 --- a/blk/062 +++ b/blk/062 @@ -7,10 +7,3 @@ BS CR LF SPC CRLF NL is an indirect word (see B80) that aliases to CRLF by default and that should generally be used when we want to emit a newline. - - - - - - - diff --git a/blk/070 b/blk/070 index 6904e1b..e4ed657 100644 --- a/blk/070 +++ b/blk/070 @@ -4,13 +4,3 @@ Implementation notes 75 Stack management 77 Dictionary 80 System variables 85 Word types 89 Initialization sequence - - - - - - - - - - diff --git a/blk/071 b/blk/071 index 1ef3729..6bd9150 100644 --- a/blk/071 +++ b/blk/071 @@ -9,8 +9,3 @@ it. As a general rule, we go like this: 4. Is it a number? 5. If yes, push that number to PS, goto 1 6. Error: undefined word. - - - - - diff --git a/blk/076 b/blk/076 index c8778b0..a662b31 100644 --- a/blk/076 +++ b/blk/076 @@ -4,13 +4,3 @@ prohibitive in terms of costs), PS_ADDR should be set to at least 6 bytes before its actual limit. 6 bytes because we seldom have words requiring more than 3 items from the stack. Then, at each "exit" call we check for stack underflow. - - - - - - - - - - diff --git a/blk/078 b/blk/078 index 4b4a58a..5b0f02c 100644 --- a/blk/078 +++ b/blk/078 @@ -10,7 +10,3 @@ chain). There are also "special words", for example NUMBER, LIT, FBR, that have a slightly different structure. They're also a pointer to an executable, but as for the other fields, the only one they have is the "flags" field. - - - - diff --git a/blk/084 b/blk/084 index a285d08..e0f512f 100644 --- a/blk/084 +++ b/blk/084 @@ -12,5 +12,3 @@ BLK* see B416. FUTURE USES section is unused for now. DRIVERS section is reserved for recipe-specific drivers. - - diff --git a/blk/086 b/blk/086 index d20b032..4669c2d 100644 --- a/blk/086 +++ b/blk/086 @@ -4,13 +4,3 @@ compiled. At that address is an atom list exactly like in a compiled word. Upon execution, after having pushed its cell addr to PSP, it executes its reference exactly like a compiled word. - - - - - - - - - - diff --git a/blk/090 b/blk/090 index 95c8d13..156d5a5 100644 --- a/blk/090 +++ b/blk/090 @@ -8,9 +8,3 @@ In RAM-only environment, we will typically have a "CURRENT @ HERE !" line during init to have HERE begin at the end of the binary instead of RAMEND. - - - - - - diff --git a/blk/102 b/blk/102 index e48b026..e2622bc 100644 --- a/blk/102 +++ b/blk/102 @@ -1,16 +1,2 @@ X ( n -- ): Delete X chars after cursor and place in IBUF. E: Run X with n = length of FBUF. - - - - - - - - - - - - - - diff --git a/blk/105 b/blk/105 index 1423ff9..66a36ac 100644 --- a/blk/105 +++ b/blk/105 @@ -12,5 +12,3 @@ ENDCASE AGAIN ; - - diff --git a/blk/106 b/blk/106 index 5478463..a644e50 100644 --- a/blk/106 +++ b/blk/106 @@ -8,9 +8,3 @@ CREATE ACC 0 , : L BLK> @ _LIST ; : B BLK> @ 1- BLK@ L ; : N BLK> @ 1+ BLK@ L ; - - - - - - diff --git a/blk/107 b/blk/107 index 8d4917f..a64046c 100644 --- a/blk/107 +++ b/blk/107 @@ -11,6 +11,3 @@ CREATE FBUF 64 ALLOT0 EMIT LOOP ( lno ) 1+ . ; : _zbuf 64 0 FILL ; ( buf -- ) - - - diff --git a/blk/108 b/blk/108 index 97c6917..176a01b 100644 --- a/blk/108 +++ b/blk/108 @@ -10,7 +10,3 @@ : _mvln- ( ln -- move ln 1 line up ) DUP 14 > IF DROP 15 _lpos _zbuf ELSE 1+ _lpos DUP 64 - 64 MOVE THEN ; - - - - diff --git a/blk/109 b/blk/109 index 53c2a60..9b2d09e 100644 --- a/blk/109 +++ b/blk/109 @@ -3,14 +3,3 @@ 14 I - _mvln+ LOOP ; : U _U P ; - - - - - - - - - - - diff --git a/blk/110 b/blk/110 index 2fb7e42..cb7aade 100644 --- a/blk/110 +++ b/blk/110 @@ -8,9 +8,3 @@ UNTIL ( a1 a2 ) DUP BLK) < IF BLK( - FBUF + -^ EDPOS ! ELSE DROP THEN ; : F FBUF _type _F EDPOS @ 64 / _pln ; - - - - - - diff --git a/blk/111 b/blk/111 index 02c6b15..f296f5b 100644 --- a/blk/111 +++ b/blk/111 @@ -11,6 +11,3 @@ ELSE DROP 1+ ( ilen becomes rbuffsize+1 ) THEN DUP IBUF EDPOS @ _cpos ROT MOVE ( ilen ) EDPOS +! BLK!! ; : I IBUF _type _I EDPOS @ 64 / _pln ; - - - diff --git a/blk/123 b/blk/123 index 968cc8a..56a39af 100644 --- a/blk/123 +++ b/blk/123 @@ -13,4 +13,3 @@ 'D' deletes "modifier" lines at the cursor. The first of those lines is copied to IBUF. (cont.) - diff --git a/blk/124 b/blk/124 index 5b67e23..a4897dd 100644 --- a/blk/124 +++ b/blk/124 @@ -8,9 +8,3 @@ be sure, then press 'E'. 'R' goes into replace mode at current cursor position. Following keystrokes replace current character and advance cursor. Press return to return to normal mode. - - - - - - diff --git a/blk/125 b/blk/125 index aa7f3f4..fdddc02 100644 --- a/blk/125 +++ b/blk/125 @@ -1,16 +1,3 @@ '? UPPER NOT [IF] 33 LOAD+ [THEN] DROP ( B158 ) -20 LOAD+ ( B105, block editor ) 1 6 LOADR+ - - - - - - - - - - - - - diff --git a/blk/126 b/blk/126 index cf91961..0fafa00 100644 --- a/blk/126 +++ b/blk/126 @@ -12,5 +12,3 @@ CREATE PREVPOS 0 , CREATE PREVBLK 0 , : contents 3 aty BLK> @ LIST 3 16 gutter ; : selblk BLK> @ PREVBLK ! BLK@ contents ; : mode! ( c -- ) 63 0 AT-XY ; - - diff --git a/blk/127 b/blk/127 index c593a01..5ef876e 100644 --- a/blk/127 +++ b/blk/127 @@ -8,9 +8,3 @@ DUP 0x20 < IF 2DROP DROP EXIT THEN ( buf ln c ) 63 nspcs SWAP 4 SWAP AT-XY ( buf c ) SWAP C!+ IN( _zbuf (rdln) IN( SWAP 63 MOVE ; - - - - - - diff --git a/blk/128 b/blk/128 index e11d7de..b00d0ab 100644 --- a/blk/128 +++ b/blk/128 @@ -10,7 +10,3 @@ : $h -1 cmv ; : $l 1 cmv ; : $k -64 cmv ; : $j 64 cmv ; : $H EDPOS @ 0x3c0 AND pos! ; : $L EDPOS @ 0x3f OR pos! ; - - - - diff --git a/blk/129 b/blk/129 index 3f479d3..8536a4b 100644 --- a/blk/129 +++ b/blk/129 @@ -10,7 +10,3 @@ : $B EDPOS @ BLK( + acc@ 0 DO BEGIN C@- WS? UNTIL BEGIN C@- WS? NOT UNTIL LOOP 1+ BLK( - pos! ; - - - - diff --git a/blk/131 b/blk/131 index 570ae2f..51c8e0f 100644 --- a/blk/131 +++ b/blk/131 @@ -11,6 +11,3 @@ clrscr 0 ACC ! 0 PREVPOS ! contents BEGIN status bufs setpos KEY handle UNTIL 19 aty (infl) ; - - - diff --git a/blk/150 b/blk/150 index 853c748..91dc1a7 100644 --- a/blk/150 +++ b/blk/150 @@ -13,4 +13,3 @@ Some programs need them, so they will automatically LOAD them. Because more than one program can use the same extra words, conditional loaders are recommended. If you want to load all words do "152 LOAD" which conditionally loads all extra words. - diff --git a/blk/152 b/blk/152 index de302a2..6835f85 100644 --- a/blk/152 +++ b/blk/152 @@ -1,16 +1,3 @@ '? CASE NOT [IF] 1 2 LOADR+ [THEN] DROP ( from '? ) '? FILL NOT [IF] 3 LOAD+ [THEN] DROP '? WIPE NOT [IF] 5 LOAD+ [THEN] DROP - - - - - - - - - - - - - diff --git a/blk/153 b/blk/153 index 7056bcb..f8d8952 100644 --- a/blk/153 +++ b/blk/153 @@ -7,10 +7,3 @@ [COMPILE] IF COMPILE DROP ; IMMEDIATE : ENDOF [COMPILE] ELSE ; IMMEDIATE - - - - - - - diff --git a/blk/154 b/blk/154 index d35f20e..5e994a0 100644 --- a/blk/154 +++ b/blk/154 @@ -7,10 +7,3 @@ [COMPILE] THEN AGAIN ; IMMEDIATE - - - - - - - diff --git a/blk/155 b/blk/155 index a10dd94..ee3369e 100644 --- a/blk/155 +++ b/blk/155 @@ -3,14 +3,3 @@ DUP I C! LOOP DROP ; : ALLOT0 ( n -- ) H@ OVER 0 FILL ALLOT ; - - - - - - - - - - - diff --git a/blk/158 b/blk/158 index c342866..921d50a 100644 --- a/blk/158 +++ b/blk/158 @@ -1,16 +1,2 @@ : LOWER DUP 'A' 'Z' =><= IF 32 + THEN ; : UPPER DUP 'a' 'z' =><= IF 32 - THEN ; - - - - - - - - - - - - - - diff --git a/blk/200 b/blk/200 index 0fc274a..9eda24a 100644 --- a/blk/200 +++ b/blk/200 @@ -11,6 +11,3 @@ Z80 Assembler 238 OP3ddnn 240 OP3nn 242 Specials 246 Flow 249 Macros - - - diff --git a/blk/206 b/blk/206 index 137f3fc..8480c6b 100644 --- a/blk/206 +++ b/blk/206 @@ -1,16 +1,3 @@ On top of that, you have the very nice BREAK, instruction, which must also be preceded by a JRxx, and will jump to the PC following the next AGAIN, - - - - - - - - - - - - - diff --git a/blk/209 b/blk/209 index 005c8f4..a25a953 100644 --- a/blk/209 +++ b/blk/209 @@ -9,8 +9,3 @@ JR [, Z, NZ, C, NC] DI EI EXDEHL EXX HALT NOP RET RETI RETN SCF - - - - - diff --git a/blk/212 b/blk/212 index 1344102..09d3733 100644 --- a/blk/212 +++ b/blk/212 @@ -1,16 +1 @@ 1 37 LOADR+ - - - - - - - - - - - - - - - diff --git a/blk/213 b/blk/213 index 1a367e7..944d475 100644 --- a/blk/213 +++ b/blk/213 @@ -6,11 +6,3 @@ VARIABLE L1 VARIABLE L2 VARIABLE L3 VARIABLE L4 : BC 0 ; : DE 1 ; : HL 2 ; : AF 3 ; : SP AF ; : CNZ 0 ; : CZ 1 ; : CNC 2 ; : CC 3 ; : CPO 4 ; : CPE 5 ; : CP 6 ; : CM 7 ; - - - - - - - - diff --git a/blk/216 b/blk/216 index 908ab79..7e8c1ec 100644 --- a/blk/216 +++ b/blk/216 @@ -9,8 +9,3 @@ 0x17 OP1 RLA, 0x07 OP1 RLCA, 0x1f OP1 RRA, 0x0f OP1 RRCA, 0x37 OP1 SCF, - - - - - diff --git a/blk/217 b/blk/217 index 1c1275e..948cfc2 100644 --- a/blk/217 +++ b/blk/217 @@ -7,10 +7,3 @@ 0x18 OP1 JR, 0x10 OP1 DJNZ, 0x38 OP1 JRC, 0x30 OP1 JRNC, 0x28 OP1 JRZ, 0x20 OP1 JRNZ, - - - - - - - diff --git a/blk/218 b/blk/218 index 9a81989..1acc685 100644 --- a/blk/218 +++ b/blk/218 @@ -10,7 +10,3 @@ 0x04 OP1r INCr, 0x05 OP1r DECr, : INC(IXY+), INCr, A, ; : DEC(IXY+), DECr, A, ; - - - - diff --git a/blk/219 b/blk/219 index d2b8932..6121510 100644 --- a/blk/219 +++ b/blk/219 @@ -12,5 +12,3 @@ 0xb0 OP1r0 ORr, 0x90 OP1r0 SUBr, 0x98 OP1r0 SBCr, 0xa8 OP1r0 XORr, : CP(IXY+), CPr, A, ; - - diff --git a/blk/220 b/blk/220 index 6b660b0..c03d646 100644 --- a/blk/220 +++ b/blk/220 @@ -13,4 +13,3 @@ : ADDIXss, 0xdd A, ADDHLss, ; : ADDIXIX, HL ADDIXss, ; : ADDIYss, 0xfd A, ADDHLss, ; : ADDIYIY, HL ADDIYss, ; - diff --git a/blk/222 b/blk/222 index d86f17b..216b23b 100644 --- a/blk/222 +++ b/blk/222 @@ -12,5 +12,3 @@ _1rr ; 0x40 OP1rr LDrr, - - diff --git a/blk/223 b/blk/223 index 833f797..946aa69 100644 --- a/blk/223 +++ b/blk/223 @@ -11,6 +11,3 @@ SWAP ( ixy+- rd HL ) LDIXYr, ; - - - diff --git a/blk/224 b/blk/224 index da01387..b67e602 100644 --- a/blk/224 +++ b/blk/224 @@ -7,10 +7,3 @@ 0xeda8 OP2 LDD, 0xedb8 OP2 LDDR, 0xed44 OP2 NEG, 0xed4d OP2 RETI, 0xed45 OP2 RETN, - - - - - - - diff --git a/blk/226 b/blk/226 index e2d98ff..949c4c1 100644 --- a/blk/226 +++ b/blk/226 @@ -12,5 +12,3 @@ 0xd6 OP2n SUBn, 0xee OP2n XORn, 0xfe OP2n CPn, - - diff --git a/blk/228 b/blk/228 index 5c43d9a..fcf07be 100644 --- a/blk/228 +++ b/blk/228 @@ -8,9 +8,3 @@ OR A, A, ; 0x06 OP2rn LDrn, - - - - - - diff --git a/blk/230 b/blk/230 index 4b2c4e8..5635e19 100644 --- a/blk/230 +++ b/blk/230 @@ -11,6 +11,3 @@ 0xc0 OP2br SETbr, 0x80 OP2br RESbr, 0x40 OP2br BITbr, - - - diff --git a/blk/232 b/blk/232 index 59d09f7..9744607 100644 --- a/blk/232 +++ b/blk/232 @@ -13,4 +13,3 @@ 0x08 OProt RRCr, 0x20 OProt SLAr, 0x38 OProt SRLr, - diff --git a/blk/234 b/blk/234 index b2748de..b48f5cf 100644 --- a/blk/234 +++ b/blk/234 @@ -11,6 +11,3 @@ ; 0xed41 OP2r OUT(C)r, 0xed40 OP2r INr(C), - - - diff --git a/blk/236 b/blk/236 index 1be52d7..b1bce51 100644 --- a/blk/236 +++ b/blk/236 @@ -9,8 +9,3 @@ ; 0x4a OP2ss ADCHLss, 0x42 OP2ss SBCHLss, - - - - - diff --git a/blk/238 b/blk/238 index 2ef96d5..75625a7 100644 --- a/blk/238 +++ b/blk/238 @@ -9,8 +9,3 @@ A,, ; 0x01 OP3ddnn LDddnn, - - - - - diff --git a/blk/240 b/blk/240 index f198e7a..80c55fb 100644 --- a/blk/240 +++ b/blk/240 @@ -9,8 +9,3 @@ 0xc3 OP3nn JPnn, 0x22 OP3nn LD(nn)HL, 0x2a OP3nn LDHL(nn), - - - - - diff --git a/blk/242 b/blk/242 index 70a9d2f..3248715 100644 --- a/blk/242 +++ b/blk/242 @@ -12,5 +12,3 @@ : JP(IX), IX DROP JP(HL), ; : JP(IY), IY DROP JP(HL), ; - - diff --git a/blk/243 b/blk/243 index 9ecf09a..0504276 100644 --- a/blk/243 +++ b/blk/243 @@ -10,5 +10,3 @@ CREATE lblnext 0x1a , ( stable ABI until set in B300 ) : CODE ( same as CREATE, but with native word ) (entry) 0 C, ( 0 == native ) ; : ;CODE JPNEXT, ; - - diff --git a/blk/247 b/blk/247 index a17cb86..e0d77cc 100644 --- a/blk/247 +++ b/blk/247 @@ -6,11 +6,3 @@ THEN ; : AGAIN, BREAK?, PC - 1- A, ; : BWR @ AGAIN, ; - - - - - - - - diff --git a/blk/249 b/blk/249 index f9be094..5adff56 100644 --- a/blk/249 +++ b/blk/249 @@ -10,7 +10,3 @@ : LDDE(HL), E (HL) LDrr, HL INCss, D (HL) LDrr, ; : OUTHL, DUP A H LDrr, OUTnA, A L LDrr, OUTnA, ; : OUTDE, DUP A D LDrr, OUTnA, A E LDrr, OUTnA, ; - - - - diff --git a/blk/261 b/blk/261 index 23cc33e..e84e1be 100644 --- a/blk/261 +++ b/blk/261 @@ -7,10 +7,3 @@ See example in /emul/xcomp.fs Why limit ourselves to icore? Oh, I've tried cross-compiling the whole shebang. I tried. And failed. Too dynamic. - - - - - - - diff --git a/blk/262 b/blk/262 index a4b3cb2..570d9e6 100644 --- a/blk/262 +++ b/blk/262 @@ -1,16 +1 @@ 1 LOAD+ 3 LOAD+ 6 LOAD+ - - - - - - - - - - - - - - - diff --git a/blk/263 b/blk/263 index b3a73be..49ed85f 100644 --- a/blk/263 +++ b/blk/263 @@ -13,4 +13,3 @@ VARIABLE XCURRENT XCON ' _xapply LITN LIT< , FIND DROP _xapply , XCOFF ; : X[COMPILE] XCON ' _xapply , XCOFF ; - diff --git a/blk/264 b/blk/264 index 66d7ced..5086412 100644 --- a/blk/264 +++ b/blk/264 @@ -12,5 +12,3 @@ never supposed to encounter an immediate at this point. If not found, we try the same word on system dict (RAM+02). If found and is immediate, execute. If found and not immediate, error. If not found, try number. - - diff --git a/blk/265 b/blk/265 index cac8ccb..f8fcd2c 100644 --- a/blk/265 +++ b/blk/265 @@ -12,5 +12,3 @@ THEN AGAIN ; - - diff --git a/blk/270 b/blk/270 index e82a041..4183506 100644 --- a/blk/270 +++ b/blk/270 @@ -8,9 +8,3 @@ : : [ ' X: , ] ; CURRENT @ XCURRENT ! - - - - - - diff --git a/blk/281 b/blk/281 index 5143fe7..93a47bb 100644 --- a/blk/281 +++ b/blk/281 @@ -10,7 +10,3 @@ up until 0x67, the (?br) wordref, pretty much everything has to stay put. To assemble, run "282 LOAD". - - - - diff --git a/blk/282 b/blk/282 index 47c129e..bc7528b 100644 --- a/blk/282 +++ b/blk/282 @@ -1,13 +1,3 @@ VARIABLE lblofl VARIABLE lblpushRS VARIABLE lblexec VARIABLE lblfind 1 53 LOADR+ - - - - - - - - - - diff --git a/blk/285 b/blk/285 index 5ba13bb..0600ebc 100644 --- a/blk/285 +++ b/blk/285 @@ -13,4 +13,3 @@ CODE (loop) ( 0x80 ) A 1 IX+ LDrIXY, 1 IX- CP(IXY+), JRNZ, L2 BWR ( branch ) ( don't branch ) IX DECss, IX DECss, IX DECss, IX DECss, JR, L1 BWR - diff --git a/blk/288 b/blk/288 index 8c68e67..bcdb7e5 100644 --- a/blk/288 +++ b/blk/288 @@ -10,7 +10,3 @@ CODE 2R> 20 BCALL, ( 20 == popRS ) EXDEHL, 20 BCALL, HL PUSHqq, DE PUSHqq, ;CODE - - - - diff --git a/blk/291 b/blk/291 index f80912b..7750311 100644 --- a/blk/291 +++ b/blk/291 @@ -13,4 +13,3 @@ lblfind BSET C A LDrr, B 0 LDrn, ( C holds our length ) BC ADDHLss, HL INCss, ( HL points to after-last-char ) ( cont . ) - diff --git a/blk/292 b/blk/292 index 063f193..a86812e 100644 --- a/blk/292 +++ b/blk/292 @@ -6,11 +6,3 @@ LDA(DE), 0x7f ANDn, ( remove IMMEDIATE flag ) C CPr, ( cont. ) - - - - - - - - diff --git a/blk/293 b/blk/293 index 5cee229..fa542eb 100644 --- a/blk/293 +++ b/blk/293 @@ -13,4 +13,3 @@ DJNZ, AGAIN, THEN, ( cont. ) - diff --git a/blk/296 b/blk/296 index bffbb96..da781c2 100644 --- a/blk/296 +++ b/blk/296 @@ -4,13 +4,3 @@ L2 FSET ( end ) HL POPqq, RET, - - - - - - - - - - diff --git a/blk/297 b/blk/297 index 2cb35db..8eb5f2f 100644 --- a/blk/297 +++ b/blk/297 @@ -11,6 +11,3 @@ PC ORG @ 0x15 + ! ( popRS ) IX DECss, IX DECss, RET, - - - diff --git a/blk/298 b/blk/298 index 9fd728a..9e43f17 100644 --- a/blk/298 +++ b/blk/298 @@ -1,13 +1,3 @@ lblofl BSET ( abortUnderflow ) DE BIN( @ 0x06 ( uflw ) + LDdd(nn), JR, L2 FWR ( execute, B301 ) - - - - - - - - - - diff --git a/blk/302 b/blk/302 index cb37c5b..efe135f 100644 --- a/blk/302 +++ b/blk/302 @@ -11,4 +11,3 @@ HL INCss, D (HL) LDrr, ( continue to compiledWord ) - diff --git a/blk/303 b/blk/303 index 205d3d0..e12e560 100644 --- a/blk/303 +++ b/blk/303 @@ -10,6 +10,3 @@ HL INCss, HL PUSHqq, IY POPqq, ( --> IP ) JR, lblexec BWR ( execute-B301 ) - - - diff --git a/blk/305 b/blk/305 index 506c636..21cb850 100644 --- a/blk/305 +++ b/blk/305 @@ -10,7 +10,3 @@ lblchkPS BSET ( chkPS ) EXX, CNC RETcc, ( PS_ADDR >= SP? good ) JR, lblofl BWR ( abortUnderflow-B298 ) - - - - diff --git a/blk/306 b/blk/306 index a8ea472..60fa51d 100644 --- a/blk/306 +++ b/blk/306 @@ -13,4 +13,3 @@ CODE ROT chkPS, DE PUSHqq, ( B ) HL PUSHqq, ( C ) BC PUSHqq, ( A ) ;CODE - diff --git a/blk/308 b/blk/308 index 1a03e39..415d37a 100644 --- a/blk/308 +++ b/blk/308 @@ -6,11 +6,3 @@ CODE SWAP HL PUSHqq, ( B ) DE PUSHqq, ( A ) ;CODE - - - - - - - - diff --git a/blk/309 b/blk/309 index 26de74e..a88c8ff 100644 --- a/blk/309 +++ b/blk/309 @@ -7,10 +7,3 @@ CODE OVER HL PUSHqq, ( B ) DE PUSHqq, ( A ) ;CODE - - - - - - - diff --git a/blk/310 b/blk/310 index 0860d0d..3c14c3d 100644 --- a/blk/310 +++ b/blk/310 @@ -13,4 +13,3 @@ CODE PICK CC lblofl @ JPccnn, ( abortUnderflow-B298 ) BC PUSHqq, ;CODE - diff --git a/blk/311 b/blk/311 index f9882bf..73125da 100644 --- a/blk/311 +++ b/blk/311 @@ -13,4 +13,3 @@ CODE (roll) HL DECss, LDDR, ;CODE - diff --git a/blk/312 b/blk/312 index a694b23..4a70919 100644 --- a/blk/312 +++ b/blk/312 @@ -11,6 +11,3 @@ CODE 2DUP DE PUSHqq, HL PUSHqq, DE PUSHqq, HL PUSHqq, ;CODE - - - diff --git a/blk/313 b/blk/313 index e9b6c22..4c4f088 100644 --- a/blk/313 +++ b/blk/313 @@ -8,9 +8,3 @@ CODE 'S SP ADDHLss, HL PUSHqq, ;CODE - - - - - - diff --git a/blk/314 b/blk/314 index fe608bd..c600467 100644 --- a/blk/314 +++ b/blk/314 @@ -10,7 +10,3 @@ CODE AND H A LDrr, HL PUSHqq, ;CODE - - - - diff --git a/blk/315 b/blk/315 index 1962365..e78e6ce 100644 --- a/blk/315 +++ b/blk/315 @@ -10,7 +10,3 @@ CODE OR H A LDrr, HL PUSHqq, ;CODE - - - - diff --git a/blk/316 b/blk/316 index 98f9b4e..c5695ea 100644 --- a/blk/316 +++ b/blk/316 @@ -10,7 +10,3 @@ CODE XOR H A LDrr, HL PUSHqq, ;CODE - - - - diff --git a/blk/317 b/blk/317 index f186436..692d962 100644 --- a/blk/317 +++ b/blk/317 @@ -4,13 +4,3 @@ CODE NOT HLZ, PUSHZ, ;CODE - - - - - - - - - - diff --git a/blk/318 b/blk/318 index 6de995c..a84b8b6 100644 --- a/blk/318 +++ b/blk/318 @@ -13,4 +13,3 @@ CODE - DE SUBHLss, HL PUSHqq, ;CODE - diff --git a/blk/321 b/blk/321 index 1b49b4f..521b9ab 100644 --- a/blk/321 +++ b/blk/321 @@ -13,4 +13,3 @@ HL PUSHqq, BC PUSHqq, ;CODE - diff --git a/blk/322 b/blk/322 index f8cc7da..e5c4f5e 100644 --- a/blk/322 +++ b/blk/322 @@ -13,4 +13,3 @@ CODE @ D (HL) LDrr, DE PUSHqq, ;CODE - diff --git a/blk/323 b/blk/323 index c447edc..58fb98a 100644 --- a/blk/323 +++ b/blk/323 @@ -11,6 +11,3 @@ CODE C@ H 0 LDrn, HL PUSHqq, ;CODE - - - diff --git a/blk/324 b/blk/324 index 7bd2afd..ceacf6c 100644 --- a/blk/324 +++ b/blk/324 @@ -11,6 +11,3 @@ CODE PC@ L INr(C), HL PUSHqq, ;CODE - - - diff --git a/blk/325 b/blk/325 index 1fae0c3..1fc0b62 100644 --- a/blk/325 +++ b/blk/325 @@ -13,4 +13,3 @@ CODE J H 3 IX- LDrIXY, HL PUSHqq, ;CODE - diff --git a/blk/327 b/blk/327 index b316c6d..1a58a81 100644 --- a/blk/327 +++ b/blk/327 @@ -9,8 +9,3 @@ CODE (resSP) CODE (resRS) IX RS_ADDR LDddnn, ;CODE - - - - - diff --git a/blk/328 b/blk/328 index 9ca68c2..5b2d2a5 100644 --- a/blk/328 +++ b/blk/328 @@ -13,4 +13,3 @@ CODE S= THEN, PUSHZ, ;CODE - diff --git a/blk/329 b/blk/329 index 82c89a4..b0a472d 100644 --- a/blk/329 +++ b/blk/329 @@ -13,4 +13,3 @@ CODE CMP THEN, BC PUSHqq, ;CODE - diff --git a/blk/331 b/blk/331 index 07dad26..54270fd 100644 --- a/blk/331 +++ b/blk/331 @@ -10,7 +10,3 @@ CODE -1 HL -1 LDddnn, HL PUSHqq, ;CODE - - - - diff --git a/blk/332 b/blk/332 index 9651d15..6af1898 100644 --- a/blk/332 +++ b/blk/332 @@ -11,6 +11,3 @@ CODE 1- HL DECss, HL PUSHqq, ;CODE - - - diff --git a/blk/333 b/blk/333 index 8cdfa42..1849044 100644 --- a/blk/333 +++ b/blk/333 @@ -13,4 +13,3 @@ CODE 2- HL DECss, HL PUSHqq, ;CODE - diff --git a/blk/334 b/blk/334 index 8aff1dd..eb87937 100644 --- a/blk/334 +++ b/blk/334 @@ -10,7 +10,3 @@ CODE RSHIFT ( n u -- n ) THEN, HL PUSHqq, ;CODE - - - - diff --git a/blk/335 b/blk/335 index 2d8cc0d..0d23f6d 100644 --- a/blk/335 +++ b/blk/335 @@ -10,7 +10,3 @@ CODE LSHIFT ( n u -- n ) THEN, HL PUSHqq, ;CODE - - - - diff --git a/blk/352 b/blk/352 index ee84a48..f80571b 100644 --- a/blk/352 +++ b/blk/352 @@ -7,10 +7,3 @@ impossible. The gap between these 2 parts is the ideal place to put device driver code. Load the low part with "353 LOAD", the high part with "380 LOAD" - - - - - - - diff --git a/blk/353 b/blk/353 index 3d497ad..16a9781 100644 --- a/blk/353 +++ b/blk/353 @@ -12,5 +12,3 @@ LIT< (main) FIND DROP EXECUTE ; 1 25 LOADR+ ( xcomp core low ) - - diff --git a/blk/354 b/blk/354 index 152e71f..9471640 100644 --- a/blk/354 +++ b/blk/354 @@ -13,4 +13,3 @@ : C@- ( a -- a-1 c ) DUP C@ SWAP 1- SWAP ; : C!- ( c a -- a-1 ) TUCK C! 1- ; : LEAVE R> R> DROP I 1- >R >R ; : UNLOOP R> 2R> 2DROP >R ; - diff --git a/blk/355 b/blk/355 index 92a3a26..00037e1 100644 --- a/blk/355 +++ b/blk/355 @@ -12,5 +12,3 @@ SWAP 10 * + ( r*10+n ) 0 ( good ) ; - - diff --git a/blk/356 b/blk/356 index b442551..48dd558 100644 --- a/blk/356 +++ b/blk/356 @@ -8,9 +8,3 @@ We loop until _pdacc is nonzero, which means either WS or non-digit. 1 means WS, which means parsing was a success. -1 means non-digit, which means we have a non-decimal. ) - - - - - - diff --git a/blk/357 b/blk/357 index 3837991..65b827f 100644 --- a/blk/357 +++ b/blk/357 @@ -6,11 +6,3 @@ IF DROP 1- 0 UNLOOP EXIT THEN LOOP ( a r ) ( negate if needed ) SWAP C@ '-' = IF 0 -^ THEN 1 ( r 1 ) ; - - - - - - - - diff --git a/blk/358 b/blk/358 index aa31529..166f83b 100644 --- a/blk/358 +++ b/blk/358 @@ -8,9 +8,3 @@ ( surrounded by apos, good, return ) 2+ C@ 1 ( n 1 ) ; - - - - - - diff --git a/blk/359 b/blk/359 index 898c07a..9ac4773 100644 --- a/blk/359 +++ b/blk/359 @@ -4,13 +4,3 @@ DUP 'a' 'f' =><= IF 0x57 ( 'a' - 10 ) - EXIT THEN DROP -1 ( bad ) ; - - - - - - - - - - diff --git a/blk/360 b/blk/360 index 0a85133..4e44983 100644 --- a/blk/360 +++ b/blk/360 @@ -8,9 +8,3 @@ DUP 0< IF 2DROP 0 UNLOOP EXIT THEN SWAP 4 LSHIFT + ( a r*16+n ) LOOP NIP 1 ; - - - - - - diff --git a/blk/361 b/blk/361 index fbd30b5..7d7cc32 100644 --- a/blk/361 +++ b/blk/361 @@ -3,14 +3,3 @@ DUP '0' '1' =><= IF '0' - EXIT THEN DROP -1 ( bad ) ; - - - - - - - - - - - diff --git a/blk/362 b/blk/362 index 442d225..556905b 100644 --- a/blk/362 +++ b/blk/362 @@ -8,9 +8,3 @@ DUP 0< IF 2DROP 0 UNLOOP EXIT THEN SWAP 1 LSHIFT + ( a r*2+n ) LOOP NIP 1 ; - - - - - - diff --git a/blk/363 b/blk/363 index 6e71653..b97157c 100644 --- a/blk/363 +++ b/blk/363 @@ -6,11 +6,3 @@ ( nothing works ) LIT< (wnf) FIND IF EXECUTE ELSE ABORT THEN ; - - - - - - - - diff --git a/blk/364 b/blk/364 index 5d3aa6b..865da53 100644 --- a/blk/364 +++ b/blk/364 @@ -12,5 +12,3 @@ IF OVER C@ OR ELSE 0xff XOR OVER C@ AND THEN ( addr flg ) SWAP C! ; - - diff --git a/blk/365 b/blk/365 index 01e54dd..8977d54 100644 --- a/blk/365 +++ b/blk/365 @@ -6,11 +6,3 @@ 0 ( dummy ) BEGIN DROP C< DUP WS? NOT OVER EOT? OR UNTIL ; - - - - - - - - diff --git a/blk/366 b/blk/366 index 8402834..bd40900 100644 --- a/blk/366 +++ b/blk/366 @@ -11,6 +11,3 @@ UNTIL ( a c ) SWAP _wb - 1- ( ws len ) _wb C! EOT? IF _eot ELSE _wb THEN ; - - - diff --git a/blk/367 b/blk/367 index b2abad6..7e21ebf 100644 --- a/blk/367 +++ b/blk/367 @@ -6,11 +6,3 @@ : / /MOD NIP ; : MOD /MOD DROP ; : ALLOT HERE +! ; - - - - - - - - diff --git a/blk/369 b/blk/369 index 882d1a9..5f1848b 100644 --- a/blk/369 +++ b/blk/369 @@ -7,7 +7,3 @@ NIP ; : 2OVER 3 PICK 3 PICK ; : 2SWAP 3 ROLL 3 ROLL ; - - - - diff --git a/blk/370 b/blk/370 index 245eae5..2f33879 100644 --- a/blk/370 +++ b/blk/370 @@ -12,5 +12,3 @@ LOOP THEN 2DROP ; : MOVE, ( a u -- ) H@ OVER ALLOT SWAP MOVE ; : PREV 3 - DUP @ - ; - - diff --git a/blk/371 b/blk/371 index a9e00f2..d1532ba 100644 --- a/blk/371 +++ b/blk/371 @@ -8,9 +8,3 @@ : (entry) WORD [entry] ; : CREATE (entry) 2 ( cellWord ) C, ; : VARIABLE CREATE 2 ALLOT ; - - - - - - diff --git a/blk/372 b/blk/372 index 687cfc0..8b8ae1d 100644 --- a/blk/372 +++ b/blk/372 @@ -12,5 +12,3 @@ PREV CURRENT ! ; : EMPTY LIT< _sys FIND IF DUP HERE ! CURRENT ! THEN ; - - diff --git a/blk/373 b/blk/373 index 1eb9891..dc2b3bf 100644 --- a/blk/373 +++ b/blk/373 @@ -11,5 +11,3 @@ definition ) ; : CONSTANT CREATE , DOES> @ ; - - diff --git a/blk/374 b/blk/374 index d513ef0..6535bea 100644 --- a/blk/374 +++ b/blk/374 @@ -2,15 +2,3 @@ IF EXIT THEN LIT< [THEN] BEGIN DUP WORD S= UNTIL DROP ; : [THEN] ; - - - - - - - - - - - - diff --git a/blk/376 b/blk/376 index 09bbd52..180249e 100644 --- a/blk/376 +++ b/blk/376 @@ -8,9 +8,3 @@ : BLKDTY 0x3a RAM+ ; : BLK( 0x3c RAM+ @ ; : BLK) BLK( 1024 + ; - - - - - - diff --git a/blk/377 b/blk/377 index bdedaef..89f4193 100644 --- a/blk/377 +++ b/blk/377 @@ -7,10 +7,3 @@ 0 BLKDTY ! -1 BLK> ! ; - - - - - - - diff --git a/blk/378 b/blk/378 index 9ade3d1..49e3cfa 100644 --- a/blk/378 +++ b/blk/378 @@ -8,9 +8,3 @@ FLUSH DUP BLK> ! BLK@* @ EXECUTE ; : BLK!! 1 BLKDTY ! ; - - - - - - diff --git a/blk/380 b/blk/380 index 13c1ad5..171c335 100644 --- a/blk/380 +++ b/blk/380 @@ -1,16 +1 @@ 1 20 LOADR+ ( xcomp core high ) - - - - - - - - - - - - - - - diff --git a/blk/381 b/blk/381 index ae593ec..002cfe4 100644 --- a/blk/381 +++ b/blk/381 @@ -8,9 +8,3 @@ : (uflw) LIT" stack underflow" ERR ; XCURRENT @ _xapply ORG @ 0x06 ( stable ABI uflw ) + ! : (wnf) (print) SPC LIT" word not found" ERR ; - - - - - - diff --git a/blk/382 b/blk/382 index 8ad29bf..83d7076 100644 --- a/blk/382 +++ b/blk/382 @@ -8,9 +8,3 @@ ; IMMEDIATE : ." [COMPILE] LIT" COMPILE (print) ; IMMEDIATE : ABORT" [COMPILE] ." COMPILE ABORT ; IMMEDIATE - - - - - - diff --git a/blk/385 b/blk/385 index 378e0c9..31b564d 100644 --- a/blk/385 +++ b/blk/385 @@ -11,6 +11,3 @@ SWAP 8 /MOD SWAP IF 1+ THEN 0 DO _ LOOP ; - - - diff --git a/blk/390 b/blk/390 index 2a234f2..1990cb2 100644 --- a/blk/390 +++ b/blk/390 @@ -8,9 +8,3 @@ ['] RDLN< 0x0c RAM+ ! 1 0x06 RAM+ ! ( 06 == C DROP ; : COMPILE ' LITN ['] , , ; IMMEDIATE : [COMPILE] ' , ; IMMEDIATE - - - - - - - diff --git a/blk/400 b/blk/400 index 0a5b04c..28dce6e 100644 --- a/blk/400 +++ b/blk/400 @@ -9,8 +9,3 @@ ';' X' _ 4 - C! ( give ; its name ) ':' X' _ 4 - C! ( give : its name ) '(' X' _ 4 - C! - - - - - diff --git a/blk/410 b/blk/410 index 8228e2d..0496601 100644 --- a/blk/410 +++ b/blk/410 @@ -9,8 +9,3 @@ compiled and loaded with drivers. Requires PS2_MEM to be defined. Load range: 411-414 - - - - - diff --git a/blk/411 b/blk/411 index 53427b1..fc73841 100644 --- a/blk/411 +++ b/blk/411 @@ -12,5 +12,3 @@ CREATE PS2_CODES ( 18 ) 0 C, 0 C, 'z' C, 's' C, 'a' C, 'w' C, '2' C, 0 C, ( 20 ) 0 C, 'c' C, 'x' C, 'd' C, 'e' C, '4' C, '3' C, 0 C, ( 28 ) 0 C, 32 C, 'v' C, 'f' C, 't' C, 'r' C, '5' C, 0 C, - - diff --git a/blk/413 b/blk/413 index 84512f0..cc60439 100644 --- a/blk/413 +++ b/blk/413 @@ -9,8 +9,3 @@ ( 68 ) 0 C, 0 C, 0 C, 0 C, 0 C, 0 C, 0 C, 0 C, ( 70 ) 0 C, 0 C, 0 C, 0 C, 0 C, 0 C, 27 C, 0 C, ( 78 ) 0 C, 0 C, 0 C, 0 C, 0 C, 0 C, 0 C, 0 C, - - - - - diff --git a/blk/414 b/blk/414 index 8f5abcb..db6991a 100644 --- a/blk/414 +++ b/blk/414 @@ -12,5 +12,3 @@ ( ah, finally, we have a gentle run-of-the-mill KC ) PS2_CODES PS2_SHIFT C@ IF 0x80 + THEN + C@ ?DUP NOT IF (key) THEN ; - - diff --git a/blk/426 b/blk/426 index 19c9e7c..7ac61a7 100644 --- a/blk/426 +++ b/blk/426 @@ -13,4 +13,3 @@ after LATEST as Forth source, and this, until it reads ASCII EOT character (4). This is generally used for driver init. Good luck! - diff --git a/blk/490 b/blk/490 index 44425ce..64ad5e0 100644 --- a/blk/490 +++ b/blk/490 @@ -8,9 +8,3 @@ Load with "492 LOAD". There is also the RECV program at B502 and the XCOMP unit at B504 - - - - - - diff --git a/blk/492 b/blk/492 index 8a02ad5..dcc3342 100644 --- a/blk/492 +++ b/blk/492 @@ -1,16 +1 @@ 1 8 LOADR+ - - - - - - - - - - - - - - - diff --git a/blk/494 b/blk/494 index 0248199..3acec14 100644 --- a/blk/494 +++ b/blk/494 @@ -10,7 +10,3 @@ CODE @DCSTAT ( drv -- f ) 0x28 RSTn, PUSHZ, ;CODE - - - - diff --git a/blk/495 b/blk/495 index 6fa0459..68a81c0 100644 --- a/blk/495 +++ b/blk/495 @@ -7,10 +7,3 @@ CODE @RDSEC ( drv cylsec addr -- f ) 0x28 RSTn, PUSHZ, ;CODE - - - - - - - diff --git a/blk/497 b/blk/497 index 2c843c6..1b1132d 100644 --- a/blk/497 +++ b/blk/497 @@ -6,11 +6,3 @@ CODE @PUT ( c a -- f ) 0x28 RSTn, PUSHZ, ;CODE - - - - - - - - diff --git a/blk/500 b/blk/500 index fbe338f..d9aa0f1 100644 --- a/blk/500 +++ b/blk/500 @@ -5,12 +5,3 @@ : _err LIT" *CLerr" ERR ; : *CL< 0 BEGIN DROP 0x0238 @GET UNTIL ; : *CL> 0x0238 @PUT NOT IF _err THEN ; - - - - - - - - - diff --git a/blk/503 b/blk/503 index b69898c..62cb724 100644 --- a/blk/503 +++ b/blk/503 @@ -13,4 +13,3 @@ A ORr, JRZ, L1 BWR ( loop2, not an error ) L3 FSET ( error ) C A LDrr, ( error code from @GET/@PUT ) A 0x1a LDrn, ( @ERROR ) 0x28 RSTn, RET, - diff --git a/blk/520 b/blk/520 index 09e0dd0..a317715 100644 --- a/blk/520 +++ b/blk/520 @@ -11,6 +11,3 @@ would mean that we would have 12x2 glyphs per block. 521 Font compiler 530 3x5 font 532 5x7 font 536 7x7 font - - - diff --git a/blk/521 b/blk/521 index abc2d40..f2bc28d 100644 --- a/blk/521 +++ b/blk/521 @@ -4,13 +4,3 @@ Therefore, for a 5-bit wide char, "X.X.X" translates to 0b10101000. Left-aligned bytes are easier to work with when compositing glyphs. ) - - - - - - - - - - diff --git a/blk/522 b/blk/522 index 7049c01..7866101 100644 --- a/blk/522 +++ b/blk/522 @@ -13,4 +13,3 @@ 530 BLK@ BLK( 21 _l 320 + 21 _l 320 + 21 _l DROP ( 63 ) 531 BLK@ BLK( 21 _l 320 + 10 _l DROP ( 94! ) ; - diff --git a/blk/523 b/blk/523 index 4f5bec3..c4338da 100644 --- a/blk/523 +++ b/blk/523 @@ -13,4 +13,3 @@ 534 532 DO I BLK@ BLK( 12 _l 448 + 12 _l DROP LOOP ( 72 ) 535 BLK@ BLK( 12 _l 448 + 10 _l DROP ( 94! ) ; - diff --git a/blk/524 b/blk/524 index 8bcda78..b4bb0f8 100644 --- a/blk/524 +++ b/blk/524 @@ -13,4 +13,3 @@ 541 536 DO I BLK@ BLK( 9 _l 448 + 9 _l DROP LOOP ( 90 ) 542 BLK@ BLK( 4 _l DROP ( 94! ) ; - diff --git a/blk/531 b/blk/531 index 34dd258..db3e3d0 100644 --- a/blk/531 +++ b/blk/531 @@ -9,8 +9,3 @@ X.XX.XX.X.X..X..XXX...X...XXX. X.XX.XXXX.X..X.XX..X..X..X.... XXX.X.X.XX.X.X.XXX.XX.X.XX.... `abcdefghijklmnopqrstuvwxyz{|}~ - - - - - diff --git a/blk/532 b/blk/532 index ffaae6c..589729d 100644 --- a/blk/532 +++ b/blk/532 @@ -13,4 +13,3 @@ XXXXX.......X..X.X.X...X....X...XX.XXXXX....XXXXX....X..XXX. ......XX..X....X...X...X..X...X...X...X.X...XX...X.X...X...X ......XX........XXX..XXXXXXXXX.XXX....X..XXX..XXX.X.....XXX. !"#$%&'()*+,-./012345678 - diff --git a/blk/533 b/blk/533 index 89f90f5..a74f57f 100644 --- a/blk/533 +++ b/blk/533 @@ -13,4 +13,3 @@ X....X....X...XX...X..X......XXX...X....X...XX..XXX...XX.... X....X....X...XX...X..X..X...XX.X..X....X...XX..XXX...XX.... XXXXXX.....XXX.X...X.XXX..XXX.X..X.XXXXXX...XX...X.XXX.X.... 9:;<=>?@ABCDEFGHIJKLMNOP - diff --git a/blk/534 b/blk/534 index b0fe000..a03f060 100644 --- a/blk/534 +++ b/blk/534 @@ -13,4 +13,3 @@ X..XXX..X.X...X..X..X...X.X.X.X.X.XX...X..X..X...XX........X ....X...............X...XX..X.X...X.X..XX....XXX......XX..X. ..XXX.....XXXXX......XXXXXXX...XXX...XXX.XXXXX......XX.X..X. QRSTUVWXYZ[\]^_`abcdefgh - diff --git a/blk/535 b/blk/535 index d1f27ee..48f71ad 100644 --- a/blk/535 +++ b/blk/535 @@ -13,4 +13,3 @@ X...XX...XX...X..X....X....X...X.....X.....X...... X...X.X.X.X.X.X.X.X..X....X....X.....X.....X...... .XXX...X...X.X.X...XX....XXXXX..XX...X...XX....... ijklmnopqrstuvwxyz{|}~ - diff --git a/blk/536 b/blk/536 index d8143e8..cc945be 100644 --- a/blk/536 +++ b/blk/536 @@ -13,4 +13,3 @@ XXXXXX...XX.........................XX....XXX.XX...XX.....XX... ..XX.....XX.....XX............XX...XX.....XX..XX...XX....XX.... ...............XX.............XX...........XXXX..XXXXXX.XXXXXX. !"#$%&'()*+,-./012 - diff --git a/blk/537 b/blk/537 index 49d500a..0dba57f 100644 --- a/blk/537 +++ b/blk/537 @@ -13,4 +13,3 @@ XX...............XX....XX...XX.X.X.XXXXXX.XXXXX..XX.....XX..XX. ..XX...........XX...........XX.....XX..XX.XX..XX.XX..XX.XX.XX.. ...XX.........XX.......XX....XXXX..XX..XX.XXXXX...XXXX..XXXX... 3456789:;<=>?@ABCD - diff --git a/blk/538 b/blk/538 index 2bbcb84..c0c8bfc 100644 --- a/blk/538 +++ b/blk/538 @@ -13,4 +13,3 @@ XX.XXX.XX..XX.XX.....XX.X.X.XX.XX......XX...XX...XX..XX.XX..XX. XX..XX.XX..XX.XX.....XX.XX..XX..XX.XX..XX...XX...XX..XX..XXXX.. XX..XX..XXXX..XX......XX.XX.XX..XX..XXXX....XX....XXXX....XX... EFGHIJKLMNOPQRSTUVWXYZ[\]^_ - diff --git a/blk/539 b/blk/539 index 58004ac..c1f2f2d 100644 --- a/blk/539 +++ b/blk/539 @@ -13,4 +13,3 @@ XX...XXXX..XX...XX...XXXXXX.XXXXX.........XXXXX.........XXXXXXX .......XX..XX.XX..XX.XX..XX.XX..XX.XX......XX........XX.XX..XX. ........XXXXX.XXXXX...XXXX...XXXXX..XXXX...XX.....XXX...XX..XX. WXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ - diff --git a/blk/540 b/blk/540 index d54037f..bd0b9be 100644 --- a/blk/540 +++ b/blk/540 @@ -13,4 +13,3 @@ XX......XXXX...XX....XX..XX.XX..XX.XX.X.XX..XX...XX..XX...XX... XX.........XX..XX....XX..XX..XXXX..XXXXXXX.XXXX...XXXXX..XX.... XX.....XXXXX....XXX...XXXXX...XX....XX.XX.XX..XX.....XX.XXXXXX. ijklmnopqrstuvwxyz{|}~ - diff --git a/blk/541 b/blk/541 index c07298f..17f11d1 100644 --- a/blk/541 +++ b/blk/541 @@ -6,11 +6,3 @@ XXX......XX.....XXX......... ..XX.....XX....XX........... ...XX....XX...XX............ {|}~ - - - - - - - - diff --git a/blk/550 b/blk/550 index 4715c73..5820af0 100644 --- a/blk/550 +++ b/blk/550 @@ -4,13 +4,3 @@ Support code for the TI-84+ recipe. Contains drivers for the keyboard and LCD. 551 LCD 564 Keyboard - - - - - - - - - - diff --git a/blk/554 b/blk/554 index faa77fb..3d65dbc 100644 --- a/blk/554 +++ b/blk/554 @@ -1,16 +1,3 @@ That being said, it's important to define clearly what CURX and CURY variable mean. Those variable keep track of the current position *in pixels*, in both axes. - - - - - - - - - - - - - diff --git a/blk/555 b/blk/555 index 6665885..de38d2d 100644 --- a/blk/555 +++ b/blk/555 @@ -11,6 +11,3 @@ CODE _wait RLA, ( When 7th bit is clr, we can send a new cmd ) JRC, AGAIN, ;CODE - - - diff --git a/blk/556 b/blk/556 index d722a27..8de9f3b 100644 --- a/blk/556 +++ b/blk/556 @@ -11,6 +11,3 @@ : _data@ 0x11 ( DATA ) PC@ _wait ; : LCDOFF 0x02 ( CMD_DISABLE ) _cmd ; : LCDON 0x03 ( CMD_ENABLE ) _cmd ; - - - diff --git a/blk/557 b/blk/557 index 9c347b8..14cc84c 100644 --- a/blk/557 +++ b/blk/557 @@ -7,10 +7,3 @@ LCDON 0x01 ( 8-bit mode ) _cmd FNTH 1+ _zoff! ; - - - - - - - diff --git a/blk/558 b/blk/558 index d7e5240..32a9f08 100644 --- a/blk/558 +++ b/blk/558 @@ -12,5 +12,3 @@ LCD_CURY C@ FNTH 1+ + DUP 63 > IF DROP 0 THEN DUP _clrln DUP FNTH 1+ + _zoff! LCD_CURY C! 0 LCD_CURX C! ; - - diff --git a/blk/559 b/blk/559 index 12c1379..8088608 100644 --- a/blk/559 +++ b/blk/559 @@ -13,4 +13,3 @@ FNTH 0 DO LCD_BUF FNTH + I + C@ _data! LOOP LCD_CURX C@ FNTW + 1+ DUP LCD_CURX C! ( x ) 96 FNTW - > IF _lf THEN ; - diff --git a/blk/560 b/blk/560 index e334476..b1f21b5 100644 --- a/blk/560 +++ b/blk/560 @@ -2,15 +2,3 @@ DUP 0xd = IF DROP _lf EXIT THEN DUP 0x20 0x7e =><= NOT IF DROP EXIT THEN 0x20 - FNTH * ~FNT + _glyph> ; - - - - - - - - - - - - diff --git a/blk/565 b/blk/565 index 7637639..510fd80 100644 --- a/blk/565 +++ b/blk/565 @@ -3,14 +3,3 @@ to send groups we want to "listen" to, with a 0 in the group bit. Thus, to know if *any* key is pressed, we send 0xff to reset the keypad, then 0x00 to select all groups, if the result isn't 0xff, at least one key is pressed. - - - - - - - - - - - diff --git a/blk/566 b/blk/566 index e645808..2ea1d19 100644 --- a/blk/566 +++ b/blk/566 @@ -12,5 +12,3 @@ CODE _get EI, L A LDrr, HL PUSHqq, ;CODE - - diff --git a/blk/568 b/blk/568 index cbce4ab..6847457 100644 --- a/blk/568 +++ b/blk/568 @@ -11,6 +11,3 @@ CREATE _atbl : _2nd! 0 [ KBD_MEM LITN ] BIT! ; : _alock@ 1 [ KBD_MEM LITN ] BIT@ ; : _alock^ _alock@ NOT 1 [ KBD_MEM LITN ] BIT! ; - - - diff --git a/blk/569 b/blk/569 index f2bbc98..dea7c07 100644 --- a/blk/569 +++ b/blk/569 @@ -10,7 +10,3 @@ BEGIN 1+ 2DUP RSHIFT NOT UNTIL 1- ( gid dpos dindex ) NIP ( gid dindex ) SWAP 8 * + ; - - - - diff --git a/blk/570 b/blk/570 index f9172f5..446e894 100644 --- a/blk/570 +++ b/blk/570 @@ -12,5 +12,3 @@ _2nd@ IF DUP 'A' 'Z' =><= IF 0x20 OR THEN THEN ; : KBD$ 0 [ KBD_MEM LITN ] C! ; - - diff --git a/blk/580 b/blk/580 index ffede7f..b1b7b7f 100644 --- a/blk/580 +++ b/blk/580 @@ -5,12 +5,3 @@ ACIA, SD card and AT28 EEPROM. 581 ACIA 590 AT28 EEPROM 600 SD card 618 Xcomp unit - - - - - - - - - diff --git a/blk/582 b/blk/582 index ea58a0b..54933a8 100644 --- a/blk/582 +++ b/blk/582 @@ -5,12 +5,3 @@ +6 ACIA) ) 1 6 LOADR+ - - - - - - - - - diff --git a/blk/585 b/blk/585 index 7dae0f2..5976384 100644 --- a/blk/585 +++ b/blk/585 @@ -12,5 +12,3 @@ AF POPqq, EI, RETI, - - diff --git a/blk/586 b/blk/586 index 8881b66..a236b96 100644 --- a/blk/586 +++ b/blk/586 @@ -8,9 +8,3 @@ : ACIAW> [ ACIA_MEM 2 + LITN ] ; ( This means that if W> == R>, buffer is full. If R>+1 == W>, buffer is empty. ) - - - - - - diff --git a/blk/588 b/blk/588 index fd65c34..41a635a 100644 --- a/blk/588 +++ b/blk/588 @@ -10,7 +10,3 @@ CR1:0 (10) - Counter divide: 64 ) 0b10010110 [ ACIA_CTL LITN ] PC! (im1) ; - - - - diff --git a/blk/590 b/blk/590 index 70af41c..0f8c8d1 100644 --- a/blk/590 +++ b/blk/590 @@ -4,13 +4,3 @@ Write to an AT28 EEPROM while making sure that proper timing is followed and verify data integrity. Load with "591 LOAD" - - - - - - - - - - diff --git a/blk/591 b/blk/591 index 2b667cf..bb49b54 100644 --- a/blk/591 +++ b/blk/591 @@ -13,4 +13,3 @@ ( We're finished writing. do we have a mismatch? ) C@ = NOT IF ABORT" mismatch" THEN ; - diff --git a/blk/600 b/blk/600 index d9c5a5b..59cf355 100644 --- a/blk/600 +++ b/blk/600 @@ -1,16 +1,3 @@ SD Card driver Load range: 602-616 - - - - - - - - - - - - - diff --git a/blk/602 b/blk/602 index 55ac0c5..24d54e0 100644 --- a/blk/602 +++ b/blk/602 @@ -10,7 +10,3 @@ CODE _sdcSR ( n -- n ) L A LDrr, HL PUSHqq, ;CODE - - - - diff --git a/blk/605 b/blk/605 index 0ff0924..e3b2953 100644 --- a/blk/605 +++ b/blk/605 @@ -8,9 +8,3 @@ do this right after a write, so I prefer to stay cautious for now. ) : _ready BEGIN _idle 0xff = UNTIL ; - - - - - - diff --git a/blk/606 b/blk/606 index 3ae7a8c..60247fe 100644 --- a/blk/606 +++ b/blk/606 @@ -13,4 +13,3 @@ THEN LOOP ; - diff --git a/blk/607 b/blk/607 index fa08a20..c9a4146 100644 --- a/blk/607 +++ b/blk/607 @@ -1,16 +1,3 @@ ( send-and-crc7 ) ( n c -- c ) : _s+crc SWAP DUP _sdcSR DROP _crc7 ; - - - - - - - - - - - - - diff --git a/blk/609 b/blk/609 index ac61823..885a3a7 100644 --- a/blk/609 +++ b/blk/609 @@ -13,4 +13,3 @@ _idle 8 LSHIFT _idle + ( r arg1 arg2 ) _sdcDesel ; - diff --git a/blk/612 b/blk/612 index 5838f1c..134dd9d 100644 --- a/blk/612 +++ b/blk/612 @@ -13,4 +13,3 @@ _idle 8 LSHIFT _idle + ( crc2 ) _wait DROP _sdcDesel = NOT IF _err THEN ; - diff --git a/blk/613 b/blk/613 index 350f6d3..15414d3 100644 --- a/blk/613 +++ b/blk/613 @@ -4,13 +4,3 @@ 1+ BLK( 512 + SWAP _sdc@ ; - - - - - - - - - - diff --git a/blk/615 b/blk/615 index a1f71f0..7af62c9 100644 --- a/blk/615 +++ b/blk/615 @@ -4,13 +4,3 @@ 1+ BLK( 512 + SWAP _sdc! ; - - - - - - - - - - diff --git a/blk/618 b/blk/618 index 1bc9825..2a1e41e 100644 --- a/blk/618 +++ b/blk/618 @@ -13,4 +13,3 @@ RAMSTART 0x70 + CONSTANT ACIA_MEM ( Update LATEST ) PC ORG @ 8 + ! ," ACIA$ " EOT, - diff --git a/blk/620 b/blk/620 index f45e03b..a3833c8 100644 --- a/blk/620 +++ b/blk/620 @@ -2,15 +2,3 @@ Sega Master System Recipe 622 VDP 630 PAD 640 KBD - - - - - - - - - - - - diff --git a/blk/623 b/blk/623 index 4d415c1..63cfd76 100644 --- a/blk/623 +++ b/blk/623 @@ -8,9 +8,3 @@ CODE _data HL POPqq, chkPS, A L LDrr, VDP_DATAPORT OUTnA, ;CODE - - - - - - diff --git a/blk/624 b/blk/624 index 5f0a354..e7dc806 100644 --- a/blk/624 +++ b/blk/624 @@ -7,10 +7,3 @@ CODE _blank ( this is way too slow in Forth ) HL DECss, HLZ, JRNZ, AGAIN, ;CODE - - - - - - - diff --git a/blk/625 b/blk/625 index d9c8f99..70e9aee 100644 --- a/blk/625 +++ b/blk/625 @@ -8,9 +8,3 @@ CREATE _idat 0b00000000 C, 0x88 C, ( BG X scroll ) 0b00000000 C, 0x89 C, ( BG Y scroll ) 0b11111111 C, 0x8a C, ( Line counter (why have this?) ) - - - - - - diff --git a/blk/626 b/blk/626 index b43049b..e81e993 100644 --- a/blk/626 +++ b/blk/626 @@ -10,7 +10,3 @@ always stay zero. ) : _sfont ( a -- Send font to VDP ) 7 0 DO C@+ _data 3 _zero LOOP DROP ( blank row ) 4 _zero ; - - - - diff --git a/blk/627 b/blk/627 index 97880da..0ae0e4f 100644 --- a/blk/627 +++ b/blk/627 @@ -13,4 +13,3 @@ 0x5e MIN ( tilenum ) XYPOS @ _cell! XYPOS @ 1+ DUP [ VDP_COLS VDP_ROWS * LITN ] = IF DROP 0 THEN XYPOS ! ; - diff --git a/blk/628 b/blk/628 index 0c91ddf..720a699 100644 --- a/blk/628 +++ b/blk/628 @@ -8,9 +8,3 @@ 0 XYPOS ! ( bit 6, enable display, bit 7, ?? ) 0x81c0 _ctl ; - - - - - - diff --git a/blk/631 b/blk/631 index 5b42a09..de0da38 100644 --- a/blk/631 +++ b/blk/631 @@ -3,14 +3,3 @@ calls vdp's routines during (key) to update character selection. Load range: 632-637 - - - - - - - - - - - diff --git a/blk/632 b/blk/632 index 1e0f00b..58d9a5b 100644 --- a/blk/632 +++ b/blk/632 @@ -10,7 +10,3 @@ This logic below is for the Genesis controller, which is modal. TH is an output pin that switches the meaning of TL and TR. When TH is high (unselected), TL = Button B and TR = Button C. When TH is low (selected), TL = Button A and TR = Start. ) - - - - diff --git a/blk/633 b/blk/633 index 9eda475..61a537c 100644 --- a/blk/633 +++ b/blk/633 @@ -13,4 +13,3 @@ CODE _status A SLAr, A SLAr, B ORr, PUSHA, ;CODE - diff --git a/blk/634 b/blk/634 index c19e91c..1fc3e5d 100644 --- a/blk/634 +++ b/blk/634 @@ -6,11 +6,3 @@ CREATE _ '0' C, ':' C, 'A' C, '[' C, 'a' C, 0xff C, _sel @ _ BEGIN ( c a ) C@+ 2 PICK > UNTIL ( c a ) 1- C@ NIP _sel ! ; - - - - - - - - diff --git a/blk/635 b/blk/635 index a9d1621..2ea7ea7 100644 --- a/blk/635 +++ b/blk/635 @@ -11,6 +11,3 @@ ( return whether any of the high 3 bits is low ) 0xe0 AND 0xe0 < ; - - - diff --git a/blk/636 b/blk/636 index 3db7252..6ea0980 100644 --- a/blk/636 +++ b/blk/636 @@ -7,10 +7,3 @@ ( If not BUTC or BUTA, it has to be START ) 0xd _next C! _sel C@ ; - - - - - - - diff --git a/blk/637 b/blk/637 index 931efe7..39cffdb 100644 --- a/blk/637 +++ b/blk/637 @@ -1,16 +1,2 @@ : PAD$ 0xff _prevstat C! 'a' _sel C! 0 _next C! ; - - - - - - - - - - - - - - diff --git a/blk/640 b/blk/640 index f655cfb..1b1638d 100644 --- a/blk/640 +++ b/blk/640 @@ -11,6 +11,3 @@ TL. When the '164 is full, TL is low. Port A TL is bit 4 ) 0xdc PC@ ( bit 3:0 go in 7:4 ) 0x0f AND 4 LSHIFT OR ( n ) ( Port A/B reset ) 0xff 0x3f PC! ; - - - diff --git a/blk/641 b/blk/641 index 40ff985..6574f05 100644 --- a/blk/641 +++ b/blk/641 @@ -9,8 +9,3 @@ 0xdd PC@ ( bit 1:0 go in 7:6 ) 0x03 AND 6 LSHIFT OR ( n ) ( Port A/B reset ) 0xff 0x3f PC! ; - - - - - diff --git a/blk/650 b/blk/650 index 2d90163..31f722d 100644 --- a/blk/650 +++ b/blk/650 @@ -1,16 +1 @@ AVR assembler - - - - - - - - - - - - - - - diff --git a/blk/660 b/blk/660 index ee857f6..6b830ca 100644 --- a/blk/660 +++ b/blk/660 @@ -1,16 +1 @@ 1 12 LOADR+ - - - - - - - - - - - - - - - diff --git a/blk/661 b/blk/661 index 7f5eae3..448b789 100644 --- a/blk/661 +++ b/blk/661 @@ -8,9 +8,3 @@ VARIABLE L1 VARIABLE L2 VARIABLE L3 VARIABLE L4 ( A, spits an assembled byte, A,, spits an assembled word Both increase PC. To debug, change C, to .X ) : A, C, ; : A,, SPLITB A, A, ; - - - - - - diff --git a/blk/662 b/blk/662 index cfddfd3..504a7fa 100644 --- a/blk/662 +++ b/blk/662 @@ -5,12 +5,3 @@ : _r64c DUP 63 > IF _oor THEN ; : _r256c DUP 255 > IF _oor THEN ; : _Rdp ( op rd -- op', place Rd ) 4 LSHIFT OR ; - - - - - - - - - diff --git a/blk/663 b/blk/663 index 481349b..021b926 100644 --- a/blk/663 +++ b/blk/663 @@ -8,9 +8,3 @@ 0b1001000000001111 OPRd POP, 0b1001001000001111 OPRd PUSH, 0b1001010000000111 OPRd ROR, 0b1001010000000010 OPRd SWAP, 0b1001001000000100 OPRd XCH, - - - - - - diff --git a/blk/664 b/blk/664 index 7719d51..6aff3dd 100644 --- a/blk/664 +++ b/blk/664 @@ -13,4 +13,3 @@ OVER _r64c 0x30 AND 3 RSHIFT OR ( rd A op' ) 8 LSHIFT OR 0xff0f AND ( rd op' ) SWAP _r32c _Rdp A,, ; 0xb0 OPRdA IN, 0xb8 OPRdA _ : OUT, SWAP _ ; - diff --git a/blk/665 b/blk/665 index 3117fb7..236bb0a 100644 --- a/blk/665 +++ b/blk/665 @@ -11,6 +11,3 @@ ROT _r32c 3 LSHIFT ROT _r8c OR A, A, ; 0x98 OPAb CBI, 0x9a OPAb SBI, 0x99 OPAb SBIC, 0x9b OPAb SBIS, - - - diff --git a/blk/666 b/blk/666 index 77b2ac5..6a05bb7 100644 --- a/blk/666 +++ b/blk/666 @@ -8,9 +8,3 @@ 0x9478 OPNA SEI, 0x9428 OPNA SEN, 0x9448 OPNA SES, 0x9468 OPNA SET, 0x9438 OPNA SEV, 0x9418 OPNA SEZ, 0x9588 OPNA SLEEP, 0x95a8 OPNA WDR, - - - - - - diff --git a/blk/667 b/blk/667 index c8ec621..f5e79dd 100644 --- a/blk/667 +++ b/blk/667 @@ -11,6 +11,3 @@ ( special cases ) : CLR, DUP EOR, ; : TST, DUP AND, ; : LSL, DUP ADD, ; - - - diff --git a/blk/668 b/blk/668 index 5a13d72..0b21fe6 100644 --- a/blk/668 +++ b/blk/668 @@ -5,12 +5,3 @@ : RJMP _raddr12 0xc000 OR ; : RCALL _raddr12 0xd000 OR ; : RJMP, RJMP A,, ; : RCALL, RCALL A,, ; - - - - - - - - - diff --git a/blk/669 b/blk/669 index c151553..d4828a4 100644 --- a/blk/669 +++ b/blk/669 @@ -9,8 +9,3 @@ : BRLO BRCS ; : BRLT 4 BRBS ; : BRMI 2 BRBS ; : BRPL 2 BRBC ; : BRSH BRCC ; : BRTC 6 BRBC ; : BRTS 6 BRBS ; : BRVC 3 BRBC ; : BRVS 3 BRBS ; - - - - - diff --git a/blk/670 b/blk/670 index 4bebd92..df8ccd5 100644 --- a/blk/670 +++ b/blk/670 @@ -4,13 +4,3 @@ : _ldst ( Rd XYZ op ) SWAP DUP 0x10 AND 8 LSHIFT SWAP 0xf AND OR OR ( Rd op' ) SWAP _Rdp A,, ; : LD, 0x8000 _ldst ; : ST, SWAP 0x8200 _ldst ; - - - - - - - - - - diff --git a/blk/671 b/blk/671 index 546ecbe..4e30db4 100644 --- a/blk/671 +++ b/blk/671 @@ -13,4 +13,3 @@ : BEGIN, PC ; : AGAIN?, ( op ) SWAP 1- SWAP EXECUTE A,, ; : AGAIN, ['] RJMP AGAIN?, ; : IF, ['] BREQ SKIP, ; : THEN, TO, ; - diff --git a/blk/672 b/blk/672 index e616f7f..87b1c11 100644 --- a/blk/672 +++ b/blk/672 @@ -6,11 +6,3 @@ : R24 24 ; : R25 25 ; : R26 26 ; : R27 27 ; : R28 28 ; : R29 29 ; : R30 30 ; : R31 31 ; : XL R26 ; : XH R27 ; : YL R28 ; : YH R29 ; : ZL R30 ; : ZH R31 ; - - - - - - - - diff --git a/blk/730 b/blk/730 index 75717f6..0d11a61 100644 --- a/blk/730 +++ b/blk/730 @@ -13,4 +13,3 @@ Mnemonics that only have one signature (for example INT,) don't have operands letters. For jumps, it's special. 's' is SHORT, 'n' is NEAR, 'f' is FAR. - diff --git a/blk/755 b/blk/755 index 32153d6..e45d35b 100644 --- a/blk/755 +++ b/blk/755 @@ -4,4 +4,3 @@ 0x29 OPrr SUBxx, 0x08 OPrr ORrr, 0x09 OPrr ORxx, 0x38 OPrr CMPrr, 0x39 OPrr CMPxx, 0x00 OPrr ADDrr, 0x01 OPrr ADDxx, 0x20 OPrr ANDrr, 0x21 OPrr ANDxx, - diff --git a/blk/758 b/blk/758 index a73c6b4..b841eea 100644 --- a/blk/758 +++ b/blk/758 @@ -3,4 +3,3 @@ 0xcd OPi INT, : OPI CREATE C, DOES> C@ A, A,, ; 0x05 OPI ADDAXI, 0x25 OPI ANDAXI, 0x2d OPI SUBAXI, - diff --git a/blk/810 b/blk/810 index b9c83a3..d191e2d 100644 --- a/blk/810 +++ b/blk/810 @@ -12,4 +12,3 @@ lblexec BSET PC 0x36 - ORG @ 0x34 + ! ( DI -> wordref ) DX DI MOVxx, DX INCx, DX INCx, ( --> IP ) DI [DI] MOVx[], JMPs, lblexec @ RPCs, - diff --git a/blk/837 b/blk/837 index c483bd8..c6a117b 100644 --- a/blk/837 +++ b/blk/837 @@ -7,4 +7,3 @@ SWAP 8 LSHIFT 0x03 C@ ( boot drive ) OR ( AX BX CX DX ) 13H 2DROP 2DROP ; - diff --git a/blk/840 b/blk/840 index e82e766..a7f513c 100644 --- a/blk/840 +++ b/blk/840 @@ -5,4 +5,3 @@ CODE AT-XY ( x y ) DH AL MOVrr, DL BL MOVrr, BX BX XORxx, AH 2 MOVri, 0x10 INT, DX POPx, ( unprotect ) ;CODE - diff --git a/tools/blkunpack.c b/tools/blkunpack.c index dcac59a..6b6bd22 100644 --- a/tools/blkunpack.c +++ b/tools/blkunpack.c @@ -20,14 +20,17 @@ int main(int argc, char *argv[]) while (fread(buf, 1024, 1, stdin) == 1) { char fullpath[0x200]; sprintf(fullpath, "%s/%03d", argv[1], blkid); - char c = 0; - for (int i=0; i<1024; i++) { - c |= buf[i]; + int linecnt = 0 ; + for (int i=1023; i>=0; i--) { + if (buf[i]) { + linecnt = (i / 64) + 1; + break; + } } - if (c) { + if (linecnt) { // not an empty block FILE *fp = fopen(fullpath, "w"); - for (int i=0; i<16; i++) { + for (int i=0; i