; PALETTE.COM ; ; Designed exclusively for Amstrad ; 0000 1869 jr &006b defb "PALETTE #89",13,10, defb "Developed by Locomotive Software Ltd.",13,10" defb "Copyright (C) 1985 Amstrad Consumer Electronics PLC",13,10 006b ed730011 ld (&1100),sp 006f 310212 ld sp,&1202 0072 cdc703 call &03c7 0075 cd4903 call &0349 0078 dc8001 call c,&0180 007b ed7b0011 ld sp,(&1100) 007f c9 ret 0080 79 ld a,c 0081 fe03 cp &03 0083 ca6402 jp z,&0264 ;; warn about environment 0086 cdba02 call &02ba 0089 281e jr z,&00a9 008b cdd901 call &01d9 008e cdba02 call &02ba 0091 282f jr z,&00c2 0093 cde101 call &01e1 0096 0602 ld b,&02 0098 1808 jr &00a2 009a cd0c02 call &020c 009d 04 inc b 009e 78 ld a,b 009f fe10 cp &10 00a1 d0 ret nc 00a2 cdba02 call &02ba 00a5 20f3 jr nz,&009a 00a7 1819 jr &00c2 00a9 cd3203 call &0332 00ac 2814 jr z,&00c2 00ae 11b601 ld de,&01b6 00b1 0e09 ld c,&09 ;; C_WRITESTR 00b3 c30500 jp &0005 ;; BDOS 00b6 defb "No colour",13,10,"$" 00c2 cd3203 call &0332 00c5 c0 ret nz 00c6 11cc01 ld de,&01cc 00c9 c31f02 jp &021f 00cc defb "Bad colour",13,10,"$" 00d9 d5 push de 00da 1e63 ld e,&63 00dc cde901 call &01e9 00df d1 pop de 00e0 c9 ret 00e1 d5 push de 00e2 1e62 ld e,&62 00e4 cde901 call &01e9 00e7 d1 pop de 00e8 c9 ret 00e9 f5 push af 00ea 3e1b ld a,&1b 00ec cdfd01 call &01fd 00ef 7b ld a,e 00f0 cdfd01 call &01fd 00f3 7d ld a,l 00f4 e63f and &3f 00f6 c620 add a,&20 00f8 cdfd01 call &01fd 00fb f1 pop af 00fc c9 ret 00fd e5 push hl 00fe d5 push de 00ff c5 push bc 0100 f5 push af 0101 5f ld e,a 0102 0e06 ld c,&06 0104 cd0500 call &0005 ;; BDOS 0107 f1 pop af 0108 c1 pop bc 0109 d1 pop de 010a e1 pop hl 010b c9 ret 010c c5 push bc 010d f5 push af 010e 78 ld a,b 010f 45 ld b,l 0110 4d ld c,l 0111 c5 push bc 0112 f5 push af 0113 cdf003 call &03f0 0116 f1 pop af 0117 c1 pop bc 0118 b7 or a 0119 ccf603 call z,&03f6 011c f1 pop af 011d c1 pop bc 011e c9 ret 011f c5 push bc 0120 f5 push af 0121 cd9d02 call &029d 0124 cdc103 call &03c1 0127 201d jr nz,&0146 0129 114902 ld de,&0249 012c cd9d02 call &029d 012f 1804 jr &0135 0131 79 ld a,c 0132 cdab02 call &02ab 0135 cdbc03 call &03bc 0138 cdc103 call &03c1 013b cd6503 call &0365 013e 28f1 jr z,&0131 0140 116102 ld de,&0261 0143 cd9d02 call &029d 0146 f1 pop af 0147 c1 pop bc 0148 c9 ret 0149 defb "Ignoring rest of line: $" defb 13,10,"$" ;; display message about environment 0164 d5 push de 0165 116d02 ld de,&026d 0168 cd9d02 call &029d 016b d1 pop de 016c c9 ret 016d defb "This program will not run in this environment",13,10,"$" 019d e5 push hl 019e d5 push de 019f c5 push bc 01a0 f5 push af 01a1 0e09 ld c,&09 ;; A_WRITESTR 01a3 cd0500 call &0005 ;; BDOS 01a6 f1 pop af 01a7 c1 pop bc 01a8 d1 pop de 01a9 e1 pop hl 01aa c9 ret 01ab e5 push hl 01ac d5 push de 01ad c5 push bc 01ae f5 push af 01af 5f ld e,a 01b0 0e02 ld c,&02 ;; C_WRITE 01b2 cd0500 call &0005 ;; BDOS 01b5 f1 pop af 01b6 c1 pop bc 01b7 d1 pop de 01b8 e1 pop hl 01b9 c9 ret 01ba c5 push bc 01bb cd3903 call &0339 01be cb58 bit 3,b 01c0 2805 jr z,&01c7 01c2 cdd002 call &02d0 01c5 1807 jr &01ce 01c7 cb60 bit 4,b 01c9 2803 jr z,&01ce 01cb cdfb02 call &02fb 01ce c1 pop bc 01cf c9 ret 01d0 d5 push de 01d1 c5 push bc 01d2 cd3903 call &0339 01d5 cb58 bit 3,b 01d7 281f jr z,&01f8 01d9 210000 ld hl,&0000 01dc 1806 jr &01e4 01de 5d ld e,l 01df 54 ld d,h 01e0 29 add hl,hl 01e1 29 add hl,hl 01e2 19 add hl,de 01e3 29 add hl,hl 01e4 79 ld a,c 01e5 d630 sub &30 01e7 85 add a,l 01e8 6f ld l,a 01e9 8c adc a,h 01ea 95 sub l 01eb 67 ld h,a 01ec cd6503 call &0365 01ef cdbc03 call &03bc 01f2 cb58 bit 3,b 01f4 20e8 jr nz,&01de 01f6 f601 or &01 01f8 c1 pop bc 01f9 d1 pop de 01fa c9 ret 01fb c5 push bc 01fc cd3903 call &0339 01ff cb60 bit 4,b 0201 282d jr z,&0230 0203 cd6503 call &0365 0206 cdbc03 call &03bc 0209 cb50 bit 2,b 020b cc8703 call z,&0387 020e 2820 jr z,&0230 0210 210000 ld hl,&0000 0213 1804 jr &0219 0215 29 add hl,hl 0216 29 add hl,hl 0217 29 add hl,hl 0218 29 add hl,hl 0219 79 ld a,c 021a e60f and &0f 021c cb58 bit 3,b 021e 2002 jr nz,&0222 0220 c609 add a,&09 0222 b5 or l 0223 6f ld l,a 0224 cd6503 call &0365 0227 cdbc03 call &03bc 022a cb50 bit 2,b 022c 20e7 jr nz,&0215 022e f601 or &01 0230 c1 pop bc 0231 c9 ret 0232 cdc103 call &03c1 0235 c46503 call nz,&0365 0238 c9 ret 0239 1803 jr &023e 023b cd6503 call &0365 023e cdbc03 call &03bc 0241 cb68 bit 5,b 0243 c0 ret nz 0244 cb40 bit 0,b 0246 20f3 jr nz,&023b 0248 c9 ret 0249 e5 push hl 024a d5 push de 024b c5 push bc 024c 218000 ld hl,&0080 024f 7e ld a,(hl) 0250 3c inc a 0251 320412 ld (&1204),a 0254 23 inc hl 0255 220212 ld (&1202),hl 0258 3d dec a 0259 85 add a,l 025a 6f ld l,a 025b 8c adc a,h 025c 95 sub l 025d 67 ld h,a 025e 361a ld (hl),&1a 0260 37 scf 0261 c1 pop bc 0262 d1 pop de 0263 e1 pop hl 0264 d0 ret nc 0265 e5 push hl 0266 d5 push de 0267 c5 push bc 0268 f5 push af 0269 2a0212 ld hl,(&1202) 026c 4e ld c,(hl) 026d eb ex de,hl 026e cdaa03 call &03aa 0271 79 ld a,c 0272 fe1a cp &1a 0274 280c jr z,&0282 0276 3a0412 ld a,(&1204) 0279 3d dec a 027a 320412 ld (&1204),a 027d eb ex de,hl 027e 23 inc hl 027f 220212 ld (&1202),hl 0282 f1 pop af 0283 c1 pop bc 0284 d1 pop de 0285 e1 pop hl 0286 c9 ret 0287 e5 push hl 0288 d5 push de 0289 c5 push bc 028a f5 push af 028b 3a0512 ld a,(&1205) 028e fe1a cp &1a 0290 2a0212 ld hl,(&1202) 0293 280b jr z,&02a0 0295 210412 ld hl,&1204 0298 34 inc (hl) 0299 2a0212 ld hl,(&1202) 029c 2b dec hl 029d 220212 ld (&1202),hl 02a0 2b dec hl 02a1 4e ld c,(hl) 02a2 cdaa03 call &03aa 02a5 f1 pop af 02a6 c1 pop bc 02a7 d1 pop de 02a8 e1 pop hl 02a9 c9 ret 02aa cb79 bit 7,c 02ac 0601 ld b,&01 02ae 2007 jr nz,&02b7 02b0 0600 ld b,&00 02b2 21fc03 ld hl,&03fc 02b5 09 add hl,bc 02b6 46 ld b,(hl) 02b7 ed430512 ld (&1205),bc 02bb c9 ret 02bc ed4b0512 ld bc,(&1205) 02c0 c9 ret 02c1 3a0612 ld a,(&1206) 02c4 e620 and &20 02c6 c9 ret 02c7 0e0c ld c,&0c ;; S_BDOSVER 02c9 cd0500 call &0005 ;; BDOS 02cc fe31 cp &31 02ce 2808 jr z,&02d8 02d0 fe22 cp &22 02d2 0e04 ld c,&04 02d4 c0 ret nz 02d5 0e03 ld c,&03 02d7 c9 ret ;; get firmware jump for cpm+ 02d8 2a0100 ld hl,(&0001) 02db 115700 ld de,&0057 02de 19 add hl,de 02df 22e803 ld (&03e8),hl 02e2 cdea03 call &03ea 02e5 4f ld c,a 02e6 c9 ret ;; jp patched to call into firmware 02e7 c30000 jp &0000 02ea cde703 call &03e7 defw &00e3 02ef c9 ret 02f0 cde703 call &03e7 defw &00cb 02f5 c9 ret 02f6 cde703 call &03e7 defw &00ce 02fb c9 ret 02fc 010101 ld bc,&0101 02ff 010101 ld bc,&0101 0302 010101 ld bc,&0101 0305 010101 ld bc,&0101 0308 012101 ld bc,&0121 030b 010101 ld bc,&0101 030e 010101 ld bc,&0101 0311 010101 ld bc,&0101 0314 010121 ld bc,&2101 0317 010101 ld bc,&0101 031a 010101 ld bc,&0101 031d 010010 ld bc,&1000 0320 010110 ld bc,&1001 0323 010101 ld bc,&0101 0326 010101 ld bc,&0101 0329 010001 ld bc,&0100 032c 0c inc c 032d 0c inc c 032e 0c inc c 032f 0c inc c 0330 0c inc c 0331 0c inc c 0332 0c inc c 0333 0c inc c 0334 0c inc c 0335 0c inc c 0336 010101 ld bc,&0101 0339 010101 ld bc,&0101 033c 010606 ld bc,&0606 033f 0606 ld b,&06 0341 0606 ld b,&06 0343 02 ld (bc),a 0344 02 ld (bc),a 0345 02 ld (bc),a 0346 02 ld (bc),a 0347 02 ld (bc),a 0348 02 ld (bc),a 0349 02 ld (bc),a 034a 02 ld (bc),a 034b 02 ld (bc),a 034c 02 ld (bc),a 034d 02 ld (bc),a 034e 02 ld (bc),a 034f 02 ld (bc),a 0350 02 ld (bc),a 0351 02 ld (bc),a 0352 02 ld (bc),a 0353 02 ld (bc),a 0354 02 ld (bc),a 0355 02 ld (bc),a 0356 02 ld (bc),a 0357 010101 ld bc,&0101 035a 010101 ld bc,&0101 035d 0606 ld b,&06 035f 0606 ld b,&06 0361 0606 ld b,&06 0363 02 ld (bc),a 0364 02 ld (bc),a 0365 02 ld (bc),a 0366 02 ld (bc),a 0367 02 ld (bc),a 0368 02 ld (bc),a 0369 02 ld (bc),a 036a 02 ld (bc),a 036b 02 ld (bc),a 036c 02 ld (bc),a 036d 02 ld (bc),a 036e 02 ld (bc),a 036f 02 ld (bc),a 0370 02 ld (bc),a 0371 02 ld (bc),a 0372 02 ld (bc),a 0373 02 ld (bc),a 0374 02 ld (bc),a 0375 02 ld (bc),a 0376 02 ld (bc),a 0377 010101 ld bc,&0101 037a 01011a ld bc,&1a01 037d 00 nop