BLOCK NUMBER 49 ( CF83 Assembler Extension Word Set - Load Block ) ( Copyright [ c ] 1992 by BDS Software ) decimal : ldp ( +n -- ) cr dup 49 - ." Loading Block No. " . ." of 16 " load ; : ldpx ( -- ) 66 50 do i ldp loop ; cr cr .( Loading Assembler Extension Word Set ) cr ldpx cr cr .( Assembler Extension Word Set LOADED. ) BLOCK NUMBER 50 ( CF83 Assembler Extension Word Set - 01/16 ) ( Copyright [ c ] 1992 by BDS Software ) decimal 16 base ! vocabulary assembler : c, ( 16b -- ) 1 allot here 1- c! ; create codr ( -- ) here dup 2- ! 3416 , 9E1B , 301E , DC1B , ED84 , DC21 , DD1F , DC29 , ED9F , 098D , 3516 , AEA1 , 6E91 , : code ( -- ) assembler create codr ; create end-code ( -- ) here dup 2- ! 3416 , 0F2D , 9E1B , CCAE , A1ED , 81CC , 6E91 , ED81 , 9F1B , DC1D , DD1F , DD21 , DD29 , ED9F , 098D , 9F1D , 3516 , AEA1 , 6E91 , immediate assembler definitions variable chld variable cd2b variable cd1b variable cd+b variable cd-b variable rslv1a variable rslv1l decimal BLOCK NUMBER 51 ( CF83 Assembler Extension Word Set - 02/16 ) ( Copyright [ c ] 1992 by BDS Software ) decimal 16 base ! : mki ( opcode -- ) create c, does> ( addr -- ) c@ c, ; : mki2 ( opcode -- ) create , does> ( addr -- ) @ , ; : mke ( opcode -- ) create c, does> ( 16b addr -- ) c@ c, , ; : mke2 ( opcode -- ) create , does> ( 16b addr -- ) @ , , ; : mkd ( opcode -- ) create c, does> ( 16b addr -- ) c@ c, c, ; : mkd2 ( opcode -- ) create , does> ( 16b addr -- ) @ , c, ; : mkrc ( 16b1 16b2 -- ) create c, c, does> ( addr -- ) dup c@ swap 1+ c@ ; : mkret ( opcode -- ) create c, does> ( 16b1 16b2 16b3 16b4 addr -- ) c@ c, swap drop rot drop 10 * or c, ; decimal BLOCK NUMBER 52 ( CF83 Assembler Extension Word Set - 03/16 ) ( Copyright [ c ] 1992 by BDS Software ) decimal 16 base ! : mkrpp ( opcode -- ) create c, does> ( [ 1 to 9 - 16b register codes plus *E code ] addr -- ) c@ c, begin 2 pick 0FF = not while drop swap rot rot or swap repeat drop rot drop swap drop c, ; : mkii ( opcode -- ) create c, does> ( [ 1 to 3 - 16b codes/data ] +n addr -- ) c@ c, 0 do c, loop ; : mkii2 ( opcode -- ) create , does> ( [ 1 to 3 - 16b codes/data ] +n addr -- ) @ , 0 do c, loop ; create chlcvt ( 16b1 -- 16b2 16b3 ) here dup 2- ! 3416 , 3706 , 1F01 , 4F36 , 061F , 101F , 894F , 3606 , 3516 , AEA1 , 6E91 , decimal BLOCK NUMBER 53 ( CF83 Assembler Extension Word Set - 04/16 ) ( Copyright [ c ] 1992 by BDS Software ) decimal : rng1 ( -- [ ] or [ 16b1 16b2 16b3 16b4 ] ) chld @ -128 < if chld @ chlcvt cd2b @ 3 then ; : rng2 ( -- [ ] or [ 16b1 16b2 16b3 ] ) chld @ -16 < chld @ -129 > and if chld @ cd1b @ 2 then ; : rng3 ( -- [ ] or [ 16b1 16b2 ] ) chld @ 0< chld @ -17 > and if cd-b @ chld @ + 1 then ; : rng4 ( -- [ ] or [ 16b1 16b2 ] ) chld @ 16 < chld @ -1 > and if cd+b @ chld @ + 1 then ; : rng5 ( -- [ ] or [ 16b1 16b2 16b3 ] ) chld @ 128 < chld @ 15 > and if chld @ cd1b @ 2 then ; : rng6 ( -- [ ] or [ 16b1 16b2 16b3 16b4 ] ) chld @ 127 > if chld @ chlcvt cd2b @ 3 then ; decimal BLOCK NUMBER 54 ( CF83 Assembler Extension Word Set - 05/16 ) ( Copyright [ c ] 1992 by BDS Software ) decimal 16 base ! : rng7 ( -- [ ] or [ 16b1 16b2 16b3 ] ) chld @ 128 < chld @ -129 > and if chld @ cd1b @ 2 then ; : mkipb ( 16b1 16b2 16b3 16b4 -- ) create c, c, c, c, does> ( addr -- [ 16b1 16b2 ] or [ 16b1 16b2 16b3 ] or [ 16b1 16b2 16b3 16b4 ] ) dup dup dup c@ cd2b ! 1+ c@ cd1b ! 2+ c@ cd+b ! 3 + c@ cd-b ! chld ! rng1 rng2 rng3 rng4 rng5 rng6 ; : mkiipb ( 16b1 16b2 -- ) create c, c, does> ( addr -- [ 16b1 16b2 16b3 ] or [ 16b1 16b2 16b3 16b4 ] ) dup c@ cd2b ! 1+ c@ cd1b ! chld ! rng1 rng7 rng6 ; : mkm ( 16b -- ) create c, does> ( addr -- 16b1 16b2 ) c@ 1 ; : [] ( 16b1 -- 16b2 16b3 16b4 16b5 ) chlcvt 9F 3 ; decimal BLOCK NUMBER 55 ( CF83 Assembler Extension Word Set - 06/16 ) ( Copyright [ c ] 1992 by BDS Software ) decimal 16 base ! : mkl ( label# -- ) create 1- 36 * F93B + , does> ( addr1 -- addr2 ) @ ; : mkr ( opcode -- ) create c, does> ( addr -- ) c@ c, 2+ dup 2 swap +! dup @ + here swap ! 1 allot ; : mkr1 ( opcode -- ) create c, does> ( addr -- ) c@ c, 2+ dup 2 swap +! dup @ + here swap ! 2 allot ; : mkr2 ( opcode -- ) create , does> ( addr -- ) @ , 2+ dup 2 swap +! dup @ + here swap ! 2 allot ; : label ( addr -- ) here swap ! ; : rslvp ( 16b addr -- ) dup 1- c@ dup 16 = swap 17 = 2 pick 2- c@ 10 = or or if swap 2- swap ! else swap 1- swap c! then ; decimal BLOCK NUMBER 56 ( CF83 Assembler Extension Word Set - 07/16 ) ( Copyright [ c ] 1992 by BDS Software ) decimal 16 base ! : rslv3 ( +n -- ) 0 do rslv1l @ rslv1a @ i + @ swap @ over - swap rslvp 2 +loop ; : rslv2 ( addr -- ) dup dup 2+ @ dup 0= not if swap 4 + rslv1a ! swap rslv1l ! rslv3 else drop drop drop then ; : rslv1 ( addr -- ) dup @ 0= not if rslv2 else drop then ; : resolve ( -- ) FEB7 F93B do i rslv1 36 +loop ; : clear ( -- ) F93B 57C 0 fill ; decimal BLOCK NUMBER 57 ( CF83 Assembler Extension Word Set - 08/16 ) ( Copyright [ c ] 1992 by BDS Software ) decimal 16 base ! 3A MKI ABX 48 MKI ASLA 58 MKI ASLB 47 MKI ASRA 57 MKI ASRB 4F MKI CLRA 5F MKI CLRB 43 MKI COMA 53 MKI COMB 19 MKI DAA 4A MKI DECA 5A MKI DECB 4C MKI INCA 5C MKI INCB 48 MKI LSLA 58 MKI LSLB 44 MKI LSRA 54 MKI LSRB 3D MKI MUL 40 MKI NEGA 50 MKI NEGB 12 MKI NOP 49 MKI ROLA 59 MKI ROLB 46 MKI RORA 56 MKI RORB 3B MKI RTI 39 MKI RTS 1D MKI SEX 3F MKI SWI 103F MKI2 SWI2 113F MKI2 SWI3 13 MKI SYNC 4D MKI TSTA 5D MKI TSTB decimal BLOCK NUMBER 58 ( CF83 Assembler Extension Word Set - 09/16 ) ( Copyright [ c ] 1992 by BDS Software ) decimal 16 base ! B9 MKE ADCA F9 MKE ADCB BB MKE ADDA FB MKE ADDB F3 MKE ADDD B4 MKE ANDA F4 MKE ANDB 78 MKE ASL 77 MKE ASR B5 MKE BITA F5 MKE BITB 7F MKE CLR B1 MKE CMPA F1 MKE CMPB 10B3 MKE2 CMPD 11BC MKE2 CMPS 11B3 MKE2 CMPU BC MKE CMPX 10BC MKE2 CMPY 73 MKE COM 7A MKE DEC B8 MKE EORA F8 MKE EORB 7C MKE INC 7E MKE JMP BD MKE JSR B6 MKE LDA F6 MKE LDB FC MKE LDD 10FE MKE2 LDS FE MKE LDU BE MKE LDX 10BE MKE2 LDY 78 MKE LSL 74 MKE LSR 70 MKE NEG BA MKE ORA FA MKE ORB 79 MKE ROL 76 MKE ROR B2 MKE SBCA F2 MKE SBCB B7 MKE STA F7 MKE STB FD MKE STD 10FF MKE2 STS FF MKE STU BF MKE STX 10BF MKE2 STY B0 MKE SUBA F0 MKE SUBB B3 MKE SUBD 7D MKE TST decimal BLOCK NUMBER 59 ( CF83 Assembler Extension Word Set - 10/16 ) ( Copyright [ c ] 1992 by BDS Software ) decimal 16 base ! 99 MKD ADCA< D9 MKD ADCB< 9B MKD ADDA< DB MKD ADDB< D3 MKD ADDD< 94 MKD ANDA< D4 MKD ANDB< 08 MKD ASL< 07 MKD ASR< 95 MKD BITA< D5 MKD BITB< 0F MKD CLR< 91 MKD CMPA< D1 MKD CMPB< 1093 MKD2 CMPD< 119C MKD2 CMPS< 1193 MKD2 CMPU< 9C MKD CMPX< 109C MKD2 CMPY< 03 MKD COM< 0A MKD DEC< 98 MKD EORA< D8 MKD EORB< 0C MKD INC< 0E MKD JMP< 9D MKD JSR< 96 MKD LDA< D6 MKD LDB< DC MKD LDD< 10DE MKD2 LDS< DE MKD LDU< 9E MKD LDX< 109E MKD2 LDY< 08 MKD LSL< 04 MKD LSR< 00 MKD NEG< 9A MKD ORA< DA MKD ORB< 09 MKD ROL< 06 MKD ROR< 92 MKD SBCA< D2 MKD SBCB< 97 MKD STA< D7 MKD STB< DD MKD STD< 10DF MKD2 STS< DF MKD STU< 9F MKD STX< 109F MKD STY< 90 MKD SUBA< D0 MKD SUBB< 93 MKD SUBD< 0D MKD TST< decimal BLOCK NUMBER 60 ( CF83 Assembler Extension Word Set - 11/16 ) ( Copyright [ c ] 1992 by BDS Software ) decimal 16 base ! 89 MKD ADCA# C9 MKD ADCB# 8B MKD ADDA# CB MKD ADDB# C3 MKE ADDD# 84 MKD ANDA# C4 MKD ANDB# 1C MKD ANDCC# 85 MKD BITA# C5 MKD BITB# 81 MKD CMPA# C1 MKD CMPB# 1083 MKE2 CMPD# 118C MKE2 CMPS# 1183 MKE2 CMPU# 8C MKE CMPX# 108C MKE2 CMPY# 3C MKD CWAI# 88 MKD EORA# C8 MKD EORB# 86 MKD LDA# C6 MKD LDB# CC MKE LDD# 10CE MKE2 LDS# CE MKE LDU# 8E MKE LDX# 108E MKE2 LDY# 8A MKD ORA# CA MKD ORB# 1A MKD ORCC# 82 MKD SBCA# C2 MKD SBCB# 80 MKD SUBA# C0 MKD SUBB# 83 MKE SUBD# decimal BLOCK NUMBER 61 ( CF83 Assembler Extension Word Set - 12/16 ) ( Copyright [ c ] 1992 by BDS Software ) decimal 16 base ! 00 06 MKRC *D 01 10 MKRC *X 02 20 MKRC *Y 03 40 MKRC *U 04 40 MKRC *S 05 80 MKRC *PC 08 02 MKRC *A 09 04 MKRC *B 0A 01 MKRC *CC 0B 08 MKRC *DP FF FF MKRC *E 1E MKRET EXG 1F MKRET TFR 34 MKRPP PSHS 35 MKRPP PULS 36 MKRPP PSHU 37 MKRPP PULU 20 00 88 89 MKIPB ,X 40 20 A8 A9 MKIPB ,Y 60 40 C8 C9 MKIPB ,U 80 60 E8 E9 MKIPB ,S 8C 8D MKIIPB ,PC 98 99 MKIIPB [,X] 9C 9D MKIIPB [,PC] B8 B9 MKIIPB [,Y] D8 D9 MKIIPB [,U] F8 F9 MKIIPB [,S] ED MKII STD] 10EF MKII2 STS] EF MKII STU] AF MKII STX] 10AF MKII2 STY] A0 MKII SUBA] E0 MKII SUBB] A3 MKII SUBD] 6D MKII TST] decimal BLOCK NUMBER 62 ( CF83 Assembler Extension Word Set - 13/16 ) ( Copyright [ c ] 1992 by BDS Software ) decimal 16 base ! A9 MKII ADCA] E9 MKII ADCB] AB MKII ADDA] EB MKII ADDB] E3 MKII ADDD] A4 MKII ANDA] E4 MKII ANDB] 68 MKII ASL] 67 MKII ASR] A5 MKII BITA] E5 MKII BITB] 6F MKII CLR] A1 MKII CMPA] E1 MKII CMPB] 10A3 MKII2 CMPD] 11AC MKII2 CMPS] 11A3 MKII2 CMPU] AC MKII CMPX] 10AC MKII2 CMPY] 63 MKII COM] 6A MKII DEC] A8 MKII EORA] E8 MKII EORB] 6C MKII INC] 6E MKII JMP] AD MKII JSR] A6 MKII LDA] E6 MKII LDB] EC MKII LDD] 10EE MKII2 LDS] EE MKII LDU] AE MKII LDX] 10AE MKII2 LDY] 32 MKII LEAS] 33 MKII LEAU] 30 MKII LEAX] 31 MKII LEAY] 68 MKII LSL] 64 MKII LSR] 60 MKII NEG] AA MKII ORA] EA MKII ORB] 69 MKII ROL] 66 MKII ROR] A2 MKII SBCA] E2 MKII SBCB] A7 MKII STA] E7 MKII STB] decimal BLOCK NUMBER 63 ( CF83 Assembler Extension Word Set - 14/16 ) ( Copyright [ c ] 1992 by BDS Software ) decimal 16 base ! 80 MKM ,X+ 81 MKM ,X++ 82 MKM ,-X 83 MKM ,--X 85 MKM B,X 86 MKM A,X 8B MKM D,X 91 MKM [,X++] 93 MKM [,--X] 95 MKM [B,X] 96 MKM [A,X] 9B MKM [D,X] A0 MKM ,Y+ A1 MKM ,Y++ A2 MKM ,-Y A3 MKM ,--Y A5 MKM B,Y A6 MKM A,Y AB MKM D,Y B1 MKM [,Y++] B3 MKM [,--Y] B5 MKM [B,Y] B6 MKM [A,Y] BB MKM [D,Y] C0 MKM ,U+ C1 MKM ,U++ C2 MKM ,-U C3 MKM ,--U C5 MKM B,U C6 MKM A,U CB MKM D,U D1 MKM [,U++] D3 MKM [,--U] D5 MKM [B,U] D6 MKM [A,U] DB MKM [D,U] E0 MKM ,S+ E1 MKM ,S++ E2 MKM ,-S E3 MKM ,--S E5 MKM B,S E6 MKM A,S EB MKM D,S F1 MKM [,S++] F3 MKM [,--S] F5 MKM [B,S] F6 MKM [A,S] FB MKM [D,S] 84 MKM N,X 94 MKM [N,X] A4 MKM N,Y B4 MKM [N,Y] C4 MKM N,U D4 MKM [N,U] E4 MKM N,S F4 MKM [N,S] decimal BLOCK NUMBER 64 ( CF83 Assembler Extension Word Set - 15/16 ) ( Copyright [ c ] 1992 by BDS Software ) decimal 16 base ! 01 MKL LBA 02 MKL LBB 03 MKL LBC 04 MKL LBD 05 MKL LBE 06 MKL LBF 07 MKL LBG 08 MKL LBH 09 MKL LBI 0A MKL LBJ 0B MKL LBK 0C MKL LBL 0D MKL LBM 0E MKL LBN 0F MKL LBO 10 MKL LBP 11 MKL LBQ 12 MKL LBR 13 MKL LBS 14 MKL LBT 15 MKL LBU 16 MKL LBV 17 MKL LBW 18 MKL LBX 19 MKL LBY 1A MKL LBZ forth definitions create cods ( -- ) here dup 2- ! 3416 , 9E1D , E69F , 001D , 3A30 , 051F , 20C3 , 0002 , ED84 , 3516 , AEA1 , 6E91 , decimal BLOCK NUMBER 65 ( CF83 Assembler Extension Word Set - 16/16 ) ( Copyright [ c ] 1992 by BDS Software ) decimal 16 base ! assembler definitions 24 MKR BCC 25 MKR BCS 27 MKR BEQ 2C MKR BGE 2E MKR BGT 22 MKR BHI 24 MKR BHS 2F MKR BLE 25 MKR BLO 23 MKR BLS 2D MKR BLT 2B MKR BMI 26 MKR BNE 2A MKR BPL 20 MKR BRA 21 MKR BRN 8D MKR BSR 28 MKR BVC 29 MKR BVS 1024 MKR2 LBCC 1025 MKR2 LBCS 1027 MKR2 LBEQ 102C MKR2 LBGE 102E MKR2 LBGT 1022 MKR2 LBHI 1024 MKR2 LBHS 102F MKR2 LBLE 1025 MKR2 LBLO 1023 MKR2 LBLS 102D MKR2 LBLT 102B MKR2 LBMI 1026 MKR2 LBNE 102A MKR2 LBPL 16 MKR1 LBRA 1021 MKR2 LBRN 17 MKR1 LBSR 1028 MKR2 LBVC 1029 MKR2 LBVS forth definitions : ;code ( -- ) ['] cods , 000D , assembler [compile] [ ; immediate decimal