Short RST for Z80 Author OKUMURA N. Shin-ya Abstract Z80 is a 8bit micro-processor by Zilog, frequently used several years ago. However it seems old fashoned now, it is important one as education of MPU. I studied the method to do RST 38h with conditions. 1.Introduction Z80 was widely used MPU in '70-80 but now it is commonly used as a micro controler. It has 8 channels of interrupt vector in INT-0 mode, one channel in INT-1 and 256 channels in INT-2. In case of INT-0 mode, the vectors are 0000h, 0008h, 0010h, 0018h, 0020h, 0028h, 0030h and 0038h. In INT-1 mode, 0038h only. In the other case, the vectors are decided with I-register and I/O. Especially 0038h is important. 38h is the vector address in both mode 0 and 1. In addition, for instance, PC-8801's 0038h is the gate to MON command of BASIC, MSX's 0038h is the unique vector because MSX use INT mode 1. I studied about RST 38h due to the reason. 2.Study It is the ordinaly method for Z80 users to RST 38h with a condition; JR Ncondition, LABEL RST 38h LABEL: ... For example, to do RST if carryed, they will write JR NC, L01 RST 38h L01: RET ; No work... But I can write it shorter, only two bytes. I will write as follow; JR condition, -1 ; -1 == FFh Because JR, which is short(-128 to +127) jump with a condition, is two bytes instruction of Z80, and RST, which is software interruption, is coded as 'FFh' for RST to 0038h. The short jump of JR mnemonic does jump after increments of program counter of Z80, such as; [JR C, -1] PC+=2; /* JR is 2 byte. */ if(C) PC-=1; /* See below */ If carried, PC will let +1 (+2-1). In the address, the next byte of the top of JR, 'FFh' exists! That is RST 38h. This is the conditioned short RST of Z80.